实现删除文档接口

This commit is contained in:
haotian 2025-09-05 10:35:51 +08:00
parent 76fffdbc1d
commit ce8d1a7d2a
3 changed files with 43 additions and 10 deletions

View File

@ -1,10 +1,10 @@
from datetime import datetime
# from datetime import datetime
from typing import List
from fastapi import APIRouter, Depends, Request, UploadFile, File, Form
from pydantic_validation_decorator import ValidateFields
from sqlalchemy.ext.asyncio import AsyncSession
from config.enums import BusinessType
from config.get_db import get_db
# from pydantic_validation_decorator import ValidateFields
# from sqlalchemy.ext.asyncio import AsyncSession
# from config.enums import BusinessType
# from config.get_db import get_db
from module_admin.annotation.log_annotation import Log
# from module_admin.aspect.interface_auth import CheckUserInterfaceAuth
# from module_admin.entity.vo.notice_vo import DeleteNoticeModel, NoticeModel, NoticePageQueryModel
@ -12,9 +12,9 @@ from module_admin.annotation.log_annotation import Log
from module_admin.service.login_service import LoginService
from module_admin.service.ragflow_service import RAGFlowService
from utils.log_util import logger
from utils.page_util import PageResponseModel
# from utils.page_util import PageResponseModel
from utils.response_util import ResponseUtil
from module_admin.entity.vo.ragflow_vo import RagflowListQueryModel, ListDocumentsQueryModel, UpdateFileModel
from module_admin.entity.vo.ragflow_vo import RagflowListQueryModel, ListDocumentsQueryModel, UpdateFileModel, DeleteFileModel
# from config.env import RAGFlowConfig
@ -86,6 +86,20 @@ async def update_file_dataset(
result = await RAGFlowService.update_file_dataset_services(dataset_id ,document_id, update_params)
return parse_result(result)
# 删除文档
@ragflowController.post('/delete_file/{dataset_id}')
async def delete_file(
dataset_id: str,
delete_params: DeleteFileModel,
# query_db: AsyncSession = Depends(get_db),
):
"""
删除文件
"""
result = await RAGFlowService.delete_file_services(dataset_id, delete_params)
return parse_result(result)

View File

@ -1,7 +1,7 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field
from pydantic.alias_generators import to_camel
from typing import Optional
from typing import Optional, List
from module_admin.annotation.pydantic_annotation import as_query
@ -45,5 +45,10 @@ class UpdateFileModel(BaseModel):
parser_config: Optional[dict] = Field(default=None, description='解析器配置')
class DeleteFileModel(BaseModel):
ids: List[str] = Field(description='文档ID列表')

View File

@ -1,7 +1,8 @@
from sqlalchemy.ext.asyncio import AsyncSession
from utils.ragflow_asy_util import AsyncRAGFlowClient
from module_admin.entity.vo.ragflow_vo import RagflowListQueryModel, ListDocumentsQueryModel, UpdateFileModel
from module_admin.entity.vo.ragflow_vo import RagflowListQueryModel, ListDocumentsQueryModel, UpdateFileModel, DeleteFileModel
from config.env import RAGFlowConfig
from typing import List
class RAGFlowService:
"""
@ -35,6 +36,7 @@ class RAGFlowService:
return result
# 上传文档到数据集
@classmethod
async def upload_file_dataset_services(
cls,
dataset_id: str,
@ -56,4 +58,16 @@ class RAGFlowService:
async with AsyncRAGFlowClient(RAGFlowConfig.RAGFLOW_BASE_URL, RAGFlowConfig.RAGFLOW_API_KEY) as client:
result = await client.update_document(dataset_id=dataset_id, document_id=document_id, **(update_params.model_dump()))
return result
return result
# 删除文档
@classmethod
async def delete_file_services(
cls,
dataset_id: str,
delete_params: DeleteFileModel,
):
async with AsyncRAGFlowClient(RAGFlowConfig.RAGFLOW_BASE_URL, RAGFlowConfig.RAGFLOW_API_KEY) as client:
result = await client.delete_documents(dataset_id=dataset_id, **(delete_params.model_dump()))
return result