全项目扫描修复: Docker数据卷修复+安全requireAdmin+12页SEO+API白名单+脚本超时+常量提取+假数据删除
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
-- Bot Persona A/B Testing
|
||||
-- Adds: bot_persona_variants, bot_persona_experiments, bot_persona_assignments, bot_persona_metrics
|
||||
|
||||
CREATE TABLE `bot_persona_variants` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`bot_id` INT NOT NULL,
|
||||
`experiment_id` INT NULL,
|
||||
`variant_key` VARCHAR(20) NOT NULL,
|
||||
`label` VARCHAR(50) NOT NULL,
|
||||
`description` VARCHAR(200) NULL,
|
||||
`stance_keywords` JSON NULL,
|
||||
`top_topic_types` JSON NULL,
|
||||
`top_human_users` JSON NULL,
|
||||
`style_hints` JSON NULL,
|
||||
`weight` FLOAT NOT NULL DEFAULT 0.5,
|
||||
`is_control` BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
`is_active` BOOLEAN NOT NULL DEFAULT TRUE,
|
||||
`sample_count` INT NOT NULL DEFAULT 0,
|
||||
`reply_count` INT NOT NULL DEFAULT 0,
|
||||
`like_count` INT NOT NULL DEFAULT 0,
|
||||
`human_reply_count` INT NOT NULL DEFAULT 0,
|
||||
`engagement_score` FLOAT NOT NULL DEFAULT 0,
|
||||
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `bot_persona_variants_bot_id_variant_key_key`(`bot_id`, `variant_key`),
|
||||
INDEX `bot_persona_variants_bot_id_is_active_idx`(`bot_id`, `is_active`),
|
||||
INDEX `bot_persona_variants_experiment_id_idx`(`experiment_id`)
|
||||
);
|
||||
|
||||
CREATE TABLE `bot_persona_experiments` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`bot_id` INT NOT NULL,
|
||||
`name` VARCHAR(80) NOT NULL,
|
||||
`description` VARCHAR(200) NULL,
|
||||
`status` VARCHAR(20) NOT NULL DEFAULT 'active',
|
||||
`winner_variant_key` VARCHAR(20) NULL,
|
||||
`min_samples_per_arm` INT NOT NULL DEFAULT 20,
|
||||
`significance_level` FLOAT NOT NULL DEFAULT 0.1,
|
||||
`primary_metric` VARCHAR(30) NOT NULL DEFAULT 'engagement_score',
|
||||
`config` JSON NULL,
|
||||
`started_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`ended_at` DATETIME(3) NULL,
|
||||
`last_analyzed_at` DATETIME(3) NULL,
|
||||
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `bot_persona_experiments_bot_id_status_idx`(`bot_id`, `status`),
|
||||
INDEX `bot_persona_experiments_status_idx`(`status`)
|
||||
);
|
||||
|
||||
CREATE TABLE `bot_persona_assignments` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`bot_id` INT NOT NULL,
|
||||
`variant_id` INT NOT NULL,
|
||||
`ref_type` VARCHAR(20) NOT NULL,
|
||||
`ref_id` INT NOT NULL,
|
||||
`forum_slug` VARCHAR(30) NULL,
|
||||
`replies` INT NOT NULL DEFAULT 0,
|
||||
`likes` INT NOT NULL DEFAULT 0,
|
||||
`human_replies` INT NOT NULL DEFAULT 0,
|
||||
`impressions` INT NOT NULL DEFAULT 0,
|
||||
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `bot_persona_assignments_ref_type_ref_id_key`(`ref_type`, `ref_id`),
|
||||
INDEX `bot_persona_assignments_bot_id_variant_id_idx`(`bot_id`, `variant_id`),
|
||||
INDEX `bot_persona_assignments_variant_id_created_at_idx`(`variant_id`, `created_at`)
|
||||
);
|
||||
|
||||
CREATE TABLE `bot_persona_metrics` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`variant_id` INT NOT NULL,
|
||||
`date` DATE NOT NULL,
|
||||
`impressions` INT NOT NULL DEFAULT 0,
|
||||
`replies` INT NOT NULL DEFAULT 0,
|
||||
`likes` INT NOT NULL DEFAULT 0,
|
||||
`human_replies` INT NOT NULL DEFAULT 0,
|
||||
`content_count` INT NOT NULL DEFAULT 0,
|
||||
`avg_replies` FLOAT NOT NULL DEFAULT 0,
|
||||
`avg_likes` FLOAT NOT NULL DEFAULT 0,
|
||||
`computed_score` FLOAT NOT NULL DEFAULT 0,
|
||||
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `bot_persona_metrics_variant_id_date_key`(`variant_id`, `date`),
|
||||
INDEX `bot_persona_metrics_date_idx`(`date`)
|
||||
);
|
||||
Reference in New Issue
Block a user