diff --git a/app/model/KnowledgeDoc.py b/app/model/KnowledgeDoc.py index 435a26f..c868159 100644 --- a/app/model/KnowledgeDoc.py +++ b/app/model/KnowledgeDoc.py @@ -87,25 +87,28 @@ KnowledgeDocService = create_model_service( # /*---------------------------------------KnowledgeDocServiceWithCreator-------------------------------------------*/ +def _create_document(cls: KnowledgeDocModel): + metadata = cls.model_dump() + # 删除metadata中的content属性值,避免将原文内容保存到元信息中 + del metadata['content'] + return Document( + doc_id=cls.id, + text=cls.content, + metadata=metadata + ) + + # 新建文档之后,要给对应的文档创建向量索引 async def handle_after_insert(insert_cls: KnowledgeDocModel, row_dict: dict, session: AsyncSessionDep): - await milvus_service.async_create_index_from_documents([Document( - doc_id=insert_cls.id, - text=insert_cls.content, - metadata=insert_cls.model_dump() - )]) + metadata = insert_cls.model_dump() + # 删除metadata中的content属性值,避免将原文内容保存到元信息中 + del metadata['content'] + await milvus_service.async_create_index_from_documents([_create_document(insert_cls)]) # 批量新建之后,给所有对应的文档创建向量索引 async def handle_after_batch_insert(insert_cls_list: list[KnowledgeDocModel], row_dict_list: list[dict], session: AsyncSessionDep): - document_list = [ - Document( - doc_id=insert_cls.id, - text=insert_cls.content, - metadata=insert_cls.model_dump() - ) - for insert_cls in insert_cls_list - ] + document_list = [_create_document(insert_cls) for insert_cls in insert_cls_list] await milvus_service.async_create_index_from_documents(document_list)