Files
aitsc/scripts/ensure_evaluation_schema_mysql.sql
2026-04-06 19:02:21 +08:00

49 lines
2.8 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.
-- 评价 / 对比功能所需结构(在已有库上增量执行;若列或表已存在会报错,可忽略对应语句)
-- MySQL 5.7+ / 8.0
-- 1. prompt_history 扩展字段(模型 history_models.PromptHistory 依赖)
-- 分两条执行:避免 AFTER 依赖列名/顺序;若某列已存在会报 Duplicate column可忽略该条
ALTER TABLE prompt_history
ADD COLUMN comparison_group_id VARCHAR(64) NULL COMMENT '对比组ID';
ALTER TABLE prompt_history
ADD COLUMN is_comparison_enabled TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否参与对比';
ALTER TABLE prompt_history ADD INDEX idx_comparison_group (comparison_group_id);
-- 若上面因「列已存在」失败,说明已执行过,可继续执行下面建表。
-- 2. 评价表(与 evaluation_models.PromptEvaluation 一致)
CREATE TABLE IF NOT EXISTS prompt_evaluation (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
history_id INT NOT NULL COMMENT '历史记录ID',
user_id INT NOT NULL COMMENT '评价者用户ID',
clarity_rating TINYINT NULL COMMENT '清晰度评分',
specificity_rating TINYINT NULL COMMENT '具体性评分',
effectiveness_rating TINYINT NULL COMMENT '有效性评分',
professionalism_rating TINYINT NULL COMMENT '专业性评分',
completeness_rating TINYINT NULL COMMENT '完整性评分',
is_best_version TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否为最佳版本',
comparison_group_id VARCHAR(64) NULL COMMENT '对比组ID',
overall_rating TINYINT NULL COMMENT '综合评分',
comments TEXT NULL COMMENT '评价意见',
created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
INDEX idx_history_id (history_id),
INDEX idx_user_id (user_id),
INDEX idx_comparison_group (comparison_group_id),
CONSTRAINT fk_pe_history FOREIGN KEY (history_id) REFERENCES prompt_history(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='提示词评价表';
-- 3. 对比组表
CREATE TABLE IF NOT EXISTS comparison_group (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
group_id VARCHAR(64) NOT NULL COMMENT '对比组ID',
user_id INT NOT NULL COMMENT '创建者用户ID',
name VARCHAR(100) NULL COMMENT '对比组名称',
description TEXT NULL COMMENT '对比组描述',
is_public TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否公开',
created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE KEY uk_group_id (group_id),
INDEX idx_user_id (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='对比组表';