feat: improve rag dataset document management

This commit is contained in:
wren
2026-05-11 19:25:50 +08:00
parent 2aa5a6d1d6
commit 8206ed7d43
5 changed files with 351 additions and 165 deletions
@@ -16,7 +16,10 @@ from fastapi_modules.fastapi_leaudit.domian.Dto.ragChatDto import (
RagChatSendMessageDTO,
RagMessageFeedbackDTO,
)
from fastapi_modules.fastapi_leaudit.domian.Dto.ragDatasetDto import RagDatasetUpdateDTO
from fastapi_modules.fastapi_leaudit.domian.Dto.ragDatasetDto import (
RagDatasetBatchDocumentDeleteDTO,
RagDatasetUpdateDTO,
)
from fastapi_modules.fastapi_leaudit.domian.vo.ragChatVo import (
RagAppParametersVO,
RagChatAppListVO,
@@ -27,6 +30,7 @@ from fastapi_modules.fastapi_leaudit.domian.vo.ragChatVo import (
RagOperationResultVO,
)
from fastapi_modules.fastapi_leaudit.domian.vo.ragDatasetVo import (
RagDatasetBatchDeleteResultVO,
RagDatasetDetailVO,
RagDatasetDocumentItemVO,
RagDatasetDocumentPageVO,
@@ -347,6 +351,23 @@ class RagChatController(BaseController):
)
return Result.success(data=result)
@self.router.post("/datasets/{DatasetId}/documents/batch-delete", response_model=Result[RagDatasetBatchDeleteResultVO])
async def BatchDeleteDatasetDocuments(
DatasetId: int,
Body: RagDatasetBatchDocumentDeleteDTO,
payload: dict[str, Any] = Depends(verify_access_token),
):
if not await self._check_permission(int(payload["user_id"]), [self._PERMISSIONS["dataset_delete"]]):
return JSONResponse(status_code=403, content={"code": 403, "msg": "当前用户没有删除知识库文档权限", "data": None})
result = await self.RagDatasetService.BatchDeleteDatasetDocuments(
CurrentUserId=int(payload["user_id"]),
UserArea=payload.get("area"),
UserRole=payload.get("user_role"),
DatasetId=DatasetId,
DocumentIds=Body.document_ids,
)
return Result.success(data=result)
@self.router.post("/datasets/{DatasetId}/retrieve", response_model=Result[RagDatasetRetrieveResponseVO])
async def RetrieveDataset(
DatasetId: int,