实现查看ragflow数据集列表接口

This commit is contained in:
haotian 2025-09-04 10:57:34 +08:00
parent a273bdfce8
commit 724516d5bf
6 changed files with 90 additions and 8 deletions

View File

@ -168,7 +168,7 @@ class RAGFlowSettings:
""" """
RAGFlowSettings RAGFlowSettings
""" """
RAGFLOW_BASE_URL="http://10.0.0.202:82", RAGFLOW_BASE_URL="http://10.0.0.202:82"
RAGFLOW_API_KEY="ragflow-hlMjRmNzE2ODNiNTExZjA4ZTNlMDI0Mm" RAGFLOW_API_KEY="ragflow-hlMjRmNzE2ODNiNTExZjA4ZTNlMDI0Mm"

View File

@ -0,0 +1,39 @@
from datetime import datetime
from fastapi import APIRouter, Depends, Request
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
# from module_admin.entity.vo.user_vo import CurrentUserModel
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.response_util import ResponseUtil
from module_admin.entity.vo.ragflow_vo import RagflowListQueryModel
# from config.env import RAGFlowConfig
ragflowController = APIRouter(prefix="/system/ragflow", dependencies=[Depends(LoginService.get_current_user)])
@ragflowController.post("/dataset_list", response_model=PageResponseModel
# , dependencies=[Depends(CheckUserInterfaceAuth("system:ragflow:list"))]"
)
async def get_system_ragflow_list(
request: Request,
rage_flow_query: RagflowListQueryModel ,
query_db: AsyncSession = Depends(get_db),
):
result = await RAGFlowService.get_ragflow_list_services(query_db, rage_flow_query)
return ResponseUtil.success(data = result)
# 获取分页数据
# ragflow_list, total = await RagflowService.get_ragflow_list(query_db, ragflow_page_query)

View File

@ -0,0 +1,16 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field
from pydantic.alias_generators import to_camel
from typing import Optional
from module_admin.annotation.pydantic_annotation import as_query
class RagflowListQueryModel(BaseModel):
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
page: int = Field(default=1, description='当前页码')
page_size: int = Field(default=10, description='每页数量')
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')

View File

@ -0,0 +1,22 @@
from sqlalchemy.ext.asyncio import AsyncSession
from utils.ragflow_asy_util import AsyncRAGFlowClient
from module_admin.entity.vo.ragflow_vo import RagflowListQueryModel
from config.env import RAGFlowConfig
class RAGFlowService:
"""
RAGFlow服务
"""
# 获取数据集列表
@classmethod
async def get_ragflow_list_services(cls, query_db: AsyncSession, rage_flow_query: RagflowListQueryModel):
"""
获取数据集列表
"""
async with AsyncRAGFlowClient(RAGFlowConfig.RAGFLOW_BASE_URL, RAGFlowConfig.RAGFLOW_API_KEY) as client:
result = await client.list_datasets(**(rage_flow_query.model_dump()))
# 获取分页数据
return result.get('data', None)

View File

@ -32,6 +32,7 @@ from module_admin.controller.explanation_content_controller import explanationCo
from module_admin.controller.explanation_style_robot_pair_controller import explanation_style_robot_pairController from module_admin.controller.explanation_style_robot_pair_controller import explanation_style_robot_pairController
from module_admin.controller.sys_statistics_controller import sys_statisticsController from module_admin.controller.sys_statistics_controller import sys_statisticsController
from module_admin.controller.identify_record_controller import identify_recordController from module_admin.controller.identify_record_controller import identify_recordController
from module_admin.controller.ragflow_controller import ragflowController
from sub_applications.handle import handle_sub_applications from sub_applications.handle import handle_sub_applications
from utils.common_util import worship from utils.common_util import worship
@ -98,6 +99,7 @@ controller_list = [
{'router': explanation_style_robot_pairController, 'tags': ['讲解风格管理']}, {'router': explanation_style_robot_pairController, 'tags': ['讲解风格管理']},
{'router': sys_statisticsController, 'tags': ['系统统计数据管理']}, {'router': sys_statisticsController, 'tags': ['系统统计数据管理']},
{'router': identify_recordController, 'tags': ['识别记录管理']}, {'router': identify_recordController, 'tags': ['识别记录管理']},
{'router': ragflowController, 'tags': ['ragflow管理']},
] ]

View File

@ -26,7 +26,10 @@ class AsyncRAGFlowClient:
api_key: API密钥 api_key: API密钥
timeout: 请求超时时间 timeout: 请求超时时间
""" """
self.base_url = base_url.rstrip('/') try:
self.base_url = base_url.rstrip('/')
except:
self.base_url = base_url
self.api_key = api_key self.api_key = api_key
self.timeout = timeout self.timeout = timeout
self.headers = { self.headers = {
@ -231,7 +234,7 @@ class AsyncRAGFlowClient:
return await self._request('PUT', endpoint, json=data) return await self._request('PUT', endpoint, json=data)
async def list_datasets(self, page: int = 1, page_size: int = 30, orderby: str = "create_time", async def list_datasets(self, page: int = 1, page_size: int = 30, orderby: str = "create_time",
desc: bool = True, name: Optional[str] = None, desc: str = "true", name: Optional[str] = None,
dataset_id: Optional[str] = None) -> Dict[str, Any]: dataset_id: Optional[str] = None) -> Dict[str, Any]:
""" """
列出数据集 列出数据集
@ -335,7 +338,7 @@ class AsyncRAGFlowClient:
raise RAGFlowError(response.status, text) raise RAGFlowError(response.status, text)
async def list_documents(self, dataset_id: str, page: int = 1, page_size: int = 30, async def list_documents(self, dataset_id: str, page: int = 1, page_size: int = 30,
orderby: str = "create_time", desc: bool = True, orderby: str = "create_time", desc: str = "true",
keywords: Optional[str] = None, document_id: Optional[str] = None, keywords: Optional[str] = None, document_id: Optional[str] = None,
document_name: Optional[str] = None) -> Dict[str, Any]: document_name: Optional[str] = None) -> Dict[str, Any]:
""" """
@ -534,7 +537,7 @@ class AsyncRAGFlowClient:
return await self._request('DELETE', endpoint, json=data) return await self._request('DELETE', endpoint, json=data)
async def list_chat_assistants(self, page: int = 1, page_size: int = 30, async def list_chat_assistants(self, page: int = 1, page_size: int = 30,
orderby: str = "create_time", desc: bool = True, orderby: str = "create_time", desc: str = "true",
name: Optional[str] = None, name: Optional[str] = None,
chat_id: Optional[str] = None) -> Dict[str, Any]: chat_id: Optional[str] = None) -> Dict[str, Any]:
""" """
@ -588,7 +591,7 @@ class AsyncRAGFlowClient:
return await self._request('PUT', endpoint, json=data) return await self._request('PUT', endpoint, json=data)
async def list_chat_sessions(self, chat_id: str, page: int = 1, page_size: int = 30, async def list_chat_sessions(self, chat_id: str, page: int = 1, page_size: int = 30,
orderby: str = "create_time", desc: bool = True, orderby: str = "create_time", desc: str = "true",
name: Optional[str] = None, session_id: Optional[str] = None, name: Optional[str] = None, session_id: Optional[str] = None,
user_id: Optional[str] = None) -> Dict[str, Any]: user_id: Optional[str] = None) -> Dict[str, Any]:
""" """
@ -707,7 +710,7 @@ class AsyncRAGFlowClient:
return await self._request('POST', endpoint, json=data) return await self._request('POST', endpoint, json=data)
async def list_agent_sessions(self, agent_id: str, page: int = 1, page_size: int = 30, async def list_agent_sessions(self, agent_id: str, page: int = 1, page_size: int = 30,
orderby: str = "create_time", desc: bool = True, orderby: str = "create_time", desc: str = "true",
session_id: Optional[str] = None, user_id: Optional[str] = None, session_id: Optional[str] = None, user_id: Optional[str] = None,
dsl: bool = True) -> Dict[str, Any]: dsl: bool = True) -> Dict[str, Any]:
""" """
@ -751,7 +754,7 @@ class AsyncRAGFlowClient:
return await self._request('POST', endpoint, headers=headers, json=data) return await self._request('POST', endpoint, headers=headers, json=data)
async def list_agents(self, page: int = 1, page_size: int = 30, orderby: str = "create_time", async def list_agents(self, page: int = 1, page_size: int = 30, orderby: str = "create_time",
desc: bool = True, name: Optional[str] = None, desc: str = "true", name: Optional[str] = None,
agent_id: Optional[str] = None) -> Dict[str, Any]: agent_id: Optional[str] = None) -> Dict[str, Any]:
""" """
列出代理 列出代理