feat: manually mirror opencoze's code from bytedance

Change-Id: I09a73aadda978ad9511264a756b2ce51f5761adf
This commit is contained in:
fanlv
2025-07-20 17:36:12 +08:00
commit 890153324f
14811 changed files with 1923430 additions and 0 deletions

View File

@@ -0,0 +1,337 @@
include "../../base.thrift"
include "common.thrift"
namespace go flow.dataengine.dataset
struct ListDocumentRequest {
1: required i64 dataset_id(agw.js_conv='str', api.js_conv='true')
2: optional list<string> document_ids (agw.js_conv='str')
3: optional i32 page
4: optional i32 size
5: optional string keyword // 根据名称搜索
255: optional base.Base Base
}
struct ListDocumentResponse {
1: list<DocumentInfo> document_infos
2: i32 total
253: required i64 code
254: required string msg
255: required base.BaseResp BaseResp
}
struct DocumentInfo {
1: string name
2: i64 document_id(agw.js_conv='str', api.js_conv='true')
3: optional string tos_uri // 文件链接
5: i32 create_time // 创建时间
6: i32 update_time // 更新时间
7: optional i64 creator_id (agw.js_conv="str", api.js_conv='true', api.body="creator_id") // 创建人
8: i32 slice_count // 包含分段数量
9: string type // 文件后缀 csv, pdf 等
10: i32 size // 文件大小 字节数
11: i32 char_count // 字符数
12: common.DocumentStatus status // 状态
13: i32 hit_count // 命中次数
14: common.DocumentSource source_type // 来源
18: common.FormatType format_type // 文件类型
19: optional list<TableColumn> table_meta // 表格类型元数据
20: optional string web_url // url 地址
21: optional string status_descript // 状态的详细信息;如果切片失败,返回失败信息
24: optional i64 space_id(agw.js_conv="str", api.js_conv="true") // 空间id
// 以下字段仅针对重构后的表格类型有用,用于前端判断
26: optional bool editable_append_content // 仅针对表格类型,是否允许添加内容、修改表结构
27: common.ChunkStrategy chunk_strategy // 切片规则
28: optional string imagex_uri // imagex 存储的文件链接
29: optional string doc_outline // 层级分段文档树Json (未使用)
30: optional common.ParsingStrategy parsing_strategy // 解析策略
32: optional common.FilterStrategy filter_strategy // 过滤策略
33: optional string doc_tree_tos_url // 层级分段文档树 tos_url
34: optional string preview_tos_url // 预览用的原文档 tos_url
35: optional i64 review_id // 预览用的原文档 tos_url
}
struct TableColumn {
1: i64 id(agw.js_conv="str", api.js_conv="true", api.body="id") // 列 id
2: string column_name // 列名
3: bool is_semantic // 是否为语义匹配列
4: i64 sequence(agw.js_conv="str", api.js_conv="true", api.body="sequence")// 列原本在 excel 的序号
5: optional ColumnType column_type // 列类型
6: optional bool contains_empty_value
7: optional string desc // 描述
}
enum ColumnType {
Unknown = 0
Text = 1 // 文本
Number = 2 // 数字
Date = 3 // 时间
Float = 4 // float
Boolean = 5 // bool
Image = 6 // 图片
}
struct DeleteDocumentRequest {
2: list<string> document_ids // 要删除的文档ID列表
255: optional base.Base Base
}
struct DeleteDocumentResponse {
253: required i64 code
254: required string msg
255: required base.BaseResp BaseResp
}
struct UpdateDocumentRequest{
1: i64 document_id (agw.js_conv="str", api.js_conv="true")
// 需要更新就传, 更新名称
3: optional string document_name
// 更新表结构
5: optional list<TableColumn> table_meta // 表格元数据
255: optional base.Base Base
}
struct UpdateDocumentResponse {
253: required i64 code
254: required string msg
255: optional base.BaseResp BaseResp
}
struct UpdatePhotoCaptionRequest {
1: required i64 document_id(agw.js_conv='str', api.js_conv='true') // 文档ID
2: required string caption // 要更新的图片描述信息
255: optional base.Base Base
}
struct UpdatePhotoCaptionResponse {
253: required i64 code
254: required string msg
255: required base.BaseResp BaseResp(api.none="true")
}
struct ListPhotoRequest {
1: required i64 dataset_id(agw.js_conv='str', api.js_conv='true') // 知识库ID
2: optional i32 page // 页数,从 1 开始
3: optional i32 size // 每页大小
4: optional PhotoFilter filter
255: optional base.Base Base
}
struct PhotoFilter {
1: optional bool has_caption // true 筛选 “已标注” 的图片false 筛选 “未标注” 的图片
2: optional string keyword // 搜索关键字,对图片名称和图片描述进行搜索
3: optional common.DocumentStatus status // 状态
}
struct ListPhotoResponse {
1: list<PhotoInfo> photo_infos
2: i32 total
253: required i64 code
254: required string msg
255: required base.BaseResp BaseResp(api.none="true")
}
struct PhotoInfo { // 图片型知识库一个图片对应一个文档
1: string name // 图片名称
2: i64 document_id(agw.js_conv='str', api.js_conv='true') // 文档ID
3: string url // 图片链接
4: string caption // 图片描述信息
5: i32 create_time // 创建时间
6: i32 update_time // 更新时间
7: i64 creator_id (agw.js_conv="str", api.js_conv='true', agw.key="creator_id", api.body="creator_id") // 创建人
8: string type // 图片后缀 jpg, png 等
9: i32 size // 图片大小
10: common.DocumentStatus status // 状态
11: common.DocumentSource source_type // 来源
}
struct PhotoDetailRequest {
1: required list<string> document_ids (agw.js_conv='str') // 文档ID列表
2: required i64 dataset_id(agw.js_conv='str', api.js_conv='true') // 知识库ID
255: optional base.Base Base
}
struct PhotoDetailResponse {
1: map<string, PhotoInfo> photo_infos // 文档ID到图片信息的映射
253: required i64 code
254: required string msg
255: required base.BaseResp BaseResp(api.none="true")
}
struct ResegmentRequest {
1: i64 dataset_id (agw.js_conv="str", api.js_conv="true") // 知识库ID
2: list<string> document_ids // 要重新分段的文档
3: common.ChunkStrategy chunk_strategy // 分段策略
5: optional common.ParsingStrategy parsing_strategy // 解析策略
7: optional common.FilterStrategy filter_strategy; // 过滤策略
255: optional base.Base Base
}
struct ResegmentResponse {
1: list<DocumentInfo> document_infos // 老版需要. 仅返回id 和名称即可
253: required i64 code
254: required string msg
255: optional base.BaseResp BaseResp
}
struct CreateDocumentRequest {
1: i64 dataset_id(agw.js_conv='str', api.js_conv='true') // 要插入文档的知识库id
4: common.FormatType format_type // 知识库的类型,目前支持文本、表格、图片三种知识库
// 表格类型一次只能创建一个
6: list<DocumentBase> document_bases // 待创建的文档信息
17: optional common.ChunkStrategy chunk_strategy // 只在知识库中没有文档时需要传递,已有则从知识库获取.切片规则,为空则自动按段落切片
31: optional bool is_append // 为 true 时向已有的 document 追加内容。text 类型不能使用
32: optional common.ParsingStrategy parsing_strategy // 解析策略
255: optional base.Base Base
}
struct CreateDocumentResponse {
2: list<DocumentInfo> document_infos
253: required i32 code
254: required string msg
255: required base.BaseResp BaseResp
}
// 用于创建文档的基本信息
struct DocumentBase{
1: string name // 文档名称
2: SourceInfo source_info
// 以下参数表格类型需要传递
4: optional list<TableColumn> table_meta // 表格元数据
5: optional TableSheet table_sheet // 表格解析信息
6: optional common.FilterStrategy filter_strategy // 过滤策略
7: optional string caption // 图片类型知识库,人工标注时的图片描述
}
// 支持多种数据源
struct SourceInfo {
1: optional string tos_uri (api.body="tos_uri"); // 本地上传返回的 uri
4: optional common.DocumentSource document_source (api.body="document_source");
// document_source 自定义原始内容: 表格型知识库需要符合的格式json list<map<string, string>>
5: optional string custom_content (api.body="custom_content")
// document_source 本地: 如果不传 tos 地址, 则需要传文件 base64, 类型
7: optional string file_base64 // 文件经过 base64 后的字符串
8: optional string file_type // 文件类型, 比如 pdf
// imagex_uri, 和 tos_uri 二选一, imagex_uri 优先,需要通过 imagex 的方法获取数据和签发 url
10: optional string imagex_uri
}
struct TableSheet {
1: i64 sheet_id (agw.js_conv="str", agw.key="sheet_id", api.js_conv="true", api.body="sheet_id") , // 用户选择的 sheet id
2: i64 header_line_idx (agw.js_conv="str", agw.key="header_line_idx", api.js_conv="true", api.body="header_line_idx"), // 用户选择的表头行数,从 0 开始编号
3: i64 start_line_idx (agw.js_conv="str", agw.key="start_line_idx", api.js_conv="true", api.body="start_line_idx") , // 用户选择的起始行号,从 0 开始编号
}
struct GetDocumentProgressRequest {
1: list<string> document_ids
255: optional base.Base Base
}
struct GetDocumentProgressResponse {
1: list<DocumentProgress> data
253: required i64 code
254: required string msg
255: optional base.BaseResp BaseResp
}
struct DocumentProgress {
1: i64 document_id(agw.js_conv="str", api.js_conv='true')
2: i32 progress // 知识库进度百分比
3: common.DocumentStatus status
4: optional string status_descript // 状态的详细描述;如果切片失败,返回失败信息
5: string document_name
6: optional i64 remaining_time // 剩余时间单位秒
7: optional i64 size
8: optional string type
9: optional string url
}
// 获取 database 上传的表格文件元信息
struct GetTableSchemaRequest {
1: optional TableSheet table_sheet; // 表格解析信息, 默认初始值0,0,1表示第1个表格表头行为第1行数据行从第2行开始
2: optional TableDataType table_data_type; // 不传默认返回所有数据
3: optional i64 document_id(agw.js_conv="str", agw.key="document_id", api.js_conv="true", api.body="document_id"); // 兼容重构前的版本:如果需要拉取的是当前 document 的 schema 时传递该值
4: optional SourceInfo source_file; // source file 的信息,新增 segment / 之前逻辑迁移到这里
5: optional list<TableColumn> origin_table_meta; // 表格预览前端需要传递原始的数据表结构
6: optional list<TableColumn> preview_table_meta; // 表格预览前端需要传递用户编辑之后的数据表结构
255: optional base.Base Base
}
enum TableDataType {
AllData = 0 // schema sheets 和 preview data
OnlySchema = 1 // 只需要 schema 结构 & Sheets
OnlyPreview = 2 // 只需要 preview data
}
struct DocTableSheet {
1: i64 id; // sheet 的编号
2: string sheet_name; // sheet 名
3: i64 total_row; // 总行数
}
struct GetTableSchemaResponse {
1: required i32 code
2: required string msg
3: list<DocTableSheet> sheet_list
4: list<TableColumn> table_meta // 选中的 sheet 的 schema, 不选择默认返回第一个 sheet
5: list<map<string,string>> preview_data(api.body="preview_data") // knowledge table 场景中会返回
255: optional base.BaseResp BaseResp(api.none="true")
}
// 判断用户配置的 schema 是否和对应 document id 的一致
struct ValidateTableSchemaRequest {
1: i64 space_id (agw.js_conv="str", agw.key="space_id", api.js_conv="true", api.body="space_id") // 空间ID
2: i64 document_id (agw.js_conv="str", agw.key="document_id", api.js_conv="true", api.body="document_id") // 要校验的文档ID
3: SourceInfo source_info (api.body="source_file") // source file 的信息
4: TableSheet table_sheet (api.body="table_sheet") // 表格解析信息, 默认初始值0,0,1表示第1个表格表头行为第1行数据行从第2行开始
255: optional base.Base Base
}
struct ValidateTableSchemaResponse {
1: optional map<string,string> ColumnValidResult (api.body="column_valid_result");
// 如果失败会返回错误码
253: required i64 code
254: required string msg
255: optional base.BaseResp BaseResp(api.none="true")
}
struct ExtractPhotoCaptionRequest {
1: required i64 document_id (agw.js_conv="str", agw.key="document_id", api.js_conv="true", api.body="document_id")
255: optional base.Base Base
}
struct ExtractPhotoCaptionResponse {
1: string caption // 图片描述
253: required i64 code
254: required string msg
255: required base.BaseResp BaseResp(api.none="true")
}