feat: kd service after_delete, after_batch_delete

This commit is contained in:
martsforever
2025-09-07 20:21:48 +08:00
parent ee4001bfff
commit fd8f1ddb6f
+19 -1
View File
@@ -1,3 +1,4 @@
import asyncio
from enum import Enum from enum import Enum
from typing import Optional from typing import Optional
@@ -5,6 +6,7 @@ from sqlmodel import Field
from app.model.BasicModel import BasicModel from app.model.BasicModel import BasicModel
from app.utils.create_module_service import create_model_service from app.utils.create_module_service import create_model_service
from app.utils.milvus_utils import milvus_service
class KnowledgeDocStatus(Enum): class KnowledgeDocStatus(Enum):
@@ -23,4 +25,20 @@ class KnowledgeDocModel(BasicModel, table=True):
error: Optional[str] = Field(default=None, description="文档处理失败时的错误信息") 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
)