Files
TERES_web_frontend/src/interfaces/database/knowledge.ts
guangfei.zhao 486815d83e feat(knowledge-config): enhance knowledge configuration form with accordion sections
- Add accordion sections for general, page rank, RAPTOR, and GraphRAG configurations
- Implement detailed form controls for each configuration section
- Update parser config interfaces to support new configuration options
2025-10-14 19:15:32 +08:00

450 lines
11 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import type { RunningStatus } from '@/constants/knowledge';
/**
{
"avatar": "data:image/png;base64,iVBORw0K
"chunk_num": 1180,
"create_time": 1759986452748,
"description": " 213213",
"doc_num": 16,
"embd_id": "",
"id": "dcc2871aa4cd11f08d4116ac85b1de0a",
"language": "English",
"name": "k1123",
"pagerank": 0,
"parser_config": {
"auto_keywords": 0,
"auto_questions": 0,
"chunk_token_num": 512,
"delimiter": "\n",
"graphrag": {
"entity_types": [
"organization",
"person",
"geo",
"event",
"category"
],
"method": "light",
"use_graphrag": true
},
"html4excel": false,
"layout_recognize": "Plain Text",
"raptor": {
"max_cluster": 64,
"max_token": 256,
"prompt": "\u8bf7\u603b\u7ed3\u4ee5\u4e0b\u6bb5\u843d\u3002 \u5c0f\u5fc3\u6570\u5b57\uff0c\u4e0d\u8981\u7f16\u9020\u3002 \u6bb5\u843d\u5982\u4e0b\uff1a\n {cluster_content}\n\u4ee5\u4e0a\u5c31\u662f\u4f60\u9700\u8981\u603b\u7ed3\u7684\u5185\u5bb9\u3002",
"random_seed": 0,
"threshold": 0.1,
"use_raptor": false
},
"topn_tags": 3
},
"parser_id": "naive",
"permission": "team",
"size": 56819092,
"token_num": 293067,
"update_time": 1760436169574
}
*/
/**
* 知识库接口定义
* 包含知识库的基本信息、配置和状态
*/
export interface IKnowledge {
/** 知识库头像,可选字段 */
avatar?: any;
/** 知识库中的文档块数量 */
chunk_num: number;
/** 创建日期(字符串格式) */
create_date: string;
/** 创建时间戳 */
create_time: number;
/** 创建者ID */
created_by: string;
/** 知识库描述 */
description: string;
/** 知识库中的文档数量 */
doc_num: number;
/** 知识库语言 */
language: string;
/** 知识库唯一标识符 */
id: string;
/** 知识库名称 */
name: string;
/** 解析器配置 */
parser_config: IParserConfig;
/** 解析器ID */
parser_id: string;
/** 管道ID */
pipeline_id: string;
/** 管道名称 */
pipeline_name: string;
/** 管道头像 */
pipeline_avatar: string;
/** 权限设置 */
permission: string;
/** 相似度阈值 */
similarity_threshold: number;
/** 知识库状态 */
status: string;
/** 租户ID */
tenant_id: string;
/** 令牌数量 */
token_num: number;
/** 更新日期(字符串格式) */
update_date: string;
/** 更新时间戳 */
update_time: number;
/** 向量相似度权重 */
vector_similarity_weight: number;
/** 嵌入模型ID */
embd_id: string;
/** 昵称 */
nickname: string;
/** 操作权限级别 */
operator_permission: number;
/** 知识库大小(字节) */
size: number;
/** Raptor任务完成时间可选 */
raptor_task_finish_at?: string;
/** Raptor任务ID可选 */
raptor_task_id?: string;
/** 思维导图任务完成时间,可选 */
mindmap_task_finish_at?: string;
/** 思维导图任务ID可选 */
mindmap_task_id?: string;
}
/**
* 知识库查询结果接口
* 包含知识库列表和总数
*/
export interface IKnowledgeResult {
/** 知识库列表 */
kbs: IKnowledge[];
/** 知识库总数 */
total: number;
}
/**
* Raptor配置接口
* 用于配置是否启用Raptor功能
{
"max_cluster": 64,
"max_token": 256,
"prompt": "\u8bf7\u603b\u7ed3\u4ee5\u4e0b\u6bb5\u843d\u3002
\u5c0f\u5fc3\u6570\u5b57\uff0c\u4e0d\u8981\u7f16\u9020\u3002 \u6bb5\u843d\u5982\u4e0b\uff1a\n
{cluster_content}\n\u4ee5\u4e0a\u5c31\u662f\u4f60\u9700\u8981\u603b\u7ed3\u7684\u5185\u5bb9\u3002",
"random_seed": 0,
"threshold": 0.1,
"use_raptor": false
}
*/
export interface IRaptor {
/** 是否使用Raptor */
use_raptor: boolean;
/** 最大集群数,可选 */
max_cluster?: number;
/** 最大令牌数,可选 */
max_token?: number;
/** 提示模板,可选 */
prompt?: string;
/** 随机种子,可选 */
random_seed?: number;
/** 阈值,可选 */
threshold?: number;
}
/**
* GraphRAG配置接口
* 用于配置是否启用GraphRAG功能
{
"entity_types": [
"organization",
"person",
"geo",
"event",
"category"
],
"method": "light",
"use_graphrag": true
}
*/
export interface IGraphrag {
use_graphrag: boolean;
/** 实体类型列表,可选 */
entity_types?: string[];
/** 方法,可选 */
method?: string;
}
/**
* 解析器配置接口
* 定义文档解析的各种参数和选项
*/
export interface IParserConfig {
/** 起始页码,可选 */
from_page?: number;
/** 结束页码,可选 */
to_page?: number;
/** 自动关键词数量,可选 */
auto_keywords?: number;
/** 自动问题数量,可选 */
auto_questions?: number;
/** 每个文档块的令牌数量,可选 */
chunk_token_num?: number;
/** 分隔符,可选 */
delimiter?: string;
/** 是否将HTML转换为Excel格式可选 */
html4excel?: boolean;
/** 是否启用布局识别,可选 */
layout_recognize?: boolean;
/** Raptor配置可选 */
raptor?: IRaptor;
/** 标签知识库ID列表可选 */
tag_kb_ids?: string[];
/** 顶部标签数量,可选 */
topn_tags?: number;
/** GraphRAG配置可选 */
graphrag?: IGraphrag;
}
/**
* 知识库文件解析器配置接口
* 定义文件解析的具体参数
*/
export interface IKnowledgeFileParserConfig {
/** 每个文档块的令牌数量 */
chunk_token_num: number;
/** 是否启用布局识别 */
layout_recognize: boolean;
/** 页面范围数组 */
pages: number[][];
/** 任务页面大小 */
task_page_size: number;
}
/**
* 知识库文件接口
* 定义知识库中单个文件的信息和状态
*/
export interface IKnowledgeFile {
/** 文件中的文档块数量 */
chunk_num: number;
/** 创建日期(字符串格式) */
create_date: string;
/** 创建时间戳 */
create_time: number;
/** 创建者ID */
created_by: string;
/** 文件唯一标识符 */
id: string;
/** 所属知识库ID */
kb_id: string;
/** 文件存储位置 */
location: string;
/** 文件名称 */
name: string;
/** 解析器ID */
parser_id: string;
/** 处理开始时间,可选 */
process_begin_at?: any;
/** 处理持续时间 */
process_duration: number;
/** 解析进度百分比 */
progress: number;
/** 解析进度消息 */
progress_msg: string;
/** 解析运行状态 */
run: RunningStatus;
/** 文件大小(字节) */
size: number;
/** 文件来源类型 */
source_type: string;
/** 文件状态1 启用/ 0 禁用) */
status: string;
/** 文件缩略图base64编码可选 */
thumbnail?: any;
/** 文件中的令牌数量 */
token_num: number;
/** 文件类型 */
type: string;
/** 更新日期(字符串格式) */
update_date: string;
/** 更新时间戳 */
update_time: number;
/** 解析器配置 */
parser_config: IKnowledgeFileParserConfig;
}
/**
* 租户信息接口
* 定义租户的各种服务配置
*/
export interface ITenantInfo {
/** 自动语音识别服务ID */
asr_id: string;
/** 嵌入模型服务ID */
embd_id: string;
/** 图像转文本服务ID */
img2txt_id: string;
/** 大语言模型服务ID */
llm_id: string;
/** 租户名称 */
name: string;
/** 解析器ID列表 */
parser_ids: string;
/** 租户角色 */
role: string;
/** 租户ID */
tenant_id: string;
/** 聊天服务ID */
chat_id: string;
/** 语音转文本服务ID */
speech2text_id: string;
/** 文本转语音服务ID */
tts_id: string;
}
/**
* 文档块接口
* 定义知识库中单个文档块的信息
*/
export interface IChunk {
/** 是否启用0未启用1启用 */
available_int: number;
/** 文档块唯一标识符 */
chunk_id: string;
/** 带权重的内容 */
content_with_weight: string;
/** 所属文档ID */
doc_id: string;
/** 所属文档名称 */
doc_name: string;
/** 关联图像ID */
image_id: string;
/** 重要关键词列表,可选 */
important_kwd?: string[];
/** 问题关键词列表,可选 */
question_kwd?: string[];
/** 标签关键词列表,可选 */
tag_kwd?: string[];
/** 位置信息数组 */
positions: number[][];
/** 标签特征映射,可选 */
tag_feas?: Record<string, number>;
}
/**
* 测试文档块接口
* 用于知识库测试和检索的文档块信息
*/
export interface ITestingChunk {
/** 文档块唯一标识符 */
chunk_id: string;
/** 内容的LTKS表示 */
content_ltks: string;
/** 带权重的内容 */
content_with_weight: string;
/** 所属文档ID */
doc_id: string;
/** 所属文档名称 */
doc_name: string;
/** 图像ID旧字段 */
img_id: string;
/** 图像ID */
image_id: string;
/** 重要关键词列表 */
important_kwd: any[];
/** 所属知识库ID */
kb_id: string;
/** 相似度分数 */
similarity: number;
/** 词汇相似度分数 */
term_similarity: number;
/** 向量表示 */
vector: number[];
/** 向量相似度分数 */
vector_similarity: number;
/** 高亮显示的内容 */
highlight: string;
/** 位置信息数组 */
positions: number[][];
/** 文档名称关键词 */
docnm_kwd: string;
/** 文档类型关键词 */
doc_type_kwd: string;
}
/**
* 测试文档接口
* 用于知识库测试的文档统计信息
*/
export interface ITestingDocument {
/** 文档中的块数量 */
count: number;
/** 文档ID */
doc_id: string;
/** 文档名称 */
doc_name: string;
}
/**
* 测试结果接口
* 知识库测试的完整结果
*/
export interface ITestingResult {
/** 匹配的文档块列表 */
chunks: ITestingChunk[];
/** 匹配的文档列表 */
documents: ITestingDocument[];
/** 总匹配数量 */
total: number;
/** 标签统计,可选 */
labels?: Record<string, number>;
}
/**
* 下一代测试结果接口
* 改进版本的知识库测试结果
*/
export interface INextTestingResult {
/** 匹配的文档块列表 */
chunks: ITestingChunk[];
/** 文档聚合统计 */
doc_aggs: ITestingDocument[];
/** 总匹配数量 */
total: number;
/** 标签统计,可选 */
labels?: Record<string, number>;
/** 是否已运行,可选 */
isRuned?: boolean;
}
/**
* 重命名标签类型
* 用于标签重命名操作
*/
export type IRenameTag = {
/** 原标签名 */
fromTag: string;
/** 新标签名 */
toTag: string;
};
/**
* 知识图谱接口
* 定义知识库的图谱结构
*/
export interface IKnowledgeGraph {
/** 图谱数据结构 */
graph: Record<string, any>;
/** 思维导图数据(已注释) */
// mind_map: TreeData;
}