feat(config): 添加Spring AI配置与完善数据库设计
- 新增SpringAiConfig类,配置ChatClient和PgVectorStore向量存储 - 配置PgVectorStore向量维度为1024,使用余弦距离,禁用自动初始化 - 创建基于pgvector扩展的向量存储表vector_store,支持丰富文档元数据和分块信息 - 设计部门、用户、角色及权限管理相关表,支持多维度角色授权管理 - 完善项目管理核心表,包含项目、成员、里程碑和任务详细设计 - 建立工单、工单流转记录表及风险管理表,实现项目工作的风险分派和追踪 - 添加日报数据录入表,支持项目日报的结构化存储与索引优化 - 所有表均设置了合理索引,优化查询性能,添加详细注释方便后续维护 - 设置数据库时区为Asia/Shanghai,统一时间管理标准
This commit is contained in:
@@ -19,7 +19,7 @@ CREATE TABLE vector_store (
|
||||
id VARCHAR(255) PRIMARY KEY,
|
||||
content TEXT,
|
||||
metadata JSONB,
|
||||
embedding vector(1536),
|
||||
embedding vector(1024),
|
||||
|
||||
-- 关联关系
|
||||
project_id BIGINT,
|
||||
@@ -97,7 +97,7 @@ COMMENT ON TABLE vector_store IS '向量存储表 - 用于RAG文档检索和知
|
||||
COMMENT ON COLUMN vector_store.id IS '文档ID(字符串类型,兼容PgVectorStore)';
|
||||
COMMENT ON COLUMN vector_store.content IS '文档内容文本';
|
||||
COMMENT ON COLUMN vector_store.metadata IS '文档元数据(JSONB格式,兼容PgVectorStore)';
|
||||
COMMENT ON COLUMN vector_store.embedding IS '向量嵌入(1536维)';
|
||||
COMMENT ON COLUMN vector_store.embedding IS '向量嵌入(1024维,阿里云text-embedding-v4)';
|
||||
COMMENT ON COLUMN vector_store.project_id IS '关联项目ID';
|
||||
COMMENT ON COLUMN vector_store.timeline_node_id IS '关联时间节点ID';
|
||||
COMMENT ON COLUMN vector_store.kb_id IS '关联知识库ID';
|
||||
@@ -1102,7 +1102,7 @@ CREATE TABLE ai_chat_history (
|
||||
-- 消息内容
|
||||
role VARCHAR(20) NOT NULL,
|
||||
content TEXT NOT NULL,
|
||||
content_embedding vector(1536),
|
||||
content_embedding vector(1024),
|
||||
|
||||
-- 引用的知识库文档
|
||||
referenced_doc_ids BIGINT[],
|
||||
@@ -1170,7 +1170,7 @@ CREATE TABLE ai_analysis_result (
|
||||
-- 输入输出
|
||||
input_data JSONB,
|
||||
result_data JSONB,
|
||||
result_embedding vector(1536),
|
||||
result_embedding vector(1024),
|
||||
|
||||
-- 模型信息
|
||||
confidence DECIMAL(5,2),
|
||||
@@ -1333,7 +1333,7 @@ INSERT INTO sys_role (role_code, role_name, role_type, description, data_scope,
|
||||
-- 初始化系统配置
|
||||
INSERT INTO sys_config (config_key, config_value, config_type, description) VALUES
|
||||
('ai.model.default', 'gpt-4o', 'ai', '默认AI模型'),
|
||||
('ai.embedding.model', 'text-embedding-3-small', 'ai', '向量嵌入模型'),
|
||||
('ai.embedding.dimension', '1536', 'ai', '向量维度'),
|
||||
('ai.embedding.model', 'text-embedding-v4', 'ai', '向量嵌入模型'),
|
||||
('ai.embedding.dimension', '1024', 'ai', '向量维度'),
|
||||
('ai.rag.top_k', '5', 'ai', 'RAG检索返回数量'),
|
||||
('ai.rag.similarity_threshold', '0.7', 'ai', 'RAG相似度阈值');
|
||||
|
||||
@@ -39,7 +39,7 @@ public class SpringAiConfig {
|
||||
@Primary
|
||||
public VectorStore vectorStore(JdbcTemplate jdbcTemplate, EmbeddingModel embeddingModel) {
|
||||
return PgVectorStore.builder(jdbcTemplate, embeddingModel)
|
||||
.dimensions(1536) // 向量维度,与配置一致
|
||||
.dimensions(1024) // 向量维度,阿里云text-embedding-v4生成1024维向量
|
||||
.distanceType(PgVectorStore.PgDistanceType.COSINE_DISTANCE)
|
||||
.initializeSchema(false) // 禁用自动初始化,使用SQL文件中已创建的表
|
||||
.build();
|
||||
|
||||
Reference in New Issue
Block a user