Files
2026-07-13 13:24:55 +08:00

183 lines
6.7 KiB
Thrift

namespace go data.knowledge
// type
enum FormatType {
Text = 0 // Text
Table = 1 // table
Image = 2 // image
Database = 3 // database
}
struct ChunkStrategy {
1: string separator // A separator, such as a period
2: i64 max_tokens // Maximum number of tokens for sharding
3: bool remove_extra_spaces // Replace consecutive spaces, newlines, and tabs
4: bool remove_urls_emails // Remove URL and email
5: ChunkType chunk_type // If 0, the configuration of the above fields is not used
7: optional CaptionType caption_type // Image type, image description text annotation method
8: optional i64 overlap; //segmented overlap
9: optional i64 max_level; //Maximum number of levels (effective when segmented by level)
10: optional bool save_title; //Slice preserves level headers (effective when segmented by level)
}
enum ChunkType{
DefaultChunk = 0
CustomChunk = 1
LevelChunk = 2
}
enum ContentSchema{
DefaultSchema = 0
LinkReaderSchema = 1
}
enum CaptionType {
Auto = 0 // intelligent annotation
Manual = 1 // manual annotation
}
enum DocumentStatus {
Processing = 0 // Uploading
Enable = 1 // take effect
Disable = 2 // failure
Deleted = 3 // delete
Resegment = 4 // In rescaling, the caller is not aware of the state
Refreshing = 5 // Refreshing (will be deleted after successful refresh)
Failed = 9 // fail
}
enum DocumentSource {
Document = 0 // local file upload
Custom = 2 // custom type
}
struct ParsingStrategy{
1: optional ParsingType parsing_type; //parse type
2: optional bool image_extraction; //Whether to enable image element extraction (effective when accurately parsing)
3: optional bool table_extraction; //Whether to enable table element extraction (effective when accurately parsing)
4: optional bool image_ocr; //Whether to turn on picture OCR (effective when accurate analysis)
}
enum ParsingType{
FastParsing = 0 //fast parse
AccurateParsing = 1 //accurate analysis
}
struct IndexStrategy{
1: optional bool vector_indexing; //Whether to enable vector indexing (default is true)
2: optional bool keyword_indexing; //Whether to enable keyword indexing (default is true)
3: optional bool hierarchical_indexing; //Whether to enable hierarchical indexing
4: optional string model; //vector model
}
struct FilterStrategy{
1: optional list<i32> filter_page; //filter pages
}
// sort field
enum OrderField {
CreateTime = 1
UpdateTime = 2
}
// OrderType
enum OrderType {
Desc = 1
Asc = 2
}
struct SinkStrategy {
1: bool check_index // Check whether the index was successful
}
enum ReviewStatus {
Processing = 0 // Processing
Enable = 1 // Completed.
Failed = 2 // fail
ForceStop = 3 // fail
}
// Table column information
struct DocTableColumn {
1: i64 id(agw.js_conv="str", api.js_conv="true", api.body="id"); // Column ID
2: string column_name; // column_name
3: bool is_semantic; // Is it a semantically matched column?
4: i64 sequence(agw.js_conv="str", api.js_conv="true", api.body="sequence"); // List the serial number originally in excel
5: optional ColumnType column_type; // column type
6: optional bool contains_empty_value
7: optional string desc; // describe
}
enum ColumnType {
Unknown = 0
Text = 1 // Text
Number = 2 // number
Date = 3 // time
Float = 4 // float
Boolean = 5 // bool
Image = 6 // picture
}
struct PhotoInfo { // Picture Knowledge Base One picture corresponds to one document
1: string name // image name
2: i64 document_id(agw.js_conv='str', api.js_conv='true') // Document ID
3: string url // image link
4: string caption // picture description information
5: i32 create_time // create_time
6: i32 update_time // update time
7: i64 creator_id (agw.js_conv="str", api.js_conv='true', agw.key="creator_id", api.body="creator_id") // creator_id
8: string type // Image suffix jpg, png, etc
9: i32 size // image size
10: DocumentStatus status // status
11: DocumentSource source_type // source
}
struct DocumentProgress {
1: i64 document_id(agw.js_conv="str", api.js_conv='true')
2: i32 progress // Knowledge Base Progress Percentage
3: DocumentStatus status
4: optional string status_descript // A detailed description of the status; if the slice fails, a failure message is returned
5: string document_name
6: optional i64 remaining_time // Remaining time in seconds
7: optional i64 size
8: optional string type
9: optional string url
}
enum DatasetStatus {
DatasetProcessing = 0
DatasetReady = 1
DatasetDeleted = 2 // soft delete
DatasetForbid = 3 // Do not enable
DatasetFailed = 9
}
struct Dataset {
1: i64 dataset_id(agw.js_conv="str", api.js_conv="true")
2: string name // Dataset name
3: list<string> file_list // file list
4: i64 all_file_size (agw.js_conv="str", api.js_conv="true") // All file sizes
5: i32 bot_used_count // Bot count
6: DatasetStatus status
7: list<string> processing_file_list // List of file names in process, compatible with old logic
8: i32 update_time // Update time, second timestamp
9: string icon_url
10: string description
11: string icon_uri
12: bool can_edit // Can it be edited?
13: i32 create_time // create_time, second timestamp
14: i64 creator_id (agw.js_conv="str", api.js_conv="true") // creator ID
15: i64 space_id (agw.js_conv="str", api.js_conv="true") // Space ID
18: list<string> failed_file_list (agw.js_conv="str") // Processing failed files
19: FormatType format_type
20: i32 slice_count // number of segments
21: i32 hit_count // hit count
22: i32 doc_count // number of documents
23: ChunkStrategy chunk_strategy // slicing rule
24: list<string> processing_file_id_list // List of file IDs in process
25: string project_id //project ID
}