Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
chenpangpang
open-webui
Commits
e6c64282
Commit
e6c64282
authored
Aug 02, 2024
by
Timothy J. Baek
Browse files
refac
parent
502b7229
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
27 deletions
+26
-27
backend/apps/webui/main.py
backend/apps/webui/main.py
+26
-27
No files found.
backend/apps/webui/main.py
View file @
e6c64282
...
@@ -239,10 +239,10 @@ def get_pipe_id(form_data: dict) -> str:
...
@@ -239,10 +239,10 @@ def get_pipe_id(form_data: dict) -> str:
return
pipe_id
return
pipe_id
def
get_
params_dict
(
pip
e
,
form_data
,
user
,
extra_params
,
function_module
):
def
get_
function_params
(
function_modul
e
,
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):
...
@@ -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
a
dd
_model_params
(
params
:
dict
,
form_data
:
dict
)
->
dict
:
def
a
pply
_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:
...
@@ -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):
...
@@ -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
=
a
dd
_model_params
(
params
,
form_data
)
form_data
=
a
pply
_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"
]:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment