From bfcf352e08b11afc23af8a831a87d30d5d6bc1fa Mon Sep 17 00:00:00 2001 From: shaohuzhang1 Date: Tue, 22 Apr 2025 11:05:21 +0800 Subject: [PATCH] fix: OpenAI interface call for session, passing asker does not take effect --- .../serializers/chat_message_serializers.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/apps/application/serializers/chat_message_serializers.py b/apps/application/serializers/chat_message_serializers.py index 2194028e6dd..2488923702e 100644 --- a/apps/application/serializers/chat_message_serializers.py +++ b/apps/application/serializers/chat_message_serializers.py @@ -213,12 +213,21 @@ def get_message(instance): return instance.get('messages')[-1].get('content') @staticmethod - def generate_chat(chat_id, application_id, message, client_id): + def generate_chat(chat_id, application_id, message, client_id, asker=None): if chat_id is None: chat_id = str(uuid.uuid1()) chat = QuerySet(Chat).filter(id=chat_id).first() if chat is None: - Chat(id=chat_id, application_id=application_id, abstract=message[0:1024], client_id=client_id).save() + asker_dict = {'user_name': '游客'} + if asker is not None: + if isinstance(asker, str): + asker_dict = { + 'user_name': asker + } + elif isinstance(asker, dict): + asker_dict = asker + Chat(id=chat_id, application_id=application_id, abstract=message[0:1024], client_id=client_id, + asker=asker_dict).save() return chat_id def chat(self, instance: Dict, with_valid=True): @@ -232,7 +241,8 @@ def chat(self, instance: Dict, with_valid=True): application_id = self.data.get('application_id') client_id = self.data.get('client_id') client_type = self.data.get('client_type') - chat_id = self.generate_chat(chat_id, application_id, message, client_id) + chat_id = self.generate_chat(chat_id, application_id, message, client_id, + asker=instance.get('form_data', {}).get("asker")) return ChatMessageSerializer( data={ 'chat_id': chat_id, 'message': message,