CREATE SCHEMA IF NOT EXISTS ai; -- AI智能体配置 DROP TABLE IF EXISTS ai.tb_agent CASCADE; CREATE TABLE ai.tb_agent( optsn VARCHAR(50) NOT NULL, -- 流水号 agent_id VARCHAR(50) NOT NULL, -- 智能体ID name VARCHAR(50) NOT NULL, -- 智能体名称 description VARCHAR(500) DEFAULT NULL, -- 智能体描述 link VARCHAR(500) DEFAULT NULL, -- 智能体url api_key VARCHAR(500) NOT NULL, -- dify智能体APIKEY introduce VARCHAR(500) NOT NULL, -- 引导词 prompt_cards JSONB DEFAULT '[]'::jsonb, -- 提示卡片数组 [{file_id:'', prompt:''}] category VARCHAR(50) NOT NULL, -- 分类 creator VARCHAR(50) DEFAULT NULL, -- 创建者 updater VARCHAR(50) DEFAULT NULL, -- 更新者 create_time TIMESTAMPTZ NOT NULL DEFAULT now(), -- 创建时间 update_time TIMESTAMPTZ DEFAULT NULL, -- 更新时间 delete_time TIMESTAMPTZ DEFAULT NULL, -- 删除时间 deleted BOOLEAN NOT NULL DEFAULT false, -- 是否删除 PRIMARY KEY (agent_id), UNIQUE (optsn), UNIQUE (api_key) ); -- AI智能体对话 DROP TABLE IF EXISTS ai.tb_chat CASCADE; CREATE TABLE ai.tb_chat( optsn VARCHAR(50) NOT NULL, -- 流水号 chat_id VARCHAR(50) NOT NULL, -- 对话ID agent_id VARCHAR(50) NOT NULL, -- 智能体ID user_id VARCHAR(50) NOT NULL, -- 用户ID title VARCHAR(500) NOT NULL, -- 对话标题 create_time TIMESTAMPTZ NOT NULL DEFAULT now(), -- 创建时间 update_time TIMESTAMPTZ DEFAULT NULL, -- 更新时间 delete_time TIMESTAMPTZ DEFAULT NULL, -- 删除时间 deleted BOOLEAN NOT NULL DEFAULT false, -- 是否删除 PRIMARY KEY (chat_id), UNIQUE (optsn) ); -- AI智能体对话消息 DROP TABLE IF EXISTS ai.tb_chat_message CASCADE; CREATE TABLE ai.tb_chat_message( optsn VARCHAR(50) NOT NULL, -- 流水号 message_id VARCHAR(50) NOT NULL, -- 消息ID chat_id VARCHAR(50) NOT NULL, -- 对话ID role VARCHAR(50) NOT NULL, -- 角色:user-用户/assistant-智能体/recipient-客服 content TEXT NOT NULL, -- 消息内容 files VARCHAR(50)[] DEFAULT NULL, -- 文件id数组 create_time TIMESTAMPTZ NOT NULL DEFAULT now(), -- 创建时间 update_time TIMESTAMPTZ DEFAULT NULL, -- 更新时间 delete_time TIMESTAMPTZ DEFAULT NULL, -- 删除时间 deleted BOOLEAN NOT NULL DEFAULT false, -- 是否删除 PRIMARY KEY (message_id), UNIQUE (optsn) ); -- 知识库配置 bidding和workcase2个服务使用 DROP TABLE IF EXISTS ai.tb_knowledge CASCADE; CREATE TABLE ai.tb_knowledge( -- 知识库dify相关配置 optsn VARCHAR(50) NOT NULL, -- 流水号 knowledge_id VARCHAR(50) NOT NULL, -- 知识库ID title VARCHAR(255) NOT NULL, -- 知识库标题 avatar VARCHAR(255) DEFAULT NULL, -- 知识库头像 description VARCHAR(500) DEFAULT NULL, -- 知识库描述 dify_dataset_id VARCHAR(100) DEFAULT NULL, -- Dify知识库ID(Dataset ID) dify_indexing_technique VARCHAR(50) DEFAULT 'high_quality', -- Dify索引方式(high_quality/economy) embedding_model VARCHAR(100) DEFAULT NULL, -- 向量模型名称 embedding_model_provider VARCHAR(100) DEFAULT NULL, -- 向量模型提供商 rerank_model VARCHAR(100) DEFAULT NULL, -- Rerank模型名称 rerank_model_provider VARCHAR(100) DEFAULT NULL, -- Rerank模型提供商 reranking_enable BOOLEAN DEFAULT false, -- 是否启用Rerank retrieval_top_k INTEGER DEFAULT 2, -- 检索Top K(返回前K个结果) retrieval_score_threshold DECIMAL(3,2) DEFAULT 0.00, -- 检索分数阈值(0.00-1.00) document_count INTEGER DEFAULT 0, -- 文档数量 total_chunks INTEGER DEFAULT 0, -- 总分段数 -- 下面是服务使用 service VARCHAR(50) DEFAULT NULL, -- 所属服务 workcase、bidding project_id VARCHAR(50) DEFAULT NULL, -- bidding所属项目ID category VARCHAR(50) DEFAULT NULL, -- 所属分类 workcase 内部知识库、外部知识库 creator VARCHAR(50) NOT NULL, -- 创建者(用户ID) dept_path VARCHAR(50) DEFAULT NULL, -- 创建者部门路径 updater VARCHAR(50) DEFAULT NULL, -- 更新者 create_time TIMESTAMPTZ NOT NULL DEFAULT now(), -- 创建时间 update_time TIMESTAMPTZ DEFAULT NULL, -- 更新时间 delete_time TIMESTAMPTZ DEFAULT NULL, -- 删除时间 deleted BOOLEAN NOT NULL DEFAULT false, -- 是否删除 PRIMARY KEY (optsn), UNIQUE (knowledge_id), UNIQUE (dify_dataset_id) ); -- 知识库配置表字段注释 COMMENT ON TABLE ai.tb_knowledge IS '知识库配置表'; COMMENT ON COLUMN ai.tb_knowledge.optsn IS '流水号'; COMMENT ON COLUMN ai.tb_knowledge.knowledge_id IS '知识库ID'; COMMENT ON COLUMN ai.tb_knowledge.title IS '知识库标题'; COMMENT ON COLUMN ai.tb_knowledge.avatar IS '知识库头像'; COMMENT ON COLUMN ai.tb_knowledge.description IS '知识库描述'; COMMENT ON COLUMN ai.tb_knowledge.dify_dataset_id IS 'Dify知识库ID(Dataset ID)'; COMMENT ON COLUMN ai.tb_knowledge.dify_indexing_technique IS 'Dify索引方式(high_quality/economy)'; COMMENT ON COLUMN ai.tb_knowledge.embedding_model IS '向量模型名称'; COMMENT ON COLUMN ai.tb_knowledge.embedding_model_provider IS '向量模型提供商'; COMMENT ON COLUMN ai.tb_knowledge.rerank_model IS 'Rerank模型名称'; COMMENT ON COLUMN ai.tb_knowledge.rerank_model_provider IS 'Rerank模型提供商'; COMMENT ON COLUMN ai.tb_knowledge.reranking_enable IS '是否启用Rerank'; COMMENT ON COLUMN ai.tb_knowledge.retrieval_top_k IS '检索Top K(返回前K个结果)'; COMMENT ON COLUMN ai.tb_knowledge.retrieval_score_threshold IS '检索分数阈值(0.00-1.00)'; COMMENT ON COLUMN ai.tb_knowledge.document_count IS '文档数量'; COMMENT ON COLUMN ai.tb_knowledge.total_chunks IS '总分段数'; COMMENT ON COLUMN ai.tb_knowledge.service IS '所属服务 workcase、bidding'; COMMENT ON COLUMN ai.tb_knowledge.project_id IS 'bidding所属项目ID'; COMMENT ON COLUMN ai.tb_knowledge.category IS '所属分类 workcase 内部知识库、外部知识库'; COMMENT ON COLUMN ai.tb_knowledge.creator IS '创建者(用户ID)'; COMMENT ON COLUMN ai.tb_knowledge.dept_path IS '创建者部门路径'; COMMENT ON COLUMN ai.tb_knowledge.updater IS '更新者'; COMMENT ON COLUMN ai.tb_knowledge.create_time IS '创建时间'; COMMENT ON COLUMN ai.tb_knowledge.update_time IS '更新时间'; COMMENT ON COLUMN ai.tb_knowledge.delete_time IS '删除时间'; COMMENT ON COLUMN ai.tb_knowledge.deleted IS '是否删除'; -- bidding知识库根据project等变化 -- workcase知识库固定8个 -- workcase外部知识库:4个知识库: -- 1. 设备操作指南 -- 2. 常见故障解决方案 -- 3. 三包外服务政策 -- 4. 配件咨询话术 -- workcase内部知识库:4个知识库: -- 1. 技术维修手册 -- 2. 产品参数明细 -- 3. 内部服务流程规范 -- 4. 客户服务话术模板 -- 知识库文件 文件上传dify知识库,对dify内的文件修改不生成新版本, 只有重新上传才生成新版本 DROP TABLE IF EXISTS ai.tb_knowledge_file CASCADE; CREATE TABLE ai.tb_knowledge_file( optsn VARCHAR(50) NOT NULL, -- 流水号 knowledge_id VARCHAR(50) NOT NULL, -- 知识库ID file_root_id VARCHAR(50) NOT NULL, -- 文件根ID file_id VARCHAR(50) NOT NULL, -- 文件ID dify_file_id VARCHAR(50) NOT NULL, -- dify文件ID version VARCHAR(50) NOT NULL, -- 文件版本 create_time TIMESTAMPTZ NOT NULL DEFAULT now(), -- 创建时间 update_time TIMESTAMPTZ DEFAULT NULL, -- 更新时间 delete_time TIMESTAMPTZ DEFAULT NULL, -- 删除时间 deleted BOOLEAN NOT NULL DEFAULT false, -- 是否删除 PRIMARY KEY (optsn), UNIQUE (knowledge_id, file_id) ); -- 知识库文件表字段注释 COMMENT ON TABLE ai.tb_knowledge_file IS '知识库文件表'; COMMENT ON COLUMN ai.tb_knowledge_file.optsn IS '流水号'; COMMENT ON COLUMN ai.tb_knowledge_file.knowledge_id IS '知识库ID'; COMMENT ON COLUMN ai.tb_knowledge_file.file_root_id IS '文件根ID'; COMMENT ON COLUMN ai.tb_knowledge_file.file_id IS '文件ID'; COMMENT ON COLUMN ai.tb_knowledge_file.dify_file_id IS 'dify文件ID'; COMMENT ON COLUMN ai.tb_knowledge_file.version IS '文件版本'; COMMENT ON COLUMN ai.tb_knowledge_file.create_time IS '创建时间'; COMMENT ON COLUMN ai.tb_knowledge_file.update_time IS '更新时间'; COMMENT ON COLUMN ai.tb_knowledge_file.delete_time IS '删除时间'; COMMENT ON COLUMN ai.tb_knowledge_file.deleted IS '是否删除';