From 797c0bb8d6b32cecf67057a3b1ed40c1a110cc4b Mon Sep 17 00:00:00 2001 From: zhangzhanwei Date: Thu, 9 Oct 2025 10:51:39 +0800 Subject: [PATCH] fix: No history while use openai chat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bug=1061932 --user=张展玮 【系统API】调用 openai 接口对话,无法获取历史聊天记录信息 https://www.tapd.cn/62980211/s/1781929 --- apps/chat/serializers/chat.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/apps/chat/serializers/chat.py b/apps/chat/serializers/chat.py index 6ac58f3b6..eefbc80cd 100644 --- a/apps/chat/serializers/chat.py +++ b/apps/chat/serializers/chat.py @@ -222,9 +222,21 @@ class OpenAIChatSerializer(serializers.Serializer): def generate_chat(chat_id, application_id, message, chat_user_id, chat_user_type): if chat_id is None: chat_id = str(uuid.uuid1()) - chat_info = ChatInfo(chat_id, chat_user_id, chat_user_type, [], [], - application_id) - chat_info.set_cache() + chat_info = ChatInfo(chat_id, chat_user_id, chat_user_type, [], [], + application_id) + chat_info.set_cache() + else: + chat_info = ChatInfo.get_cache(chat_id) + if chat_info is None: + ser = ChatSerializers(data={ + 'chat_id': chat_id, + 'chat_user_id': chat_user_id, + 'chat_user_type': chat_user_type, + 'application_id': application_id + }) + ser.is_valid(raise_exception=True) + chat_info = ser.re_open_chat(chat_id) + chat_info.set_cache() return chat_id def chat(self, instance: Dict, with_valid=True):