Initial commit: GovAI 政务AI平台
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
-- 知识库分片与向量检索支持
|
||||
-- 需要 pgvector 扩展: CREATE EXTENSION IF NOT EXISTS vector;
|
||||
|
||||
CREATE EXTENSION IF NOT EXISTS vector;
|
||||
|
||||
-- 知识文档分片表(每篇文档切分为多个 chunk,每个 chunk 存储 embedding 向量)
|
||||
CREATE TABLE IF NOT EXISTS knowledge_chunks (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
kb_id UUID NOT NULL REFERENCES knowledge_bases(id) ON DELETE CASCADE,
|
||||
doc_id UUID NOT NULL REFERENCES knowledge_documents(id) ON DELETE CASCADE,
|
||||
chunk_index INTEGER NOT NULL DEFAULT 0,
|
||||
content TEXT NOT NULL,
|
||||
char_count INTEGER NOT NULL DEFAULT 0,
|
||||
embedding vector(1024), -- 向量维度 1024(适配 text-embedding-v3)
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- 索引
|
||||
CREATE INDEX IF NOT EXISTS idx_knowledge_chunks_kb_id ON knowledge_chunks(kb_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_knowledge_chunks_doc_id ON knowledge_chunks(doc_id);
|
||||
|
||||
-- HNSW 向量索引(余弦距离)
|
||||
CREATE INDEX IF NOT EXISTS idx_knowledge_chunks_embedding ON knowledge_chunks
|
||||
USING hnsw (embedding vector_cosine_ops)
|
||||
WITH (m = 16, ef_construction = 64);
|
||||
|
||||
-- 在 knowledge_documents 表添加 chunk_count 字段
|
||||
ALTER TABLE knowledge_documents ADD COLUMN IF NOT EXISTS chunk_count INTEGER DEFAULT 0;
|
||||
Reference in New Issue
Block a user