From fd8f1ddb6f16d8ad30ba46dc46b7dc87c7b7fc8f Mon Sep 17 00:00:00 2001 From: martsforever Date: Sun, 7 Sep 2025 20:21:48 +0800 Subject: [PATCH] feat: kd service after_delete, after_batch_delete --- app/model/KnowledgeDoc.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/app/model/KnowledgeDoc.py b/app/model/KnowledgeDoc.py index cb2699b..dd12853 100644 --- a/app/model/KnowledgeDoc.py +++ b/app/model/KnowledgeDoc.py @@ -1,3 +1,4 @@ +import asyncio from enum import Enum from typing import Optional @@ -5,6 +6,7 @@ from sqlmodel import Field from app.model.BasicModel import BasicModel from app.utils.create_module_service import create_model_service +from app.utils.milvus_utils import milvus_service class KnowledgeDocStatus(Enum): @@ -23,4 +25,20 @@ class KnowledgeDocModel(BasicModel, table=True): error: Optional[str] = Field(default=None, description="文档处理失败时的错误信息") -KnowledgeDocService = create_model_service(KnowledgeDocModel) +async def handle_after_delete(doc_cls): + await milvus_service.async_delete(doc_cls.id) + + +async def handle_after_batch_delete(doc_cls_list): + task_list = [ + asyncio.create_task(handle_after_delete(doc_cls)) + for doc_cls in doc_cls_list + ] + await asyncio.gather(*task_list) + + +KnowledgeDocService = create_model_service( + KnowledgeDocModel, + after_delete=handle_after_delete, + after_batch_delete=handle_after_batch_delete +)