diff --git a/ruoyi-fastapi-backend/.env.dev b/ruoyi-fastapi-backend/.env.dev index 7707408..dd45737 100644 --- a/ruoyi-fastapi-backend/.env.dev +++ b/ruoyi-fastapi-backend/.env.dev @@ -99,7 +99,7 @@ HAIKANG_FACECAPATURE_SEARCH = '/api/frs/v1/event/face_capture/search' #-------------------RAGFlow配置--------------------- -RAGFLOW_BASE_URL ="http://10.0.0.202:82", -RAGFLOW_API_KEY ="ragflow-hlMjRmNzE2ODNiNTExZjA4ZTNlMDI0Mm" +RAGFLOW_BASE_URL = "http://10.0.0.202:82" +RAGFLOW_API_KEY = "ragflow-hlMjRmNzE2ODNiNTExZjA4ZTNlMDI0Mm" #-------------------RAGFlow配置end------------------ \ No newline at end of file diff --git a/ruoyi-fastapi-backend/module_admin/controller/ragflow_controller.py b/ruoyi-fastapi-backend/module_admin/controller/ragflow_controller.py index ee19c3b..2ffe4a8 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/ragflow_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/ragflow_controller.py @@ -14,7 +14,7 @@ from module_admin.service.ragflow_service import RAGFlowService from utils.log_util import logger # from utils.page_util import PageResponseModel from utils.response_util import ResponseUtil -from module_admin.entity.vo.ragflow_vo import RagflowListQueryModel, ListDocumentsQueryModel, UpdateFileModel, DeleteFileModel, CreateDatasetModel +from module_admin.entity.vo.ragflow_vo import RagflowListQueryModel, ListDocumentsQueryModel, UpdateFileModel, DeleteFileModel, CreateDatasetModel, DocumentIdsModel # from config.env import RAGFlowConfig @@ -107,6 +107,16 @@ async def update_file_dataset( return parse_result(result) +# 解析文档 +@ragflowController.post('/parse_documents/{dataset_id}') +async def parse_documents( + dataset_id: str, + parse_params: DocumentIdsModel, + # query_db: AsyncSession = Depends(get_db), +): + result = await RAGFlowService.parse_documents_services(dataset_id, parse_params) + return parse_result(result) + # 删除文档 @ragflowController.post('/delete_file/{dataset_id}') async def delete_file( 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 11609c9..6c8cd93 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/ragflow_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/ragflow_vo.py @@ -46,9 +46,14 @@ class UpdateFileModel(BaseModel): parser_config: Optional[dict] = Field(default=None, description='解析器配置') -class DeleteFileModel(BaseModel): +class DocumentIdsModel(BaseModel): model_config = ConfigDict(alias_generator=to_camel, from_attributes=True) + documnet_ids: list[str] = Field(default=None, description='文件ID列表') + +class DeleteFileModel(BaseModel): + + ids: List[str] = Field(description='文档ID列表') diff --git a/ruoyi-fastapi-backend/module_admin/service/ragflow_service.py b/ruoyi-fastapi-backend/module_admin/service/ragflow_service.py index b86dbe8..d52bee1 100644 --- a/ruoyi-fastapi-backend/module_admin/service/ragflow_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/ragflow_service.py @@ -1,6 +1,6 @@ from sqlalchemy.ext.asyncio import AsyncSession from utils.ragflow_asy_util import AsyncRAGFlowClient -from module_admin.entity.vo.ragflow_vo import RagflowListQueryModel, ListDocumentsQueryModel, UpdateFileModel, DeleteFileModel, CreateDatasetModel +from module_admin.entity.vo.ragflow_vo import RagflowListQueryModel, ListDocumentsQueryModel, UpdateFileModel, DeleteFileModel, CreateDatasetModel, DocumentIdsModel from config.env import RAGFlowConfig from typing import List @@ -87,7 +87,17 @@ class RAGFlowService: result = await client.upload_documents_bytes(dataset_id=dataset_id, file_bytes=files) return result - + #解析文档 + @classmethod + async def parse_documents_services( + cls, + dataset_id: str, + parse_params: DocumentIdsModel, + ): + async with AsyncRAGFlowClient(RAGFlowConfig.RAGFLOW_BASE_URL, RAGFlowConfig.RAGFLOW_API_KEY) as client: + result = await client.parse_documents(dataset_id=dataset_id, document_ids=parse_params.documnet_ids) + + return result # 更新文档内容 @classmethod async def update_file_dataset_services(