Files
urbanLifeline/urbanLifelineServ/.bin/database/postgres/sql/createTableAgent.sql
2025-12-02 14:59:34 +08:00

307 lines
20 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- -- =============================
-- -- 智能体管理和平台基础设施模块
-- -- 支持智能体广场、API集成管理、智能体运维监控
-- -- =============================
-- CREATE SCHEMA IF NOT EXISTS agent;
-- -- 智能体定义表
-- DROP TABLE IF EXISTS agent.tb_agent CASCADE;
-- CREATE TABLE agent.tb_agent (
-- optsn VARCHAR(50) NOT NULL, -- 流水号
-- agent_id VARCHAR(50) NOT NULL, -- 智能体ID
-- agent_code VARCHAR(100) NOT NULL, -- 智能体编码(唯一标识)
-- agent_name VARCHAR(255) NOT NULL, -- 智能体名称
-- agent_type VARCHAR(50) NOT NULL, -- 智能体类型bidding-招投标/customer_service-客服/knowledge_assistant-知识助手/custom-自定义
-- display_name VARCHAR(255) NOT NULL, -- 展示名称
-- description TEXT, -- 智能体描述
-- icon VARCHAR(500), -- 图标URL
-- banner VARCHAR(500), -- Banner图URL
-- version VARCHAR(20) DEFAULT '1.0.0', -- 版本号
-- model_provider VARCHAR(50), -- 模型提供商openai/anthropic/baidu/aliyun/custom
-- model_name VARCHAR(100), -- 模型名称
-- model_config JSONB, -- 模型配置温度、最大tokens等
-- prompt_template TEXT, -- 提示词模板
-- system_prompt TEXT, -- 系统提示词
-- capabilities TEXT[], -- 能力列表
-- access_level VARCHAR(20) DEFAULT 'private', -- 访问级别public-公开/private-私有/internal-内部
-- is_published BOOLEAN DEFAULT false, -- 是否发布到智能体广场
-- usage_count INTEGER DEFAULT 0, -- 使用次数
-- rating DECIMAL(3,2) DEFAULT 0, -- 评分0-5
-- rating_count INTEGER DEFAULT 0, -- 评分人数
-- tags TEXT[], -- 标签数组
-- category VARCHAR(100), -- 分类
-- dept_path VARCHAR(255) DEFAULT NULL, -- 部门全路径
-- owner_user_id VARCHAR(50), -- 所有者用户ID
-- status VARCHAR(20) DEFAULT 'active', -- 状态active-激活/inactive-停用/under_maintenance-维护中
-- 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 (agent_code)
-- );
-- CREATE INDEX idx_agent_type ON agent.tb_agent(agent_type) WHERE deleted = false;
-- CREATE INDEX idx_agent_published ON agent.tb_agent(is_published) WHERE deleted = false AND is_published = true;
-- CREATE INDEX idx_agent_category ON agent.tb_agent(category) WHERE deleted = false;
-- COMMENT ON TABLE agent.tb_agent IS '智能体定义表';
-- COMMENT ON COLUMN agent.tb_agent.agent_type IS '智能体类型bidding/customer_service/knowledge_assistant/custom';
-- -- 智能体会话表
-- DROP TABLE IF EXISTS agent.tb_agent_session CASCADE;
-- CREATE TABLE agent.tb_agent_session (
-- optsn VARCHAR(50) NOT NULL, -- 流水号
-- session_id VARCHAR(50) NOT NULL, -- 会话ID
-- agent_id VARCHAR(50) NOT NULL, -- 智能体ID
-- user_id VARCHAR(50) NOT NULL, -- 用户ID
-- session_type VARCHAR(30) DEFAULT 'chat', -- 会话类型chat-对话/task-任务/workflow-工作流
-- session_name VARCHAR(255), -- 会话名称
-- context JSONB, -- 会话上下文
-- session_status VARCHAR(20) DEFAULT 'active', -- 会话状态active-活跃/paused-暂停/ended-结束
-- start_time TIMESTAMPTZ DEFAULT now(), -- 开始时间
-- end_time TIMESTAMPTZ, -- 结束时间
-- message_count INTEGER DEFAULT 0, -- 消息数量
-- token_usage INTEGER DEFAULT 0, -- Token使用量
-- cost DECIMAL(10,4) DEFAULT 0, -- 成本
-- dept_path VARCHAR(255) DEFAULT NULL, -- 部门全路径
-- creator VARCHAR(50) DEFAULT NULL, -- 创建者
-- create_time TIMESTAMPTZ NOT NULL DEFAULT now(), -- 创建时间
-- update_time TIMESTAMPTZ DEFAULT NULL, -- 更新时间
-- deleted BOOLEAN NOT NULL DEFAULT false, -- 是否删除
-- PRIMARY KEY (session_id),
-- UNIQUE (optsn),
-- FOREIGN KEY (agent_id) REFERENCES agent.tb_agent(agent_id)
-- );
-- CREATE INDEX idx_session_agent ON agent.tb_agent_session(agent_id) WHERE deleted = false;
-- CREATE INDEX idx_session_user ON agent.tb_agent_session(user_id) WHERE deleted = false;
-- COMMENT ON TABLE agent.tb_agent_session IS '智能体会话表';
-- -- 智能体消息表
-- DROP TABLE IF EXISTS agent.tb_agent_message CASCADE;
-- CREATE TABLE agent.tb_agent_message (
-- optsn VARCHAR(50) NOT NULL, -- 流水号
-- message_id VARCHAR(50) NOT NULL, -- 消息ID
-- session_id VARCHAR(50) NOT NULL, -- 会话ID
-- agent_id VARCHAR(50) NOT NULL, -- 智能体ID
-- role VARCHAR(20) NOT NULL, -- 角色user-用户/assistant-助手/system-系统/function-函数
-- content TEXT, -- 消息内容
-- content_type VARCHAR(30) DEFAULT 'text', -- 内容类型text-文本/image-图片/file-文件/structured-结构化数据
-- function_call JSONB, -- 函数调用JSON格式
-- function_response JSONB, -- 函数响应
-- token_count INTEGER, -- Token数量
-- model_name VARCHAR(100), -- 使用的模型
-- kb_references JSONB, -- 知识库引用JSON数组
-- metadata JSONB, -- 消息元数据
-- dept_path VARCHAR(255) DEFAULT NULL, -- 部门全路径
-- create_time TIMESTAMPTZ NOT NULL DEFAULT now(), -- 创建时间
-- deleted BOOLEAN NOT NULL DEFAULT false, -- 是否删除
-- PRIMARY KEY (message_id),
-- UNIQUE (optsn),
-- FOREIGN KEY (session_id) REFERENCES agent.tb_agent_session(session_id),
-- FOREIGN KEY (agent_id) REFERENCES agent.tb_agent(agent_id)
-- );
-- CREATE INDEX idx_msg_session ON agent.tb_agent_message(session_id, create_time) WHERE deleted = false;
-- CREATE INDEX idx_msg_agent ON agent.tb_agent_message(agent_id) WHERE deleted = false;
-- COMMENT ON TABLE agent.tb_agent_message IS '智能体消息表';
-- -- 智能体工具表
-- DROP TABLE IF EXISTS agent.tb_agent_tool CASCADE;
-- CREATE TABLE agent.tb_agent_tool (
-- optsn VARCHAR(50) NOT NULL, -- 流水号
-- tool_id VARCHAR(50) NOT NULL, -- 工具ID
-- tool_code VARCHAR(100) NOT NULL, -- 工具编码
-- tool_name VARCHAR(255) NOT NULL, -- 工具名称
-- tool_type VARCHAR(50) NOT NULL, -- 工具类型api-API调用/function-函数/plugin-插件/integration-集成
-- description TEXT, -- 工具描述
-- function_schema JSONB, -- 函数SchemaOpenAI function calling格式
-- api_endpoint VARCHAR(500), -- API端点
-- api_method VARCHAR(10), -- API方法GET/POST/PUT/DELETE
-- api_headers JSONB, -- API请求头
-- auth_type VARCHAR(30), -- 认证类型none/api_key/oauth2/bearer
-- auth_config JSONB, -- 认证配置(加密存储)
-- request_template TEXT, -- 请求模板
-- response_template TEXT, -- 响应模板
-- timeout_seconds INTEGER DEFAULT 30, -- 超时时间(秒)
-- retry_count INTEGER DEFAULT 3, -- 重试次数
-- is_enabled BOOLEAN DEFAULT true, -- 是否启用
-- usage_count INTEGER DEFAULT 0, -- 使用次数
-- dept_path VARCHAR(255) DEFAULT 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 (tool_id),
-- UNIQUE (optsn),
-- UNIQUE (tool_code)
-- );
-- CREATE INDEX idx_tool_type ON agent.tb_agent_tool(tool_type) WHERE deleted = false;
-- COMMENT ON TABLE agent.tb_agent_tool IS '智能体工具表';
-- -- API集成注册表
-- DROP TABLE IF EXISTS agent.tb_api_integration CASCADE;
-- CREATE TABLE agent.tb_api_integration (
-- optsn VARCHAR(50) NOT NULL, -- 流水号
-- integration_id VARCHAR(50) NOT NULL, -- 集成ID
-- integration_name VARCHAR(255) NOT NULL, -- 集成名称
-- integration_type VARCHAR(50) NOT NULL, -- 集成类型rest_api/soap/graphql/webhook/mq
-- provider VARCHAR(100), -- 提供商
-- base_url VARCHAR(500), -- 基础URL
-- version VARCHAR(20), -- API版本
-- auth_type VARCHAR(30) DEFAULT 'none', -- 认证类型
-- auth_config JSONB, -- 认证配置(加密存储)
-- endpoints JSONB, -- 端点列表JSON数组
-- rate_limit INTEGER, -- 速率限制(请求/秒)
-- timeout_seconds INTEGER DEFAULT 30, -- 超时时间
-- retry_config JSONB, -- 重试配置
-- health_check_url VARCHAR(500), -- 健康检查URL
-- health_status VARCHAR(20) DEFAULT 'unknown', -- 健康状态healthy-健康/unhealthy-不健康/unknown-未知
-- last_health_check TIMESTAMPTZ, -- 最后健康检查时间
-- documentation_url VARCHAR(500), -- 文档URL
-- is_enabled BOOLEAN DEFAULT true, -- 是否启用
-- dept_path VARCHAR(255) DEFAULT 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 (integration_id),
-- UNIQUE (optsn)
-- );
-- CREATE INDEX idx_integration_type ON agent.tb_api_integration(integration_type) WHERE deleted = false;
-- CREATE INDEX idx_integration_health ON agent.tb_api_integration(health_status) WHERE deleted = false;
-- COMMENT ON TABLE agent.tb_api_integration IS 'API集成注册表';
-- -- API调用日志表
-- DROP TABLE IF EXISTS agent.tb_api_call_log CASCADE;
-- CREATE TABLE agent.tb_api_call_log (
-- optsn VARCHAR(50) NOT NULL, -- 流水号
-- log_id VARCHAR(50) NOT NULL, -- 日志ID
-- integration_id VARCHAR(50), -- 集成ID
-- tool_id VARCHAR(50), -- 工具ID
-- agent_id VARCHAR(50), -- 智能体ID
-- session_id VARCHAR(50), -- 会话ID
-- user_id VARCHAR(50), -- 用户ID
-- endpoint VARCHAR(500) NOT NULL, -- 请求端点
-- method VARCHAR(10) NOT NULL, -- 请求方法
-- request_headers JSONB, -- 请求头
-- request_body TEXT, -- 请求体
-- response_status INTEGER, -- 响应状态码
-- response_headers JSONB, -- 响应头
-- response_body TEXT, -- 响应体
-- duration_ms INTEGER, -- 请求耗时(毫秒)
-- is_success BOOLEAN, -- 是否成功
-- error_message TEXT, -- 错误信息
-- retry_count INTEGER DEFAULT 0, -- 重试次数
-- ip_address VARCHAR(45), -- IP地址
-- dept_path VARCHAR(255) DEFAULT NULL, -- 部门全路径
-- create_time TIMESTAMPTZ NOT NULL DEFAULT now(), -- 创建时间
-- PRIMARY KEY (log_id),
-- UNIQUE (optsn)
-- );
-- CREATE INDEX idx_api_log_integration ON agent.tb_api_call_log(integration_id, create_time DESC);
-- CREATE INDEX idx_api_log_agent ON agent.tb_api_call_log(agent_id, create_time DESC);
-- CREATE INDEX idx_api_log_status ON agent.tb_api_call_log(is_success, create_time DESC);
-- COMMENT ON TABLE agent.tb_api_call_log IS 'API调用日志表';
-- -- 智能体监控指标表
-- DROP TABLE IF EXISTS agent.tb_agent_metrics CASCADE;
-- CREATE TABLE agent.tb_agent_metrics (
-- optsn VARCHAR(50) NOT NULL, -- 流水号
-- metric_id VARCHAR(50) NOT NULL, -- 指标ID
-- agent_id VARCHAR(50) NOT NULL, -- 智能体ID
-- metric_date DATE NOT NULL, -- 指标日期
-- metric_hour INTEGER, -- 指标小时0-23
-- total_sessions INTEGER DEFAULT 0, -- 总会话数
-- active_sessions INTEGER DEFAULT 0, -- 活跃会话数
-- total_messages INTEGER DEFAULT 0, -- 总消息数
-- total_tokens BIGINT DEFAULT 0, -- 总Token数
-- total_cost DECIMAL(10,4) DEFAULT 0, -- 总成本
-- avg_response_time INTEGER, -- 平均响应时间(毫秒)
-- success_rate DECIMAL(5,4), -- 成功率
-- error_count INTEGER DEFAULT 0, -- 错误次数
-- api_call_count INTEGER DEFAULT 0, -- API调用次数
-- avg_rating DECIMAL(3,2), -- 平均评分
-- rating_count INTEGER DEFAULT 0, -- 评分数量
-- dept_path VARCHAR(255) DEFAULT NULL, -- 部门全路径
-- create_time TIMESTAMPTZ NOT NULL DEFAULT now(), -- 创建时间
-- update_time TIMESTAMPTZ DEFAULT NULL, -- 更新时间
-- PRIMARY KEY (metric_id),
-- UNIQUE (optsn),
-- UNIQUE (agent_id, metric_date, metric_hour),
-- FOREIGN KEY (agent_id) REFERENCES agent.tb_agent(agent_id)
-- );
-- CREATE INDEX idx_metrics_agent_date ON agent.tb_agent_metrics(agent_id, metric_date DESC);
-- COMMENT ON TABLE agent.tb_agent_metrics IS '智能体监控指标表';
-- -- 智能体异常日志表
-- DROP TABLE IF EXISTS agent.tb_agent_error_log CASCADE;
-- CREATE TABLE agent.tb_agent_error_log (
-- optsn VARCHAR(50) NOT NULL, -- 流水号
-- log_id VARCHAR(50) NOT NULL, -- 日志ID
-- agent_id VARCHAR(50) NOT NULL, -- 智能体ID
-- session_id VARCHAR(50), -- 会话ID
-- error_type VARCHAR(50) NOT NULL, -- 错误类型model_error-模型错误/api_error-API错误/timeout-超时/rate_limit-限流/other-其他
-- error_code VARCHAR(50), -- 错误代码
-- error_message TEXT NOT NULL, -- 错误信息
-- stack_trace TEXT, -- 堆栈跟踪
-- request_context JSONB, -- 请求上下文
-- severity VARCHAR(20) DEFAULT 'error', -- 严重级别critical-致命/error-错误/warning-警告
-- is_resolved BOOLEAN DEFAULT false, -- 是否已解决
-- resolution_notes TEXT, -- 解决方案备注
-- dept_path VARCHAR(255) DEFAULT NULL, -- 部门全路径
-- create_time TIMESTAMPTZ NOT NULL DEFAULT now(), -- 创建时间
-- resolve_time TIMESTAMPTZ, -- 解决时间
-- PRIMARY KEY (log_id),
-- UNIQUE (optsn),
-- FOREIGN KEY (agent_id) REFERENCES agent.tb_agent(agent_id)
-- );
-- CREATE INDEX idx_error_agent ON agent.tb_agent_error_log(agent_id, create_time DESC);
-- CREATE INDEX idx_error_severity ON agent.tb_agent_error_log(severity) WHERE is_resolved = false;
-- COMMENT ON TABLE agent.tb_agent_error_log IS '智能体异常日志表';
-- -- 智能体评价表
-- DROP TABLE IF EXISTS agent.tb_agent_rating CASCADE;
-- CREATE TABLE agent.tb_agent_rating (
-- optsn VARCHAR(50) NOT NULL, -- 流水号
-- rating_id VARCHAR(50) NOT NULL, -- 评价ID
-- agent_id VARCHAR(50) NOT NULL, -- 智能体ID
-- session_id VARCHAR(50), -- 会话ID
-- user_id VARCHAR(50) NOT NULL, -- 用户ID
-- rating INTEGER NOT NULL, -- 评分1-5星
-- dimensions JSONB, -- 分维度评分(准确性、速度、友好度等)
-- feedback TEXT, -- 评价反馈
-- tags TEXT[], -- 标签
-- is_anonymous BOOLEAN DEFAULT false, -- 是否匿名
-- dept_path VARCHAR(255) DEFAULT NULL, -- 部门全路径
-- create_time TIMESTAMPTZ NOT NULL DEFAULT now(), -- 创建时间
-- deleted BOOLEAN NOT NULL DEFAULT false, -- 是否删除
-- PRIMARY KEY (rating_id),
-- UNIQUE (optsn),
-- FOREIGN KEY (agent_id) REFERENCES agent.tb_agent(agent_id)
-- );
-- CREATE INDEX idx_rating_agent ON agent.tb_agent_rating(agent_id) WHERE deleted = false;
-- COMMENT ON TABLE agent.tb_agent_rating IS '智能体评价表';