mirror of
https://github.com/open-webui/open-webui
synced 2025-02-19 19:38:52 +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
|
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)
|
pipe_id = get_pipe_id(form_data)
|
||||||
# Get the signature of the function
|
# Get the signature of the function
|
||||||
sig = inspect.signature(pipe)
|
sig = inspect.signature(function_module.pipe)
|
||||||
params = {"body": form_data}
|
params = {"body": form_data}
|
||||||
|
|
||||||
for key, value in extra_params.items():
|
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
|
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
|
# 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:
|
if not params:
|
||||||
return form_data
|
return form_data
|
||||||
|
|
||||||
@ -309,7 +291,7 @@ def add_model_params(params: dict, form_data: dict) -> dict:
|
|||||||
|
|
||||||
|
|
||||||
# inplace function: form_data is modified
|
# 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)
|
system = params.get("system", None)
|
||||||
if not system:
|
if not system:
|
||||||
return form_data
|
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)
|
model_info = Models.get_model_by_id(model_id)
|
||||||
metadata = form_data.pop("metadata", None)
|
metadata = form_data.pop("metadata", None)
|
||||||
|
|
||||||
# Add extra params such as __event_emitter__
|
__event_emitter__ = None
|
||||||
extra_params = get_extra_params(metadata)
|
__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:
|
||||||
if model_info.base_model_id:
|
if model_info.base_model_id:
|
||||||
form_data["model"] = model_info.base_model_id
|
form_data["model"] = model_info.base_model_id
|
||||||
|
|
||||||
params = model_info.params.model_dump()
|
params = model_info.params.model_dump()
|
||||||
form_data = add_model_params(params, form_data)
|
form_data = apply_model_params_to_body(params, form_data)
|
||||||
form_data = populate_system_message(params, form_data, user)
|
form_data = apply_model_system_prompt_to_body(params, form_data, user)
|
||||||
|
|
||||||
pipe_id = get_pipe_id(form_data)
|
pipe_id = get_pipe_id(form_data)
|
||||||
function_module = get_function_module(pipe_id)
|
function_module = get_function_module(pipe_id)
|
||||||
|
|
||||||
pipe = function_module.pipe
|
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"]:
|
if form_data["stream"]:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user