From 4c75cc183eb0528d65e0a14f4344cdcf552ab8ad Mon Sep 17 00:00:00 2001 From: haotian <2421912570@qq.com> Date: Fri, 5 Sep 2025 11:24:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=96=B0=E5=BB=BA=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-fastapi-backend/.env.dev | 14 +++++++++++- .../controller/ragflow_controller.py | 13 ++++++++++- .../module_admin/entity/vo/ragflow_vo.py | 17 ++++++++++++++ .../module_admin/service/ragflow_service.py | 22 +++++++++++++++++-- 4 files changed, 62 insertions(+), 4 deletions(-) diff --git a/ruoyi-fastapi-backend/.env.dev b/ruoyi-fastapi-backend/.env.dev index 3af78d7..7707408 100644 --- a/ruoyi-fastapi-backend/.env.dev +++ b/ruoyi-fastapi-backend/.env.dev @@ -79,6 +79,9 @@ HAIKANG_DOOR_STATES_URL = '/api/v1/door/states' HAIKANG_DOOR_DOCONTROL_URL = '/api/acs/v1/door/doControl' # 门禁点事件v2 HAIKANG_DOOR_ENVENTS_URL = '/api/acs/v2/door/events' +# 门禁点列表v2 +HAIKANG_DOOR_SEARCH = '/api/resource/v2/door/search' + # 人脸分组1vN检索 HAIKANG_APPLICATION_ONETOMANY_URL = '/api/frs/v1/application/oneToMany' @@ -90,4 +93,13 @@ HAIKANG_PICTURE_CHECK_URL = '/api/frs/v1/face/picture/check' HAIKANG_FACE_GROUP_URL = '/api/frs/v1/face/group' # 查询人脸识别事件 -HAIKANG_FACECAPATURE_SEARCH = '/api/frs/v1/event/face_capture/search' \ No newline at end of file +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配置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 fcfa0f5..8aefe81 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 +from module_admin.entity.vo.ragflow_vo import RagflowListQueryModel, ListDocumentsQueryModel, UpdateFileModel, DeleteFileModel, CreateDatasetModel # from config.env import RAGFlowConfig @@ -37,7 +37,18 @@ async def get_system_ragflow_list( return parse_result(result) +# 创建数据集 +@ragflowController.post('/create_dataset') +async def create_dataset( + request: Request, + create_dataset_params: CreateDatasetModel, +): + result = await RAGFlowService.create_dataset_services(create_dataset_params) + return parse_result(result) + + + # 列出数据集中文档列表 @ragflowController.get("/list_documents/{dataset_id}") async def list_documents_by_dataset_id( 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 1e9ec67..11609c9 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/ragflow_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/ragflow_vo.py @@ -35,6 +35,7 @@ class UpdateFileModel(BaseModel): 更新文件模型 """ # name 要带文件后缀名 + model_config = ConfigDict(alias_generator=to_camel, from_attributes=True) name: Optional[str] = Field(default=None, description='文件名称') meta_fields: Optional[dict] = Field(default=None, description='文件元数据') @@ -46,9 +47,25 @@ class UpdateFileModel(BaseModel): class DeleteFileModel(BaseModel): + model_config = ConfigDict(alias_generator=to_camel, from_attributes=True) ids: List[str] = Field(description='文档ID列表') +class CreateDatasetModel(BaseModel): + """ + 创建数据集参数模型 + """ + model_config = ConfigDict(alias_generator=to_camel, from_attributes=True) + + name:str = Field(description='数据集名称') + avatar: Optional[str] = Field(default=None, description='数据集头像, base64编码') + description: Optional[str] = Field(default=None, description='数据集描述') + embedding_model: Optional[str] = Field(default=None, description='数据集的embedding模型') + permission: Optional[str] = Field(default = "me", description='数据集权限') + chunk_method: Optional[str] = Field(default = "naive", description='数据集分块方法') + parser_config: Optional[dict] = Field(default = None, description='数据集解析配置') + + \ 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 bd1bf28..fc91fd8 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 +from module_admin.entity.vo.ragflow_vo import RagflowListQueryModel, ListDocumentsQueryModel, UpdateFileModel, DeleteFileModel, CreateDatasetModel from config.env import RAGFlowConfig from typing import List @@ -21,7 +21,25 @@ class RAGFlowService: # 获取分页数据 return result - + # 创建数据集 + @classmethod + async def create_dataset_services(cls, create_dataset_params: CreateDatasetModel): + """创建数据集 + + Args: + create_dataset_params (CreateDatasetModel): 创建参数 + + Returns: + _type_: _description_ + """ + async with AsyncRAGFlowClient(RAGFlowConfig.RAGFLOW_BASE_URL, RAGFlowConfig.RAGFLOW_API_KEY) as client: + result = await client.create_dataset( + **(create_dataset_params.model_dump()) + ) + + return result + + # 获取数据集中文档列表 @classmethod async def list_documents_services(