This commit is contained in:
Timothy J. Baek 2024-08-02 01:45:50 +02:00
parent 502b722902
commit e6c64282fc

View File

@ -239,10 +239,10 @@ def get_pipe_id(form_data: dict) -> str:
return pipe_id
def get_params_dict(pipe, form_data, user, extra_params, function_module):
def get_function_params(function_module, form_data, user, extra_params={}):
pipe_id = get_pipe_id(form_data)
# Get the signature of the function
sig = inspect.signature(pipe)
sig = inspect.signature(function_module.pipe)
params = {"body": form_data}
for key, value in extra_params.items():
@ -269,26 +269,8 @@ def get_params_dict(pipe, form_data, user, extra_params, function_module):
return params
def get_extra_params(metadata: dict):
__event_emitter__ = None
__event_call__ = None
__task__ = None
if metadata:
if all(k in metadata for k in ("session_id", "chat_id", "message_id")):
__event_emitter__ = get_event_emitter(metadata)
__event_call__ = get_event_call(metadata)
__task__ = metadata.get("task", None)
return {
"__event_emitter__": __event_emitter__,
"__event_call__": __event_call__,
"__task__": __task__,
}
# inplace function: form_data is modified
def add_model_params(params: dict, form_data: dict) -> dict:
def apply_model_params_to_body(params: dict, form_data: dict) -> dict:
if not params:
return form_data
@ -309,7 +291,7 @@ def add_model_params(params: dict, form_data: dict) -> dict:
# inplace function: form_data is modified
def populate_system_message(params: dict, form_data: dict, user) -> dict:
def apply_model_system_prompt_to_body(params: dict, form_data: dict, user) -> dict:
system = params.get("system", None)
if not system:
return form_data
@ -333,21 +315,38 @@ async def generate_function_chat_completion(form_data, user):
model_info = Models.get_model_by_id(model_id)
metadata = form_data.pop("metadata", None)
# Add extra params such as __event_emitter__
extra_params = get_extra_params(metadata)
__event_emitter__ = None
__event_call__ = None
__task__ = None
if metadata:
if all(k in metadata for k in ("session_id", "chat_id", "message_id")):
__event_emitter__ = get_event_emitter(metadata)
__event_call__ = get_event_call(metadata)
__task__ = metadata.get("task", None)
if model_info:
if model_info.base_model_id:
form_data["model"] = model_info.base_model_id
params = model_info.params.model_dump()
form_data = add_model_params(params, form_data)
form_data = populate_system_message(params, form_data, user)
form_data = apply_model_params_to_body(params, form_data)
form_data = apply_model_system_prompt_to_body(params, form_data, user)
pipe_id = get_pipe_id(form_data)
function_module = get_function_module(pipe_id)
pipe = function_module.pipe
params = get_params_dict(pipe, form_data, user, extra_params, function_module)
params = get_function_params(
function_module,
form_data,
user,
{
"__event_emitter__": __event_emitter__,
"__event_call__": __event_call__,
"__task__": __task__,
},
)
if form_data["stream"]: