mirror of
https://github.com/open-webui/open-webui
synced 2025-02-17 02:27:11 +00:00
refac
This commit is contained in:
parent
502b722902
commit
e6c64282fc
@ -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"]:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user