kangda_robot_backend/ruoyi-fastapi-backend/module_admin/entity/vo/ragflow_vo.py

77 lines
3.3 KiB
Python

from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field
from pydantic.alias_generators import to_camel
from typing import Optional, List
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')
# chat_id: Optional[str] = Field(default=None, description='聊天ID')
@as_query
class ListDocumentsQueryModel(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='排序方式')
keywords: Optional[str] = Field(default=None, description='关键字')
document_id: Optional[str] = Field(default=None, description='文档ID')
document_name: Optional[str] = Field(default=None, description='文档名称')
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='文件元数据')
# 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='解析器配置')
class DocumentIdsModel(BaseModel):
model_config = ConfigDict(alias_generator=to_camel, from_attributes=True)
documnet_ids: list[str] = Field(default=None, description='文件ID列表')
class DeleteFileModel(BaseModel):
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='数据集解析配置')