fix: 修复对话中一定时间历史会话被清空 #1089

This commit is contained in:
shaohuzhang1 2024-09-05 15:37:12 +08:00 committed by shaohuzhang1
parent 3faba75d4d
commit 38565aff11
2 changed files with 16 additions and 4 deletions

View File

@ -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)

View File

@ -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