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,98 @@
namespace go flow.dataengine.dataset
// 类型
enum FormatType {
Text = 0 // 文本
Table = 1 // 表格
Image = 2 // 图片
Database = 3 // 数据库
}
struct ChunkStrategy {
1: string separator // 分隔符,如句号
2: i64 max_tokens // 分片的最大token数
3: bool remove_extra_spaces // 替换掉连续的空格、换行符和制表符
4: bool remove_urls_emails // 是否去除url和email
5: ChunkType chunk_type // 如果为0, 则不使用以上字段的配置
7: optional CaptionType caption_type // 图片类型,图片描述文字的标注方式
8: optional i64 overlap; //分段重叠度
9: optional i64 max_level; //最大层级数(按层级分段时生效)
10: optional bool save_title; //切片保留层级标题(按层级分段时生效)
}
enum ChunkType{
DefaultChunk = 0
CustomChunk = 1
LevelChunk = 2
}
enum ContentSchema{
DefaultSchema = 0
LinkReaderSchema = 1
}
enum CaptionType {
Auto = 0 // 智能标注
Manual = 1 // 人工标注
}
enum DocumentStatus {
Processing = 0 // 上传中
Enable = 1 // 生效
Disable = 2 // 失效
Deleted = 3 // 删除
Resegment = 4 // 重新分片中,调用方不感知该状态
Refreshing = 5 // 刷新中(刷新成功后会删除)
Failed = 9 // 失败
}
enum DocumentSource {
Document = 0 // 本地文件上传
Custom = 2 // 自定义类型
}
struct ParsingStrategy{
1: optional ParsingType parsing_type; //解析类型
2: optional bool image_extraction; //是否开启图片元素提取(精准解析时生效)
3: optional bool table_extraction; //是否开启表格元素提取(精准解析时生效)
4: optional bool image_ocr; //是否开启图片OCR精准解析时生效
}
enum ParsingType{
FastParsing = 0 //快速解析
AccurateParsing = 1 //精准解析
}
struct IndexStrategy{
1: optional bool vector_indexing; //是否开启向量索引默认为true
2: optional bool keyword_indexing; //是否开启关键词索引默认为true
3: optional bool hierarchical_indexing; //是否开启分层索引
4: optional string model; //向量模型
}
struct FilterStrategy{
1: optional list<i32> filter_page; //过滤页数
}
// 排序字段
enum OrderField {
CreateTime = 1
UpdateTime = 2
}
// 排序规则
enum OrderType {
Desc = 1
Asc = 2
}
struct SinkStrategy {
1: bool check_index // 是否检查索引成功
}
enum ReviewStatus {
Processing = 0 // 处理中
Enable = 1 // 已完成
Failed = 2 // 失败
ForceStop = 3 // 失败
}

View File

@@ -0,0 +1,164 @@
include "../../base.thrift"
include "common.thrift"
namespace go flow.dataengine.dataset
struct CreateDatasetRequest {
1: string name // 知识库名称长度不超过100个字符
2: string description // 知识库描述
3: i64 space_id (agw.js_conv="str", api.js_conv="true") // 空间ID
4: string icon_uri // 知识库头像URI
5: common.FormatType format_type
6: i64 biz_id (agw.js_conv="str", api.js_conv="true") // 开放给第三方的业务标识, coze 传 0 或者不传
7: i64 project_id (agw.js_conv="str", api.js_conv="true") //新增project ID
255: optional base.Base Base
}
struct CreateDatasetResponse {
1: i64 dataset_id (agw.js_conv="str", api.js_conv="true")
253: required i64 code
254: required string msg
255: optional base.BaseResp BaseResp
}
struct DatasetDetailRequest {
1: list<string> DatasetIDs (agw.js_conv="str", api.body="dataset_ids")
3: i64 project_id (agw.js_conv="str", api.js_conv="true") //新增project ID
2: i64 space_id (agw.js_conv="str", api.js_conv="true")
255: optional base.Base Base
}
struct DatasetDetailResponse {
1: map<string, Dataset> dataset_details (agw.js_conv="str")
253: required i64 code
254: required string msg
255: optional base.BaseResp BaseResp
}
enum DatasetStatus {
DatasetProcessing = 0
DatasetReady = 1
DatasetDeleted = 2 // 软删
DatasetForbid = 3 // 不启用
DatasetFailed = 9
}
struct Dataset {
1: i64 dataset_id(agw.js_conv="str", api.js_conv="true")
2: string name // 数据集名称
3: list<string> file_list // 文件列表
4: i64 all_file_size (agw.js_conv="str", api.js_conv="true") // 所有文件大小
5: i32 bot_used_count // 使用Bot数
6: DatasetStatus status
7: list<string> processing_file_list // 处理中的文件名称列表,兼容老逻辑
8: i32 update_time // 更新时间,秒级时间戳
9: string icon_url
10: string description
11: string icon_uri
12: bool can_edit // 是否可以编辑
13: i32 create_time // 创建时间,秒级时间戳
14: i64 creator_id (agw.js_conv="str", api.js_conv="true") // 创建者ID
15: i64 space_id (agw.js_conv="str", api.js_conv="true") // 空间ID
18: list<string> failed_file_list (agw.js_conv="str") // 处理失败的文件
19: common.FormatType format_type
20: i32 slice_count // 分段数量
21: i32 hit_count // 命中次数
22: i32 doc_count // 文档数量
23: common.ChunkStrategy chunk_strategy // 切片规则
24: list<string> processing_file_id_list // 处理中的文件ID列表
25: string project_id //新增project ID
}
struct ListDatasetRequest {
1: optional DatasetFilter filter
3: optional i32 page
4: optional i32 size
5: i64 space_id (agw.js_conv="str", api.js_conv="true")
6: optional common.OrderField order_field // 排序字段
7: optional common.OrderType order_type // 排序规则
8: optional string space_auth // 如果传了指定值, 就放开校验
9: optional i64 biz_id (agw.js_conv="str", api.js_conv="true") // 开放给第三方的业务标识
10: optional bool need_ref_bots // 是否需要拉取引用bots的数量会增加响应延时
11: optional string project_id //新增project ID
255: optional base.Base Base
}
struct ListDatasetResponse {
1: list<Dataset> dataset_list
2: i32 total
253: required i64 code
254: required string msg
255: required base.BaseResp BaseResp
}
struct DatasetFilter {
// 如果都设置了And 关系
1: optional string name // 关键字搜索, 按照名称模糊匹配
2: optional list<string> dataset_ids (agw.js_conv="str") // 知识库id列表
3: optional DatasetSource source_type // 来源
4: optional DatasetScopeType scope_type // 搜索类型
5: optional common.FormatType format_type // 类型
}
enum DatasetScopeType {
ScopeAll = 1
ScopeSelf = 2
}
enum DatasetSource{
SourceSelf = 1
SourceExplore = 2
}
struct DeleteDatasetRequest {
1: i64 dataset_id (agw.js_conv="str", api.js_conv="true")
255: optional base.Base Base
}
struct DeleteDatasetResponse {
253: required i64 code
254: required string msg
255: optional base.BaseResp BaseResp
}
struct UpdateDatasetRequest {
1: i64 dataset_id (agw.js_conv="str", api.js_conv="true") // 知识库id
2: string name // 知识库名称,不能为空
3: string icon_uri // 知识库icon
4: string description // 知识库描述
5: optional DatasetStatus status
255: optional base.Base Base;
}
struct UpdateDatasetResponse {
253: required i64 code
254: required string msg
255: optional base.BaseResp BaseResp
}
struct GetIconRequest {
1: common.FormatType format_type
}
struct Icon {
1: string url
2: string uri
}
struct GetIconResponse {
1: Icon icon
253: required i64 code
254: required string msg
255: optional base.BaseResp BaseResp
}

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")
}

View File

@@ -0,0 +1,40 @@
include "slice.thrift"
include "dataset.thrift"
include "document.thrift"
include "common.thrift"
include "review.thrift"
namespace go flow.dataengine.dataset
service DatasetService {
// 知识库相关
dataset.GetIconResponse GetIconForDataset(1:dataset.GetIconRequest req) (api.post='/api/knowledge/icon/get', api.category="knowledge",agw.preserve_base="true")
dataset.CreateDatasetResponse CreateDataset(1:dataset.CreateDatasetRequest req) (api.post='/api/knowledge/create', api.category="knowledge",agw.preserve_base="true")
dataset.DatasetDetailResponse DatasetDetail(1:dataset.DatasetDetailRequest req) (api.post='/api/knowledge/detail', api.category="knowledge",agw.preserve_base="true")
dataset.ListDatasetResponse ListDataset(1:dataset.ListDatasetRequest req) (api.post='/api/knowledge/list', api.category="knowledge",agw.preserve_base="true")
dataset.DeleteDatasetResponse DeleteDataset(1:dataset.DeleteDatasetRequest req) (api.post='/api/knowledge/delete', api.category="knowledge",agw.preserve_base="true")
dataset.UpdateDatasetResponse UpdateDataset(1:dataset.UpdateDatasetRequest req) (api.post='/api/knowledge/update', api.category="knowledge",agw.preserve_base="true")
// Document相关
document.CreateDocumentResponse CreateDocument(1:document.CreateDocumentRequest req) (api.post='/api/knowledge/document/create', api.category="knowledge",agw.preserve_base="true")
document.ListDocumentResponse ListDocument(1:document.ListDocumentRequest req) (api.post='/api/knowledge/document/list', api.category="knowledge",agw.preserve_base="true")
document.DeleteDocumentResponse DeleteDocument(1:document.DeleteDocumentRequest req) (api.post='/api/knowledge/document/delete', api.category="knowledge",agw.preserve_base="true")
document.UpdateDocumentResponse UpdateDocument(1:document.UpdateDocumentRequest req) (api.post='/api/knowledge/document/update', api.category="knowledge",agw.preserve_base="true")
document.GetDocumentProgressResponse GetDocumentProgress(1:document.GetDocumentProgressRequest req) (api.post='/api/knowledge/document/progress/get', api.category="knowledge",agw.preserve_base="true")
document.ResegmentResponse Resegment(1:document.ResegmentRequest req) (api.post='/api/knowledge/document/resegment', api.category="knowledge",agw.preserve_base="true")
document.UpdatePhotoCaptionResponse UpdatePhotoCaption(1:document.UpdatePhotoCaptionRequest req) (api.post='/api/knowledge/photo/caption', api.category="knowledge",agw.preserve_base="true")
document.ListPhotoResponse ListPhoto(1:document.ListPhotoRequest req) (api.post='/api/knowledge/photo/list', api.category="knowledge",agw.preserve_base="true")
document.PhotoDetailResponse PhotoDetail(1:document.PhotoDetailRequest req) (api.post='/api/knowledge/photo/detail', api.category="knowledge",agw.preserve_base="true")
document.ExtractPhotoCaptionResponse ExtractPhotoCaption(1:document.ExtractPhotoCaptionRequest req) (api.post='/api/knowledge/photo/extract_caption', api.category="knowledge",agw.preserve_base="true")
document.GetTableSchemaResponse GetTableSchema(1:document.GetTableSchemaRequest req) (api.post='/api/knowledge/table_schema/get', api.category="knowledge",agw.preserve_base="true")
document.ValidateTableSchemaResponse ValidateTableSchema(1:document.ValidateTableSchemaRequest req) (api.post='/api/knowledge/table_schema/validate', api.category="knowledge",agw.preserve_base="true")
// slice相关
slice.DeleteSliceResponse DeleteSlice(1:slice.DeleteSliceRequest req) (api.post='/api/knowledge/slice/delete', api.category="knowledge",agw.preserve_base="true")
slice.CreateSliceResponse CreateSlice(1:slice.CreateSliceRequest req) (api.post='/api/knowledge/slice/create', api.category="knowledge",agw.preserve_base="true")
slice.UpdateSliceResponse UpdateSlice(1:slice.UpdateSliceRequest req) (api.post='/api/knowledge/slice/update', api.category="knowledge",agw.preserve_base="true")
slice.ListSliceResponse ListSlice(1:slice.ListSliceRequest req) (api.post='/api/knowledge/slice/list', api.category="knowledge",agw.preserve_base="true")
/** 预分片相关 **/
review.CreateDocumentReviewResponse CreateDocumentReview(1:review.CreateDocumentReviewRequest req) (api.post='/api/knowledge/review/create', api.category="knowledge",agw.preserve_base="true")
review.MGetDocumentReviewResponse MGetDocumentReview(1:review.MGetDocumentReviewRequest req) (api.post='/api/knowledge/review/mget', api.category="knowledge",agw.preserve_base="true")
review.SaveDocumentReviewResponse SaveDocumentReview(1:review.SaveDocumentReviewRequest req) (api.post='/api/knowledge/review/save', api.category="knowledge",agw.preserve_base="true")
}

View File

@@ -0,0 +1,69 @@
include "../../base.thrift"
include "common.thrift"
namespace go flow.dataengine.dataset
struct ReviewInput {
1: string document_name
2: string document_type
3: string tos_uri
4: optional i64 document_id (agw.js_conv="str",api.js_conv="true")
}
struct Review {
1: optional i64 review_id (agw.js_conv="str",api.js_conv="true")
2: string document_name
3: string document_type
4: string tos_url
5: optional common.ReviewStatus status // 状态
6: optional string doc_tree_tos_url
7: optional string preview_tos_url
}
struct CreateDocumentReviewRequest {
1: i64 dataset_id (agw.js_conv="str",api.js_conv="true")
2: list<ReviewInput> reviews
3: optional common.ChunkStrategy chunk_strategy
4: optional common.ParsingStrategy parsing_strategy
255: optional base.Base Base
}
struct CreateDocumentReviewResponse {
1: i64 dataset_id (agw.js_conv="str",api.js_conv="true")
2: list<Review> reviews
253: required i64 code
254: required string msg
255: required base.BaseResp BaseResp
}
struct MGetDocumentReviewRequest {
1: i64 dataset_id (agw.js_conv="str",api.js_conv="true")
2: list<string> review_ids (agw.js_conv="str")
255: optional base.Base Base
}
struct MGetDocumentReviewResponse {
1: i64 dataset_id (agw.js_conv="str",api.js_conv="true")
2: list<Review> reviews
253: required i64 code
254: required string msg
255: required base.BaseResp BaseResp
}
struct SaveDocumentReviewRequest {
1: i64 dataset_id (agw.js_conv="str",api.js_conv="true")
2: i64 review_id (agw.js_conv="str",api.js_conv="true")
3: string doc_tree_json
255: optional base.Base Base
}
struct SaveDocumentReviewResponse {
253: required i64 code
254: required string msg
255: required base.BaseResp BaseResp
}

View File

@@ -0,0 +1,78 @@
include "../../base.thrift"
include "common.thrift"
namespace go flow.dataengine.dataset
struct DeleteSliceRequest {
4: optional list<string> slice_ids (api.body="slice_ids") // 要删除的分片ID列表
255: optional base.Base Base
}
struct DeleteSliceResponse {
253: required i64 code
254: required string msg
255: optional base.BaseResp BaseResp(api.none="true")
}
struct CreateSliceRequest {
2: required i64 document_id(agw.js_conv="str", api.js_conv="true") // 新增分片插入的文档ID
5: optional string raw_text // 新增分片的内容
6: optional i64 sequence(agw.js_conv="str", api.js_conv="true") // 分片插入位置1表示文档开头最大值为最后一个分片位置+1
255: optional base.Base Base
}
struct CreateSliceResponse {
1: i64 slice_id (agw.js_conv="str", api.js_conv="true") // 新增分片ID
253: required i64 code
254: required string msg
255: optional base.BaseResp BaseResp
}
struct UpdateSliceRequest {
2: required i64 slice_id (agw.js_conv="str", api.js_conv="true") // 要更新的分片ID
7: optional string raw_text // 要更新的内容
255: optional base.Base Base
}
enum SliceStatus {
PendingVectoring = 0 // 未向量化
FinishVectoring = 1 // 已向量化
Deactive = 9 // 禁用
}
struct UpdateSliceResponse {
253: required i64 code
254: required string msg
255: optional base.BaseResp BaseResp
}
struct ListSliceRequest {
2: optional i64 document_id(agw.js_conv="str", api.js_conv="true") // 要list的分片所属的文档ID
3: optional i64 sequence(agw.js_conv="str", api.js_conv="true") // 分片序号表示从该序号的分片开始list
4: optional string keyword // 查询关键字
5: optional i64 dataset_id (agw.js_conv="str", api.js_conv="true") // 如果只传 dataset_id则返回该知识库下的分片
21: i64 page_size(agw.js_conv="str", api.js_conv="true") // 每页大小
255: optional base.Base Base
}
struct ListSliceResponse {
1: list<SliceInfo> slices // 返回的分片列表
2: i64 total(agw.js_conv="str", api.js_conv="true") // 总分片数
3: bool hasmore // 是否还有更多分片
253: required i64 code
254: required string msg
255: optional base.BaseResp BaseResp
}
struct SliceInfo {
1: i64 slice_id (agw.js_conv="str", api.js_conv="true") // 分片ID
2: string content // 分片内容
3: SliceStatus status // 分片状态
4: i64 hit_count(agw.js_conv="str", api.js_conv="true") // 命中次数
5: i64 char_count(agw.js_conv="str", api.js_conv="true") // 字符数
7: i64 sequence(agw.js_conv="str", api.js_conv="true") // 序号
8: i64 document_id(agw.js_conv="str", api.js_conv="true") // 分片所属的文档ID
9: string chunk_info // 分片相关的元信息, 透传 slice 表里的 extra->chunk_info 字段 (json)
}