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
686c5081
Commit
686c5081
authored
Jun 17, 2024
by
Timothy J. Baek
Browse files
fix: model system prompt variable support
parent
84bd4994
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
56 additions
and
15 deletions
+56
-15
backend/apps/ollama/main.py
backend/apps/ollama/main.py
+37
-10
backend/apps/openai/main.py
backend/apps/openai/main.py
+19
-5
No files found.
backend/apps/ollama/main.py
View file @
686c5081
...
...
@@ -40,6 +40,7 @@ from utils.utils import (
get_verified_user
,
get_admin_user
,
)
from
utils.task
import
prompt_template
from
config
import
(
...
...
@@ -814,22 +815,35 @@ async def generate_chat_completion(
"num_thread"
,
None
)
if
model_info
.
params
.
get
(
"system"
,
None
):
system
=
model_info
.
params
.
get
(
"system"
,
None
)
if
system
:
# Check if the payload already has a system message
# If not, add a system message to the payload
system
=
prompt_template
(
system
,
**
(
{
"user_name"
:
user
.
name
,
"user_location"
:
(
user
.
info
.
get
(
"location"
)
if
user
.
info
else
None
),
}
if
user
else
{}
),
)
if
payload
.
get
(
"messages"
):
for
message
in
payload
[
"messages"
]:
if
message
.
get
(
"role"
)
==
"system"
:
message
[
"content"
]
=
(
model_info
.
params
.
get
(
"system"
,
None
)
+
message
[
"content"
]
)
message
[
"content"
]
=
system
+
message
[
"content"
]
break
else
:
payload
[
"messages"
].
insert
(
0
,
{
"role"
:
"system"
,
"content"
:
model_info
.
params
.
get
(
"system"
,
None
)
,
"content"
:
system
,
},
)
...
...
@@ -910,22 +924,35 @@ async def generate_openai_chat_completion(
else
None
)
if
model_info
.
params
.
get
(
"system"
,
None
):
system
=
model_info
.
params
.
get
(
"system"
,
None
)
if
system
:
system
=
prompt_template
(
system
,
**
(
{
"user_name"
:
user
.
name
,
"user_location"
:
(
user
.
info
.
get
(
"location"
)
if
user
.
info
else
None
),
}
if
user
else
{}
),
)
# Check if the payload already has a system message
# If not, add a system message to the payload
if
payload
.
get
(
"messages"
):
for
message
in
payload
[
"messages"
]:
if
message
.
get
(
"role"
)
==
"system"
:
message
[
"content"
]
=
(
model_info
.
params
.
get
(
"system"
,
None
)
+
message
[
"content"
]
)
message
[
"content"
]
=
system
+
message
[
"content"
]
break
else
:
payload
[
"messages"
].
insert
(
0
,
{
"role"
:
"system"
,
"content"
:
model_info
.
params
.
get
(
"system"
,
None
)
,
"content"
:
system
,
},
)
...
...
backend/apps/openai/main.py
View file @
686c5081
...
...
@@ -20,6 +20,8 @@ from utils.utils import (
get_verified_user
,
get_admin_user
,
)
from
utils.task
import
prompt_template
from
config
import
(
SRC_LOG_LEVELS
,
ENABLE_OPENAI_API
,
...
...
@@ -392,22 +394,34 @@ async def generate_chat_completion(
else
None
)
if
model_info
.
params
.
get
(
"system"
,
None
):
system
=
model_info
.
params
.
get
(
"system"
,
None
)
if
system
:
system
=
prompt_template
(
system
,
**
(
{
"user_name"
:
user
.
name
,
"user_location"
:
(
user
.
info
.
get
(
"location"
)
if
user
.
info
else
None
),
}
if
user
else
{}
),
)
# Check if the payload already has a system message
# If not, add a system message to the payload
if
payload
.
get
(
"messages"
):
for
message
in
payload
[
"messages"
]:
if
message
.
get
(
"role"
)
==
"system"
:
message
[
"content"
]
=
(
model_info
.
params
.
get
(
"system"
,
None
)
+
message
[
"content"
]
)
message
[
"content"
]
=
system
+
message
[
"content"
]
break
else
:
payload
[
"messages"
].
insert
(
0
,
{
"role"
:
"system"
,
"content"
:
model_info
.
params
.
get
(
"system"
,
None
)
,
"content"
:
system
,
},
)
...
...
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