Files
ai-admin-server/app/model/KnowledgeDoc.py
T

45 lines
1.2 KiB
Python

import asyncio
from enum import Enum
from typing import Optional
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):
process = "process"
fail = "fail"
success = "success"
class KnowledgeDocModel(BasicModel, table=True):
__tablename__ = "pl_knowledge_doc"
parent_code: str = Field(default=None, description="所属知识库的code")
name: str = Field(default=None, description="文档名称")
status: str = Field(default=None, description="文档的处理状态")
path: str = Field(default=None, description="文档原始文件路径")
error: Optional[str] = Field(default=None, description="文档处理失败时的错误信息")
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
)