mirror of
https://github.com/open-webui/open-webui
synced 2025-06-22 18:07:17 +00:00
Update chat.py
This commit is contained in:
parent
93991b858a
commit
4cd0119fd1
@ -15,6 +15,8 @@ from starlette.responses import Response, StreamingResponse, JSONResponse
|
|||||||
|
|
||||||
|
|
||||||
from open_webui.models.users import UserModel
|
from open_webui.models.users import UserModel
|
||||||
|
from open_webui.models.chats import Chats
|
||||||
|
from open_webui.models.folders import Folders
|
||||||
|
|
||||||
from open_webui.socket.main import (
|
from open_webui.socket.main import (
|
||||||
sio,
|
sio,
|
||||||
@ -165,6 +167,29 @@ async def generate_chat_completion(
|
|||||||
bypass_filter: bool = False,
|
bypass_filter: bool = False,
|
||||||
):
|
):
|
||||||
log.debug(f"generate_chat_completion: {form_data}")
|
log.debug(f"generate_chat_completion: {form_data}")
|
||||||
|
metadata = form_data.get("metadata", {})
|
||||||
|
if hasattr(request.state, "metadata"):
|
||||||
|
metadata.update(request.state.metadata)
|
||||||
|
form_data["metadata"] = metadata
|
||||||
|
|
||||||
|
chat_id = metadata.get("chat_id")
|
||||||
|
if chat_id and user:
|
||||||
|
chat = Chats.get_chat_by_id(chat_id)
|
||||||
|
if chat and chat.folder_id:
|
||||||
|
folder = Folders.get_folder_by_id_and_user_id(chat.folder_id, user.id)
|
||||||
|
if folder and folder.system_prompt:
|
||||||
|
folder_system_message = {
|
||||||
|
"role": "system",
|
||||||
|
"content": folder.system_prompt,
|
||||||
|
}
|
||||||
|
# Ensure messages list exists
|
||||||
|
if "messages" not in form_data:
|
||||||
|
form_data["messages"] = []
|
||||||
|
|
||||||
|
form_data["messages"] = [folder_system_message] + form_data["messages"]
|
||||||
|
log.debug(
|
||||||
|
f"Prepended system prompt from folder {folder.id} to chat {chat_id}"
|
||||||
|
)
|
||||||
if BYPASS_MODEL_ACCESS_CONTROL:
|
if BYPASS_MODEL_ACCESS_CONTROL:
|
||||||
bypass_filter = True
|
bypass_filter = True
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user