web修改

This commit is contained in:
2025-12-04 17:23:04 +08:00
parent b3200f8858
commit 9a3547b70b
5 changed files with 18 additions and 17 deletions

View File

@@ -54,9 +54,8 @@ CREATE TABLE knowledge.tb_knowledge_document (
file_path VARCHAR(500), -- 文件路径
file_size BIGINT, -- 文件大小(字节)
mime_type VARCHAR(100), -- MIME类型
version INTEGER DEFAULT 1, -- 版本号(自动递增
root_doc_id VARCHAR(50), -- 根文档ID版本组标识
is_current BOOLEAN DEFAULT true, -- 是否当前使用的版本
version INTEGER DEFAULT 1, -- 文档版本号(仅做记录
root_doc_id VARCHAR(50), -- 根文档ID版本组标识,保留用于整体版本管理
tags TEXT[], -- 文档标签数组
keywords TEXT[], -- 关键词数组AI提取
embedding_status VARCHAR(20) DEFAULT 'pending', -- 向量化状态pending-待处理/processing-处理中/completed-完成/failed-失败
@@ -75,7 +74,6 @@ CREATE TABLE knowledge.tb_knowledge_document (
deleted BOOLEAN NOT NULL DEFAULT false, -- 是否删除
PRIMARY KEY (doc_id),
UNIQUE (optsn),
FOREIGN KEY (knowledge_id) REFERENCES knowledge.tb_knowledge_base(knowledge_id)
);
CREATE INDEX idx_doc_kb ON knowledge.tb_knowledge_document(knowledge_id) WHERE deleted = false;
@@ -83,13 +81,12 @@ CREATE INDEX idx_doc_service ON knowledge.tb_knowledge_document(service_type) WH
CREATE INDEX idx_doc_category ON knowledge.tb_knowledge_document(category) WHERE deleted = false;
CREATE INDEX idx_doc_embedding_status ON knowledge.tb_knowledge_document(embedding_status) WHERE deleted = false;
CREATE INDEX idx_doc_tags ON knowledge.tb_knowledge_document USING GIN(tags) WHERE deleted = false;
CREATE INDEX idx_doc_root_current ON knowledge.tb_knowledge_document(root_doc_id, is_current) WHERE deleted = false;
CREATE INDEX idx_doc_root ON knowledge.tb_knowledge_document(root_doc_id) WHERE deleted = false;
COMMENT ON TABLE knowledge.tb_knowledge_document IS '知识文档表';
COMMENT ON TABLE knowledge.tb_knowledge_document IS '知识文档表文档级元数据版本控制在chunk级别';
COMMENT ON COLUMN knowledge.tb_knowledge_document.service_type IS '服务类型(从知识库继承,用于服务间隔离)';
COMMENT ON COLUMN knowledge.tb_knowledge_document.version IS '版本号(整数,每次创建新版本自动+1';
COMMENT ON COLUMN knowledge.tb_knowledge_document.root_doc_id IS '根文档ID同一文档的所有版本共享此ID首次上传时等于doc_id';
COMMENT ON COLUMN knowledge.tb_knowledge_document.is_current IS '是否当前使用的版本每个root_doc_id只有一个is_current=true';
COMMENT ON COLUMN knowledge.tb_knowledge_document.version IS '文档版本号(仅做记录实际版本控制在chunk级别';
COMMENT ON COLUMN knowledge.tb_knowledge_document.root_doc_id IS '根文档ID用于文档整体版本管理,可选';
COMMENT ON COLUMN knowledge.tb_knowledge_document.embedding_status IS '向量化状态pending/processing/completed/failed';
-- 知识文档片段表用于RAG检索
@@ -104,7 +101,9 @@ CREATE TABLE knowledge.tb_knowledge_chunk (
content_length INTEGER, -- 内容长度
embedding vector(1536), -- 向量嵌入假设使用OpenAI 1536维
chunk_type VARCHAR(20) DEFAULT 'text', -- 片段类型text-文本/table-表格/image-图片
version INTEGER DEFAULT 1, -- 分段版本号(用于乐观锁,每次编辑+1
version INTEGER DEFAULT 1, -- chunk版本号每次修改自动+1
root_chunk_id VARCHAR(50), -- 根chunk ID同一chunk的不同版本共享此ID
is_current BOOLEAN DEFAULT true, -- 是否当前使用的版本
position_info JSONB, -- 位置信息(页码、坐标等)
metadata JSONB, -- 片段元数据
dept_path VARCHAR(255) DEFAULT NULL, -- 部门全路径
@@ -114,18 +113,20 @@ CREATE TABLE knowledge.tb_knowledge_chunk (
deleted BOOLEAN NOT NULL DEFAULT false, -- 是否删除
PRIMARY KEY (chunk_id),
UNIQUE (optsn),
FOREIGN KEY (doc_id) REFERENCES knowledge.tb_knowledge_document(doc_id),
FOREIGN KEY (knowledge_id) REFERENCES knowledge.tb_knowledge_base(knowledge_id)
);
CREATE INDEX idx_chunk_doc ON knowledge.tb_knowledge_chunk(doc_id) WHERE deleted = false;
CREATE INDEX idx_chunk_kb ON knowledge.tb_knowledge_chunk(knowledge_id) WHERE deleted = false;
-- 向量检索索引需要安装pgvector扩展
-- CREATE INDEX idx_chunk_embedding ON knowledge.tb_knowledge_chunk USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100);
CREATE INDEX idx_chunk_root_current ON knowledge.tb_knowledge_chunk(root_chunk_id, is_current) WHERE deleted = false;
CREATE INDEX idx_chunk_current ON knowledge.tb_knowledge_chunk(is_current) WHERE deleted = false AND is_current = true;
-- 向量检索索引需要安装pgvector扩展建议只索引当前版本
-- CREATE INDEX idx_chunk_embedding ON knowledge.tb_knowledge_chunk USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100) WHERE deleted = false AND is_current = true;
COMMENT ON TABLE knowledge.tb_knowledge_chunk IS '知识文档片段表RAG检索';
COMMENT ON COLUMN knowledge.tb_knowledge_chunk.version IS '分段版本号(用于乐观锁,防止并发编辑冲突';
COMMENT ON COLUMN knowledge.tb_knowledge_chunk.embedding IS '向量嵌入需要pgvector扩展';
COMMENT ON TABLE knowledge.tb_knowledge_chunk IS '知识文档片段表RAG检索基本单位支持chunk级版本控制';
COMMENT ON COLUMN knowledge.tb_knowledge_chunk.version IS 'chunk版本号整数每次修改自动+1';
COMMENT ON COLUMN knowledge.tb_knowledge_chunk.root_chunk_id IS '根chunk ID同一chunk的所有版本共享此ID首次创建时等于chunk_id';
COMMENT ON COLUMN knowledge.tb_knowledge_chunk.is_current IS '是否当前使用的版本每个root_chunk_id只有一个is_current=trueRAG检索时只使用当前版本';
COMMENT ON COLUMN knowledge.tb_knowledge_chunk.embedding IS '向量嵌入需要pgvector扩展建议只为is_current=true的chunk生成';
-- 知识访问日志表
DROP TABLE IF EXISTS knowledge.tb_knowledge_access_log CASCADE;