实现更新文档功能(更新名称, 分块方法)

This commit is contained in:
haotian 2025-09-05 10:04:07 +08:00
parent 39ed13daf5
commit 3d474468e3
3 changed files with 49 additions and 3 deletions

View File

@ -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
from module_admin.entity.vo.ragflow_vo import RagflowListQueryModel, ListDocumentsQueryModel, UpdateFileModel
# from config.env import RAGFlowConfig
@ -70,4 +70,20 @@ async def upload_file_dataset(
# print(file)
result = await RAGFlowService.upload_file_dataset_services(None, dataset_id ,files)
return ResponseUtil.success(data = result)
return ResponseUtil.success(data = result)
# 更新文档
@ragflowController.post("/update_file/{dataset_id}/{document_id}")
async def update_file_dataset(
dataset_id: str,
document_id: str,
update_params: UpdateFileModel,
# query_db: AsyncSession = Depends(get_db),
):
"""
更新文件到数据集
"""
# print(file)
result = await RAGFlowService.update_file_dataset_services(dataset_id ,document_id, update_params)
return ResponseUtil.success(result)

View File

@ -29,4 +29,21 @@ class ListDocumentsQueryModel(BaseModel):
document_id: Optional[str] = Field(default=None, description='文档ID')
document_name: Optional[str] = Field(default=None, description='文档名称')
class UpdateFileModel(BaseModel):
"""
更新文件模型
"""
# name 要带文件后缀名
name: Optional[str] = Field(default=None, description='文件名称')
meta_fields: Optional[dict] = Field(default=None, description='文件元数据')
# naive, manual qa table paper book laws presentation picture one email
chunk_method: Optional[str] = Field(default=None, description='分块方法')
# 不同的分块方法有不同的参数.
parser_config: Optional[dict] = Field(default=None, description='解析器配置')

View File

@ -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
from module_admin.entity.vo.ragflow_vo import RagflowListQueryModel, ListDocumentsQueryModel, UpdateFileModel
from config.env import RAGFlowConfig
class RAGFlowService:
@ -43,4 +43,17 @@ class RAGFlowService:
async with AsyncRAGFlowClient(RAGFlowConfig.RAGFLOW_BASE_URL, RAGFlowConfig.RAGFLOW_API_KEY) as client:
result = await client.upload_documents_bytes(dataset_id=dataset_id, file_bytes=files)
return result.get('data', None)
# 更新文档内容
@classmethod
async def update_file_dataset_services(
cls,
dataset_id: str,
document_id: str,
update_params: UpdateFileModel,
):
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.get('data', None)