From 31d080ae409b1fb37c68fc33b5d548eea9ad3121 Mon Sep 17 00:00:00 2001 From: haotian <2421912570@qq.com> Date: Fri, 5 Sep 2025 16:00:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E8=8E=B7=E5=8F=96=E8=81=8A?= =?UTF-8?q?=E5=A4=A9=E5=8A=A9=E6=89=8B=E5=88=97=E8=A1=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ragflow_controller.py | 26 ++++++++++++++++-- .../module_admin/entity/vo/ragflow_vo.py | 3 ++- .../module_admin/service/ragflow_service.py | 27 ++++++++++++++++++- 3 files changed, 52 insertions(+), 4 deletions(-) diff --git a/ruoyi-fastapi-backend/module_admin/controller/ragflow_controller.py b/ruoyi-fastapi-backend/module_admin/controller/ragflow_controller.py index 2ffe4a8..d3bcfce 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/ragflow_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/ragflow_controller.py @@ -107,7 +107,7 @@ async def update_file_dataset( return parse_result(result) -# 解析文档 +# 开始解析文档 @ragflowController.post('/parse_documents/{dataset_id}') async def parse_documents( dataset_id: str, @@ -117,6 +117,16 @@ async def parse_documents( result = await RAGFlowService.parse_documents_services(dataset_id, parse_params) return parse_result(result) +# 停止解析文档 +@ragflowController.post('/stop_parse_documents/{dataset_id}') +async def stop_parse_documents( + dataset_id: str, + parse_params: DocumentIdsModel, + # query_db: AsyncSession = Depends(get_db), +): + result = await RAGFlowService.stop_parse_documents_services(dataset_id, parse_params) + return parse_result(result) + # 删除文档 @ragflowController.post('/delete_file/{dataset_id}') async def delete_file( @@ -144,7 +154,19 @@ async def delete_datasets( result = await RAGFlowService.delete_datasets_services(delete_params) return parse_result(result) - +# 查看聊天助手列表 +@ragflowController.post('/get_chat_assistant_list') +async def get_chat_assistant_list( + query_params: RagflowListQueryModel, +): + """ + 查看聊天助手列表 + """ + + result = await RAGFlowService.get_chat_assistant_list_services(query_params) + return parse_result(result) + + # pass def 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 6c8cd93..c26c988 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/ragflow_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/ragflow_vo.py @@ -13,7 +13,8 @@ class RagflowListQueryModel(BaseModel): orderby: Optional[str] = Field(default='create_time', description='排序字段') desc: Optional[str] = Field(default='true', description='排序方式') name: Optional[str] = Field(default=None, description='名称') - dataset_id: Optional[str] = Field(default=None, description='数据集ID') + # dataset_id: Optional[str] = Field(default=None, description='数据集ID') + # chat_id: Optional[str] = Field(default=None, description='聊天ID') @as_query class ListDocumentsQueryModel(BaseModel): diff --git a/ruoyi-fastapi-backend/module_admin/service/ragflow_service.py b/ruoyi-fastapi-backend/module_admin/service/ragflow_service.py index d52bee1..dd1bfea 100644 --- a/ruoyi-fastapi-backend/module_admin/service/ragflow_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/ragflow_service.py @@ -87,7 +87,7 @@ class RAGFlowService: result = await client.upload_documents_bytes(dataset_id=dataset_id, file_bytes=files) return result - #解析文档 + # 开始解析文档 @classmethod async def parse_documents_services( cls, @@ -98,6 +98,20 @@ class RAGFlowService: result = await client.parse_documents(dataset_id=dataset_id, document_ids=parse_params.documnet_ids) return result + + # 停止解析文档 + @classmethod + async def stop_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.stop_parsing_documents(dataset_id=dataset_id, document_ids=parse_params.documnet_ids) + + return result + + # 更新文档内容 @classmethod async def update_file_dataset_services( @@ -131,4 +145,15 @@ class RAGFlowService: async with AsyncRAGFlowClient(RAGFlowConfig.RAGFLOW_BASE_URL, RAGFlowConfig.RAGFLOW_API_KEY) as client: result = await client.delete_datasets(**(delete_params.model_dump())) return result + + + # 查看聊天助手列表 + @classmethod + async def get_chat_assistant_list_services( + cls, + query_params: RagflowListQueryModel, + ): + async with AsyncRAGFlowClient(RAGFlowConfig.RAGFLOW_BASE_URL, RAGFlowConfig.RAGFLOW_API_KEY) as client: + result = await client.list_chat_assistants(**(query_params.model_dump())) + return result \ No newline at end of file