diff --git a/apps/application/flow/i_step_node.py b/apps/application/flow/i_step_node.py index 286b2b495..23822b6d2 100644 --- a/apps/application/flow/i_step_node.py +++ b/apps/application/flow/i_step_node.py @@ -94,6 +94,7 @@ class WorkFlowPostHandler: application_public_access_client.access_num = application_public_access_client.access_num + 1 application_public_access_client.intraday_access_num = application_public_access_client.intraday_access_num + 1 application_public_access_client.save() + self.chat_info = None class NodeResult: diff --git a/apps/application/serializers/common.py b/apps/application/serializers/common.py index e8ac10809..5c60512ad 100644 --- a/apps/application/serializers/common.py +++ b/apps/application/serializers/common.py @@ -6,6 +6,7 @@ @date:2025/6/9 13:42 @desc: """ +import json from typing import List from django.core.cache import cache @@ -19,6 +20,7 @@ from application.models import Application, ChatRecord, Chat, ApplicationVersion from application.serializers.application_chat import ChatCountSerializer from common.constants.cache_version import Cache_Version from common.database_model_manage.database_model_manage import DatabaseModelManage +from common.encoder.encoder import SystemEncoder from common.exception.app_exception import ChatException from knowledge.models import Document from models_provider.models import Model @@ -234,7 +236,7 @@ class ChatInfo: 'knowledge_id_list': self.knowledge_id_list, 'exclude_document_id_list': self.exclude_document_id_list, 'application_id': self.application_id, - 'chat_record_list': [self.chat_record_to_map(c) for c in self.chat_record_list], + 'chat_record_list': [self.chat_record_to_map(c) for c in self.chat_record_list][-20:], 'debug': self.debug } @@ -255,19 +257,19 @@ class ChatInfo: @staticmethod def map_to_chat_record(chat_record_dict): - ChatRecord(id=chat_record_dict.get('id'), - chat_id=chat_record_dict.get('chat_id'), - vote_status=chat_record_dict.get('vote_status'), - problem_text=chat_record_dict.get('problem_text'), - answer_text=chat_record_dict.get('answer_text'), - answer_text_list=chat_record_dict.get('answer_text_list'), - message_tokens=chat_record_dict.get('message_tokens'), - answer_tokens=chat_record_dict.get('answer_tokens'), - const=chat_record_dict.get('const'), - details=chat_record_dict.get('details'), - improve_paragraph_id_list=chat_record_dict.get('improve_paragraph_id_list'), - run_time=chat_record_dict.get('run_time'), - index=chat_record_dict.get('index'), ) + return ChatRecord(id=chat_record_dict.get('id'), + chat_id=chat_record_dict.get('chat_id'), + vote_status=chat_record_dict.get('vote_status'), + problem_text=chat_record_dict.get('problem_text'), + answer_text=chat_record_dict.get('answer_text'), + answer_text_list=chat_record_dict.get('answer_text_list'), + message_tokens=chat_record_dict.get('message_tokens'), + answer_tokens=chat_record_dict.get('answer_tokens'), + const=chat_record_dict.get('const'), + details=chat_record_dict.get('details'), + improve_paragraph_id_list=chat_record_dict.get('improve_paragraph_id_list'), + run_time=chat_record_dict.get('run_time'), + index=chat_record_dict.get('index'), ) def set_cache(self): cache.set(Cache_Version.CHAT.get_key(key=self.chat_id), self.to_dict(), @@ -276,15 +278,18 @@ class ChatInfo: @staticmethod def map_to_chat_info(chat_info_dict): - return ChatInfo(chat_info_dict.get('chat_id'), chat_info_dict.get('chat_user_id'), - chat_info_dict.get('chat_user_type'), chat_info_dict.get('knowledge_id_list'), - chat_info_dict.get('exclude_document_id_list'), - chat_info_dict.get('application_id'), - [ChatInfo.map_to_chat_record(c_r) for c_r in chat_info_dict.get('chat_record_list')]) + c = ChatInfo(chat_info_dict.get('chat_id'), chat_info_dict.get('chat_user_id'), + chat_info_dict.get('chat_user_type'), chat_info_dict.get('knowledge_id_list'), + chat_info_dict.get('exclude_document_id_list'), + chat_info_dict.get('application_id'), + debug=chat_info_dict.get('debug')) + c.chat_record_list = [ChatInfo.map_to_chat_record(c_r) for c_r in chat_info_dict.get('chat_record_list')] + return c @staticmethod def get_cache(chat_id): - chat_info_dict = cache.get(Cache_Version.CHAT.get_key(key=chat_id), version=Cache_Version.CHAT_INFO.get_version()) + chat_info_dict = cache.get(Cache_Version.CHAT.get_key(key=chat_id), + version=Cache_Version.CHAT_INFO.get_version()) if chat_info_dict: return ChatInfo.map_to_chat_info(chat_info_dict) return None