From 52575360ed0af000e1f65610e73b24bf4b89291f Mon Sep 17 00:00:00 2001 From: wxg0103 <727495428@qq.com> Date: Tue, 26 Nov 2024 15:55:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=9C=A8=E5=AF=B9?= =?UTF-8?q?=E8=AF=9D=E6=97=A5=E5=BF=97=E4=B8=AD=E5=88=A0=E9=99=A4=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E7=9A=84=E6=96=87=E6=A1=A3=EF=BC=8C=E5=85=B3=E8=81=94?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=E6=9C=AA=E5=88=A0=E9=99=A4=E7=9A=84?= =?UTF-8?q?=E7=BC=BA=E9=99=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bug=1049555 --user=王孝刚 【应用】将对话日志保存到文档后,在对话日志中删除保存的文档,关联的问题未删除 https://www.tapd.cn/57709429/s/1617726 --- .../serializers/chat_message_serializers.py | 1 + apps/application/serializers/chat_serializers.py | 4 +--- apps/dataset/serializers/paragraph_serializers.py | 12 ++++++++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/apps/application/serializers/chat_message_serializers.py b/apps/application/serializers/chat_message_serializers.py index 919cb71cf..22fc18bae 100644 --- a/apps/application/serializers/chat_message_serializers.py +++ b/apps/application/serializers/chat_message_serializers.py @@ -154,6 +154,7 @@ def get_post_handler(chat_info: ChatInfo): details=manage.get_details(), message_tokens=manage.context['message_tokens'], answer_tokens=manage.context['answer_tokens'], + answer_text_list=[answer_text], run_time=manage.context['run_time'], index=len(chat_info.chat_record_list) + 1) chat_info.append_chat_record(chat_record, client_id) diff --git a/apps/application/serializers/chat_serializers.py b/apps/application/serializers/chat_serializers.py index f7bb11f24..468c70316 100644 --- a/apps/application/serializers/chat_serializers.py +++ b/apps/application/serializers/chat_serializers.py @@ -608,13 +608,11 @@ class ChatRecordSerializer(serializers.Serializer): title=instance.get("title") if 'title' in instance else '') problem_text = instance.get('problem_text') if instance.get( 'problem_text') is not None else chat_record.problem_text - problem = Problem(id=uuid.uuid1(), content=problem_text, dataset_id=dataset_id) + problem, _ = Problem.objects.get_or_create(content=problem_text, dataset_id=dataset_id) problem_paragraph_mapping = ProblemParagraphMapping(id=uuid.uuid1(), dataset_id=dataset_id, document_id=document_id, problem_id=problem.id, paragraph_id=paragraph.id) - # 插入问题 - problem.save() # 插入段落 paragraph.save() # 插入关联问题 diff --git a/apps/dataset/serializers/paragraph_serializers.py b/apps/dataset/serializers/paragraph_serializers.py index 82aacc79d..a115e544b 100644 --- a/apps/dataset/serializers/paragraph_serializers.py +++ b/apps/dataset/serializers/paragraph_serializers.py @@ -540,8 +540,16 @@ class ParagraphSerializers(ApiMixin, serializers.Serializer): if with_valid: self.is_valid(raise_exception=True) paragraph_id = self.data.get('paragraph_id') - QuerySet(Paragraph).filter(id=paragraph_id).delete() - QuerySet(ProblemParagraphMapping).filter(paragraph_id=paragraph_id).delete() + Paragraph.objects.filter(id=paragraph_id).delete() + + problem_id = ProblemParagraphMapping.objects.filter(paragraph_id=paragraph_id).values_list('problem_id', + flat=True).first() + + if problem_id is not None: + if ProblemParagraphMapping.objects.filter(problem_id=problem_id).count() == 1: + Problem.objects.filter(id=problem_id).delete() + ProblemParagraphMapping.objects.filter(paragraph_id=paragraph_id).delete() + update_document_char_length(self.data.get('document_id')) delete_embedding_by_paragraph(paragraph_id)