feat(config): 添加Spring AI配置与完善数据库设计

- 新增SpringAiConfig类,配置ChatClient和PgVectorStore向量存储
- 配置PgVectorStore向量维度为1024,使用余弦距离,禁用自动初始化
- 创建基于pgvector扩展的向量存储表vector_store,支持丰富文档元数据和分块信息
- 设计部门、用户、角色及权限管理相关表,支持多维度角色授权管理
- 完善项目管理核心表,包含项目、成员、里程碑和任务详细设计
- 建立工单、工单流转记录表及风险管理表,实现项目工作的风险分派和追踪
- 添加日报数据录入表,支持项目日报的结构化存储与索引优化
- 所有表均设置了合理索引,优化查询性能,添加详细注释方便后续维护
- 设置数据库时区为Asia/Shanghai,统一时间管理标准
This commit is contained in:
2026-03-30 17:48:57 +08:00
parent 37da5da044
commit 4ca9c63302
2 changed files with 7 additions and 7 deletions

View File

@@ -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相似度阈值');

View File

@@ -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();