video_discovery_tables.sql 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. -- find_agent 视频发现持久化表
  2. -- MySQL 5.7+ / 8.0+
  3. -- 与 supply_infra/db/models/video_discovery.py 保持一致。
  4. SET NAMES utf8mb4;
  5. CREATE TABLE IF NOT EXISTS `video_discovery_run` (
  6. `id` BIGINT NOT NULL AUTO_INCREMENT,
  7. `run_id` VARCHAR(64) NOT NULL COMMENT 'Agent 运行标识',
  8. `biz_dt` VARCHAR(32) NULL COMMENT '业务日 YYYYMMDD',
  9. `demand_grade_id` BIGINT NULL COMMENT '可选 demand_grade.id',
  10. `demand_word` VARCHAR(256) NOT NULL COMMENT '用户给定需求词',
  11. `seed_video_id` VARCHAR(64) NULL COMMENT '参考视频 id',
  12. `seed_video_title` VARCHAR(512) NULL COMMENT '参考视频标题',
  13. `relevant_points_json` TEXT NOT NULL COMMENT '与需求相关的视频点位 JSON',
  14. `intent_summary` TEXT NULL COMMENT 'Agent 对真实内容意图的解释',
  15. `status` VARCHAR(24) NOT NULL DEFAULT 'running'
  16. COMMENT 'running / finished / failed',
  17. `search_count` INT NOT NULL DEFAULT 0 COMMENT '已保存搜索页数',
  18. `primary_count` INT NOT NULL DEFAULT 0 COMMENT '主推荐数',
  19. `stop_reason` TEXT NULL COMMENT '停止搜索的证据或失败原因',
  20. `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  21. `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
  22. ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  23. PRIMARY KEY (`id`),
  24. UNIQUE KEY `uk_video_discovery_run_id` (`run_id`),
  25. UNIQUE KEY `uk_video_discovery_run_biz_grade` (`biz_dt`, `demand_grade_id`),
  26. KEY `idx_video_discovery_run_demand` (`demand_word`),
  27. KEY `idx_video_discovery_run_grade` (`demand_grade_id`),
  28. KEY `idx_video_discovery_run_biz_dt` (`biz_dt`),
  29. KEY `idx_video_discovery_run_status` (`status`)
  30. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  31. COMMENT='一次需求找视频运行';
  32. CREATE TABLE IF NOT EXISTS `video_discovery_search` (
  33. `id` BIGINT NOT NULL AUTO_INCREMENT,
  34. `run_id` VARCHAR(64) NOT NULL COMMENT '发现运行 run_id',
  35. `search_key` VARCHAR(64) NOT NULL COMMENT '搜索参数哈希,仅用于追踪,不作为幂等键',
  36. `keyword` VARCHAR(256) NOT NULL COMMENT 'Agent 自主确定的搜索词',
  37. `query_reason` TEXT NOT NULL COMMENT '为何形成该搜索词、希望验证什么',
  38. `source_type` VARCHAR(32) NOT NULL
  39. COMMENT 'demand / seed / point / tag / author / pagination / mixed',
  40. `source_value` TEXT NULL COMMENT '来源点位、标签、作者或父关键词',
  41. `parent_search_id` BIGINT NULL COMMENT '由哪次搜索扩展而来',
  42. `provider` VARCHAR(32) NOT NULL DEFAULT 'internal_keyword'
  43. COMMENT 'internal_keyword / tikhub / internal_blogger',
  44. `provider_state_json` TEXT NULL
  45. COMMENT '供应方分页状态,如 TikHub search_id/backtrace',
  46. `content_type` VARCHAR(16) NOT NULL DEFAULT '视频' COMMENT '搜索内容类型',
  47. `sort_type` VARCHAR(32) NOT NULL DEFAULT '综合排序' COMMENT '搜索排序',
  48. `publish_time` VARCHAR(32) NOT NULL DEFAULT '不限' COMMENT '发布时间筛选',
  49. `cursor` VARCHAR(128) NOT NULL DEFAULT '0' COMMENT '本页游标',
  50. `page_no` INT NOT NULL DEFAULT 1 COMMENT '该关键词的页码',
  51. `results_count` INT NOT NULL DEFAULT 0 COMMENT '本页结果数',
  52. `new_candidate_count` INT NOT NULL DEFAULT 0 COMMENT '本页新增候选数',
  53. `has_more` TINYINT NOT NULL DEFAULT 0 COMMENT '接口是否有下一页',
  54. `next_cursor` VARCHAR(128) NULL COMMENT '下一页游标',
  55. `result_ids_json` TEXT NULL COMMENT '本页 aweme_id 列表 JSON',
  56. `status` VARCHAR(16) NOT NULL DEFAULT 'success' COMMENT 'success / failed',
  57. `error_message` TEXT NULL COMMENT '搜索失败信息',
  58. `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  59. `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
  60. ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  61. PRIMARY KEY (`id`),
  62. KEY `idx_video_discovery_search_run` (`run_id`, `id`),
  63. KEY `idx_video_discovery_search_parent` (`run_id`, `parent_search_id`),
  64. KEY `idx_video_discovery_search_keyword` (`keyword`)
  65. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  66. COMMENT='关键词、标签、作者或翻页搜索轨迹';
  67. CREATE TABLE IF NOT EXISTS `video_discovery_candidate` (
  68. `id` BIGINT NOT NULL AUTO_INCREMENT,
  69. `run_id` VARCHAR(64) NOT NULL COMMENT '发现运行 run_id',
  70. `search_id` BIGINT NULL COMMENT '直接关联 video_discovery_search.id;历史数据允许为空',
  71. `aweme_id` VARCHAR(64) NOT NULL COMMENT '抖音视频 id',
  72. `title` VARCHAR(512) NULL COMMENT '视频标题',
  73. `content_link` VARCHAR(1024) NULL COMMENT '抖音页面链接',
  74. `author_name` VARCHAR(256) NULL COMMENT '作者名',
  75. `author_sec_uid` VARCHAR(256) NULL COMMENT '作者 sec_uid',
  76. `source_keywords_json` TEXT NULL COMMENT '命中过该视频的搜索词 JSON',
  77. `source_search_ids_json` TEXT NULL COMMENT '来源搜索轨迹 id JSON',
  78. `tags_json` TEXT NULL COMMENT '视频标签/话题 JSON',
  79. `play_count` BIGINT NULL COMMENT '播放数快照',
  80. `like_count` BIGINT NULL COMMENT '点赞数快照',
  81. `comment_count` BIGINT NULL COMMENT '评论数快照',
  82. `collect_count` BIGINT NULL COMMENT '收藏数快照',
  83. `share_count` BIGINT NULL COMMENT '分享数快照',
  84. `content_age_evidence_json` TEXT NULL COMMENT '视频点赞用户年龄证据 JSON',
  85. `account_age_evidence_json` TEXT NULL COMMENT '作者粉丝年龄证据 JSON',
  86. `age_normalization_json` TEXT NULL COMMENT '双侧年龄画像标准化结果 JSON',
  87. `relevance_score` DECIMAL(8,6) NULL COMMENT 'R,范围 0~1',
  88. `elder_score` DECIMAL(8,6) NULL COMMENT 'E,范围 0~1',
  89. `share_score` DECIMAL(8,6) NULL COMMENT 'S,范围 0~1',
  90. `value_score` DECIMAL(8,2) NULL COMMENT '联合价值 V,范围 0~1',
  91. `decision_reason` TEXT NULL COMMENT '最终分池依据',
  92. `decision_bucket` VARCHAR(24) NOT NULL DEFAULT 'pending_evaluation'
  93. COMMENT '最终为 primary / rejected;pending_evaluation 仅为过程状态',
  94. `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  95. `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
  96. ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  97. PRIMARY KEY (`id`),
  98. KEY `idx_video_discovery_candidate_search` (`search_id`, `id`),
  99. KEY `idx_video_discovery_candidate_bucket` (`run_id`, `decision_bucket`),
  100. KEY `idx_video_discovery_candidate_author` (`author_sec_uid`),
  101. CONSTRAINT `fk_video_discovery_candidate_search`
  102. FOREIGN KEY (`search_id`) REFERENCES `video_discovery_search` (`id`)
  103. ON DELETE RESTRICT
  104. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  105. COMMENT='本次运行发现的视频及评估快照';