From e74ba87fc65965673426bdc99122d6389a6c2ca4 Mon Sep 17 00:00:00 2001 From: shaohuzhang1 <80892890+shaohuzhang1@users.noreply.github.com> Date: Wed, 15 May 2024 17:22:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=95=B0=E6=8D=AE=E9=9B=86=E6=97=B6=E5=87=BA?= =?UTF-8?q?=E7=8E=B0=E9=87=8D=E5=A4=8D=E9=97=AE=E9=A2=98=20(#465)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/dataset/serializers/dataset_serializers.py | 3 ++- apps/dataset/serializers/document_serializers.py | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/apps/dataset/serializers/dataset_serializers.py b/apps/dataset/serializers/dataset_serializers.py index 5d03def4a..d3f5af73a 100644 --- a/apps/dataset/serializers/dataset_serializers.py +++ b/apps/dataset/serializers/dataset_serializers.py @@ -316,7 +316,8 @@ class DataSetSerializers(serializers.ModelSerializer): problem_model_list.append(problem) for problem_paragraph_mapping in document_paragraph_dict_model.get('problem_paragraph_mapping_list'): problem_paragraph_mapping_list.append(problem_paragraph_mapping) - + problem_model_list, problem_paragraph_mapping_list = DocumentSerializers.Create.reset_problem_model( + problem_model_list, problem_paragraph_mapping_list) # 插入知识库 dataset.save() # 插入文档 diff --git a/apps/dataset/serializers/document_serializers.py b/apps/dataset/serializers/document_serializers.py index f07c5f4e4..b659ea978 100644 --- a/apps/dataset/serializers/document_serializers.py +++ b/apps/dataset/serializers/document_serializers.py @@ -549,10 +549,26 @@ class DocumentSerializers(ApiMixin, serializers.Serializer): problem_paragraph_mapping_list.append(problem_paragraph_mapping) paragraph_model_list.append(paragraph) + problem_model_list, problem_paragraph_mapping_list = DocumentSerializers.Create.reset_problem_model( + problem_model_list, problem_paragraph_mapping_list) + return {'document': document_model, 'paragraph_model_list': paragraph_model_list, 'problem_model_list': problem_model_list, 'problem_paragraph_mapping_list': problem_paragraph_mapping_list} + @staticmethod + def reset_problem_model(problem_model_list, problem_paragraph_mapping_list): + new_problem_model_list = [x for i, x in enumerate(problem_model_list) if + len([item for item in problem_model_list[:i] if item.content == x.content]) <= 0] + + for new_problem_model in new_problem_model_list: + old_model_list = [problem.id for problem in problem_model_list if + problem.content == new_problem_model.content] + for problem_paragraph_mapping in problem_paragraph_mapping_list: + if old_model_list.__contains__(problem_paragraph_mapping.problem_id): + problem_paragraph_mapping.problem_id = new_problem_model.id + return new_problem_model_list, problem_paragraph_mapping_list + @staticmethod def get_document_paragraph_model(dataset_id, instance: Dict): document_model = Document(