From 38565aff11266278e7b17a30de96b4194c279a66 Mon Sep 17 00:00:00 2001 From: shaohuzhang1 Date: Thu, 5 Sep 2024 15:37:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AF=B9=E8=AF=9D?= =?UTF-8?q?=E4=B8=AD=E4=B8=80=E5=AE=9A=E6=97=B6=E9=97=B4=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E4=BC=9A=E8=AF=9D=E8=A2=AB=E6=B8=85=E7=A9=BA=20#1089?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serializers/application_serializers.py | 4 +++- .../serializers/chat_message_serializers.py | 16 +++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/apps/application/serializers/application_serializers.py b/apps/application/serializers/application_serializers.py index eecfc6a0f..5f41d5353 100644 --- a/apps/application/serializers/application_serializers.py +++ b/apps/application/serializers/application_serializers.py @@ -627,6 +627,7 @@ class ApplicationSerializer(serializers.Serializer): # 插入知识库关联关系 self.save_application_mapping(application_dataset_id_list, dataset_id_list, application.id) work_flow_version = WorkFlowVersion(work_flow=work_flow, application=application) + chat_cache.clear_by_application_id(str(application.id)) work_flow_version.save() return True @@ -737,7 +738,8 @@ class ApplicationSerializer(serializers.Serializer): raise AppApiException(500, f"未知的知识库id${dataset_id},无法关联") self.save_application_mapping(application_dataset_id_list, dataset_id_list, application_id) - chat_cache.clear_by_application_id(application_id) + if application.type == ApplicationTypeChoices.SIMPLE: + chat_cache.clear_by_application_id(application_id) application_access_token = QuerySet(ApplicationAccessToken).filter(application_id=application_id).first() # 更新缓存数据 get_application_access_token(application_access_token.access_token, False) diff --git a/apps/application/serializers/chat_message_serializers.py b/apps/application/serializers/chat_message_serializers.py index 61e8c88d3..4a2e7e47c 100644 --- a/apps/application/serializers/chat_message_serializers.py +++ b/apps/application/serializers/chat_message_serializers.py @@ -12,7 +12,6 @@ from uuid import UUID from django.core.cache import caches from django.db.models import QuerySet -from langchain.chat_models.base import BaseChatModel from rest_framework import serializers from application.chat_pipeline.pipeline_manage import PipelineManage @@ -278,7 +277,12 @@ class ChatMessageSerializer(serializers.Serializer): QuerySet(Document).filter( dataset_id__in=dataset_id_list, is_active=False)] - return ChatInfo(chat_id, dataset_id_list, exclude_document_id_list, application) + chat_info = ChatInfo(chat_id, dataset_id_list, exclude_document_id_list, application) + chat_record_list = list(QuerySet(ChatRecord).filter(chat_id=chat_id).order_by('-create_time')[0:5]) + chat_record_list.sort(key=lambda r: r.create_time) + for chat_record in chat_record_list: + chat_info.chat_record_list.append(chat_record) + return chat_info @staticmethod def re_open_chat_work_flow(chat_id, application): @@ -286,4 +290,10 @@ class ChatMessageSerializer(serializers.Serializer): '-create_time')[0:1].first() if work_flow_version is None: raise AppApiException(500, "应用未发布,请发布后再使用") - return ChatInfo(chat_id, [], [], application, work_flow_version) + + chat_info = ChatInfo(chat_id, [], [], application, work_flow_version) + chat_record_list = list(QuerySet(ChatRecord).filter(chat_id=chat_id).order_by('-create_time')[0:5]) + chat_record_list.sort(key=lambda r: r.create_time) + for chat_record in chat_record_list: + chat_info.chat_record_list.append(chat_record) + return chat_info