169 lines
9.9 KiB
SQL
169 lines
9.9 KiB
SQL
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
|
||
user_type BOOLEAN NOT NULL DEFAULT true, -- 用户类型 true-系统内部人员 false-系统外部人员
|
||
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数组
|
||
comment 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 (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 '是否删除';
|
||
|