|
@@ -65,6 +65,7 @@ from open_webui.env import (
|
|
|
SRC_LOG_LEVELS,
|
|
|
GLOBAL_LOG_LEVEL,
|
|
|
BYPASS_MODEL_ACCESS_CONTROL,
|
|
|
+ ENABLE_REALTIME_CHAT_SAVE,
|
|
|
)
|
|
|
from open_webui.constants import TASKS
|
|
|
|
|
@@ -977,7 +978,6 @@ async def process_chat_response(
|
|
|
)
|
|
|
|
|
|
else:
|
|
|
-
|
|
|
value = (
|
|
|
data.get("choices", [])[0]
|
|
|
.get("delta", {})
|
|
@@ -987,14 +987,19 @@ async def process_chat_response(
|
|
|
if value:
|
|
|
content = f"{content}{value}"
|
|
|
|
|
|
- # Save message in the database
|
|
|
- Chats.upsert_message_to_chat_by_id_and_message_id(
|
|
|
- metadata["chat_id"],
|
|
|
- metadata["message_id"],
|
|
|
- {
|
|
|
+ if ENABLE_REALTIME_CHAT_SAVE:
|
|
|
+ # Save message in the database
|
|
|
+ Chats.upsert_message_to_chat_by_id_and_message_id(
|
|
|
+ metadata["chat_id"],
|
|
|
+ metadata["message_id"],
|
|
|
+ {
|
|
|
+ "content": content,
|
|
|
+ },
|
|
|
+ )
|
|
|
+ else:
|
|
|
+ data = {
|
|
|
"content": content,
|
|
|
- },
|
|
|
- )
|
|
|
+ }
|
|
|
|
|
|
except Exception as e:
|
|
|
done = "data: [DONE]" in line
|
|
@@ -1003,6 +1008,16 @@ async def process_chat_response(
|
|
|
if done:
|
|
|
data = {"done": True, "content": content, "title": title}
|
|
|
|
|
|
+ if not ENABLE_REALTIME_CHAT_SAVE:
|
|
|
+ # Save message in the database
|
|
|
+ Chats.upsert_message_to_chat_by_id_and_message_id(
|
|
|
+ metadata["chat_id"],
|
|
|
+ metadata["message_id"],
|
|
|
+ {
|
|
|
+ "content": content,
|
|
|
+ },
|
|
|
+ )
|
|
|
+
|
|
|
# Send a webhook notification if the user is not active
|
|
|
if (
|
|
|
get_user_id_from_session_pool(metadata["session_id"])
|