mirror of
https://github.com/open-webui/open-webui
synced 2025-02-07 13:34:55 +00:00
refac
This commit is contained in:
parent
091e9e2f40
commit
36d927e1ba
@ -212,6 +212,15 @@ class ChatTable:
|
|||||||
|
|
||||||
return chat.chat.get("history", {}).get("messages", {}) or {}
|
return chat.chat.get("history", {}).get("messages", {}) or {}
|
||||||
|
|
||||||
|
def get_message_by_id_and_message_id(
|
||||||
|
self, id: str, message_id: str
|
||||||
|
) -> Optional[dict]:
|
||||||
|
chat = self.get_chat_by_id(id)
|
||||||
|
if chat is None:
|
||||||
|
return None
|
||||||
|
|
||||||
|
return chat.chat.get("history", {}).get("messages", {}).get(message_id, {})
|
||||||
|
|
||||||
def upsert_message_to_chat_by_id_and_message_id(
|
def upsert_message_to_chat_by_id_and_message_id(
|
||||||
self, id: str, message_id: str, message: dict
|
self, id: str, message_id: str, message: dict
|
||||||
) -> Optional[ChatModel]:
|
) -> Optional[ChatModel]:
|
||||||
|
@ -292,6 +292,34 @@ def get_event_emitter(request_info):
|
|||||||
event_data.get("data", {}),
|
event_data.get("data", {}),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if "type" in event_data and event_data["type"] == "message":
|
||||||
|
message = Chats.get_message_by_id_and_message_id(
|
||||||
|
request_info["chat_id"],
|
||||||
|
request_info["message_id"],
|
||||||
|
)
|
||||||
|
|
||||||
|
content = message.get("content", "")
|
||||||
|
content += event_data.get("data", {}).get("content", "")
|
||||||
|
|
||||||
|
Chats.upsert_message_to_chat_by_id_and_message_id(
|
||||||
|
request_info["chat_id"],
|
||||||
|
request_info["message_id"],
|
||||||
|
{
|
||||||
|
"content": content,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
if "type" in event_data and event_data["type"] == "replace":
|
||||||
|
content = event_data.get("data", {}).get("content", "")
|
||||||
|
|
||||||
|
Chats.upsert_message_to_chat_by_id_and_message_id(
|
||||||
|
request_info["chat_id"],
|
||||||
|
request_info["message_id"],
|
||||||
|
{
|
||||||
|
"content": content,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
return __event_emitter__
|
return __event_emitter__
|
||||||
|
|
||||||
|
|
||||||
|
@ -929,9 +929,10 @@ async def process_chat_response(
|
|||||||
|
|
||||||
# Handle as a background task
|
# Handle as a background task
|
||||||
async def post_response_handler(response, events):
|
async def post_response_handler(response, events):
|
||||||
|
message = Chats.get_message_by_id_and_message_id(
|
||||||
assistant_message = get_last_assistant_message(form_data["messages"])
|
metadata["chat_id"], metadata["message_id"]
|
||||||
content = assistant_message if assistant_message else ""
|
)
|
||||||
|
content = message.get("content", "") if message else ""
|
||||||
|
|
||||||
try:
|
try:
|
||||||
for event in events:
|
for event in events:
|
||||||
|
Loading…
Reference in New Issue
Block a user