From ce8d1a7d2a7113dc5888b95d2405b56c659684f0 Mon Sep 17 00:00:00 2001 From: haotian <2421912570@qq.com> Date: Fri, 5 Sep 2025 10:35:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=88=A0=E9=99=A4=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ragflow_controller.py | 28 ++++++++++++++----- .../module_admin/entity/vo/ragflow_vo.py | 7 ++++- .../module_admin/service/ragflow_service.py | 18 ++++++++++-- 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/ruoyi-fastapi-backend/module_admin/controller/ragflow_controller.py b/ruoyi-fastapi-backend/module_admin/controller/ragflow_controller.py index 439666a..2f59de8 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/ragflow_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/ragflow_controller.py @@ -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) diff --git a/ruoyi-fastapi-backend/module_admin/entity/vo/ragflow_vo.py b/ruoyi-fastapi-backend/module_admin/entity/vo/ragflow_vo.py index 8b93859..1e9ec67 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/ragflow_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/ragflow_vo.py @@ -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列表') + + \ No newline at end of file diff --git a/ruoyi-fastapi-backend/module_admin/service/ragflow_service.py b/ruoyi-fastapi-backend/module_admin/service/ragflow_service.py index 5ef00b4..e1b1214 100644 --- a/ruoyi-fastapi-backend/module_admin/service/ragflow_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/ragflow_service.py @@ -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 \ No newline at end of file + 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 + \ No newline at end of file