Update chat.py

This commit is contained in:
Classic298 2025-06-21 13:55:52 +02:00 committed by GitHub
parent 93991b858a
commit 4cd0119fd1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -15,6 +15,8 @@ from starlette.responses import Response, StreamingResponse, JSONResponse
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 (
sio,
@ -165,6 +167,29 @@ async def generate_chat_completion(
bypass_filter: bool = False,
):
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:
bypass_filter = True