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 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 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 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 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 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 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 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 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 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 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 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 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 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> 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 document_ids 255: optional base.Base Base } struct GetDocumentProgressResponse { 1: list 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 origin_table_meta; // 表格预览前端需要传递原始的数据表结构 6: optional list 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 sheet_list 4: list table_meta // 选中的 sheet 的 schema, 不选择默认返回第一个 sheet 5: list> 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 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") }