# Content Find Agent v2 Data Interface 更新时间:2026-06-04 ## 0. 证据口径 本文只记录旧版代码、旧版接口审计、DB-first schema inventory、ContentFindAgent 数据工程 run 和 subagent 交叉验证过的数据接口。 | 状态 | 含义 | |---|---| | 已验证 | 已有 DB / API 只读验证或旧版实测结果 | | 源码定位 | 旧版代码能定位到接口或写入逻辑,但本次未实连 | | blocked | 因 token、只读条件或副作用限制未实连 | | pending / 待接入 | DB 字段存在,产品应接入,但旧版 ContentFindAgent 未作为主链路实现 | | source-only | 已有配置来源或源码来源,但本轮未作为主链路实连验证 | | missing | 变量、key、表或 API 未找到可用真实值 | | 缺口 | 没有真实表、真实接口或稳定字段,不能写成已接入 | 不把 `show` 静态样例、小红书搜索、共创作者、相似作者、候选池、淘汰原因表写成已验证接口。 ### 0.1 阅读方式 每个阶段都按“短索引 + 详情块”组织: - 短索引只看接口、用途和状态,方便快速扫读。 - 详情块再看输入字段、输出字段和边界,避免长表在窄屏下挤成一行。 - 缺口统一放在最后,避免和已验证接口混在一起。 ### 0.2 环境配置和只读验证摘要 本节吸收原环境缺口报告的确认结果,只记录变量名、能力和验证状态,不记录密码、token、AK/SK 或完整 DSN。 #### 已验证配置 - `.env` 结构:pass - 对象:根目录 `.env` - 注释:共 `139` 个变量,无重复 key;本地私有文件,不进入代码仓库。 - 旧版 env 覆盖:pass - 对象:旧仓 Python `os.getenv(...)` - 注释:旧代码中发现的 `52` 个 getenv 变量都已在 `.env` 中覆盖。 - 业务库:pass - 变量:`DB_*`, `CONTENT_SUPPLY_DB_*`, `CONTENTFIND_DB_*` - 注释:`demand_content`, `workflow_decode_task_result`, `demand_find_author`, `demand_find_content_result`, `demand_find_task`, `demand_task_oprate` 均只读通过。 - Pattern 库:pass - 变量:`OPEN_AIGC_PATTERN_DB_*`, `PATTERN_GLOBAL_DB_*`, `CONTENTFIND_PATTERN_DB_*` - 注释:`topic_pattern_element`, `topic_pattern_itemset`, `topic_pattern_category` 均只读通过。 - Crawapi 抖音接口:pass - 变量:`CONTENTFIND_API_CRAWAPI_BASE_URL`, `CONTENTFIND_DOUYIN_*`, `CONTENTFIND_HOT_TOPIC_PATH` - 注释:抖音关键词、作者作品、内容画像、账号画像、今日热榜均只读通过。 - AIGC plan detail:pass - 变量:`AIGC_TOKEN`, `CONTENTFIND_API_AIGC_TOKEN`, `CONTENTFIND_API_READONLY_TOKEN`, `CONTENTFIND_AIGC_READONLY_PRODUCE_PLAN_ID` - 注释:只查 produce plan detail,未创建或保存计划。 - OpenRouter:pass - 变量:`OPEN_ROUTER_API_KEY`, `OPENROUTER_API_KEY`, `OPENROUTER_BASE_URL` - 注释:两个 key 别名已同步;只读 key metadata probe HTTP 200;未调用 chat completion 或 embeddings。 - 上游 open_aigc MySQL:pass - 变量:`OPEN_AIGC_MYSQL_*` - 注释:本轮只读 `SELECT 1` 通过,并完成 5 张上游表 `LIMIT 1` 探测。 - 上游 open_aigc PG:pass - 变量:`OPEN_AIGC_PG_*`, `PGVECTOR_DSN`, `DATA_ENGINEERING_OPEN_AIGC_PG_DSN` - 注释:`DATA_ENGINEERING_OPEN_AIGC_PG_DSN` 和同步后的 `OPEN_AIGC_PG_*` 均只读 `SELECT 1` 通过;Pattern 相关表 `LIMIT 1` 通过。 - ODPS 表现数据:pass - 变量:`ODPS_ACCESS_ID`, `ODPS_ACCESS_KEY`, `ODPS_ENDPOINT`, `ODPS_PROJECT` - 注释:本轮 `SELECT 1` 通过,`video_dimension_detail_add_column`, `dwd_multi_demand_pool_di`, `feature_point_data` schema 可读。 #### 待补或仅有来源配置 - TikHub fallback:missing - 变量:`TIKHUB_API_KEY`, `TIKHUB_BASE_URL`, `TIKHUB_DOUYIN_SEARCH_PATH` - 注释:URL 和 path 已有,旧仓未找到真实 key;只能作为待补备用通道。 - OSS:missing - 变量:`ALIYUN_OSS_*`, `OSS_ACCESS_KEY_ID`, `OSS_ACCESS_KEY_SECRET` - 注释:变量名已定位,真实 AK/SK、bucket、region、prefix、public base URL 缺失。 - Feishu:source-only - 变量:`FEISHU_APP_ID`, `FEISHU_APP_SECRET` - 注释:旧版有来源,但不是 v2 主链路;本轮未调用。 - 前端联调 API:missing - 变量:`VITE_API_BASE_URL`, `VITE_CONTENTFIND_API_BASE_URL` - 注释:show 当前仍是静态沙盘,尚未接真实后端。 ## 1. 数据源 数据源阶段回答:从哪里拿原始素材、原始种子和可搜索线索。 ### 1.1 索引 | 编号 | 接口/表 | 用途 | 状态 | |---|---|---|---| | S1 | `content-deconstruction-supply.demand_content` | 需求输入 | 已验证 | | S2 | `open_aigc_pattern.topic_pattern_element` | Pattern / 特征词到历史 Case | 已验证 | | S3 | `content-deconstruction-supply.workflow_decode_task_result` | 直接 Case 原始素材和解构点 | 已验证 | | S4 | `topic_pattern_itemset -> workflow_decode_task_result` | Pattern Item Set 派生多个 Case | pending / 待接入 | | S5 | `open_aigc_pattern.topic_pattern_category` | Pattern 类目上下文 | 已验证 | | S6 | `content-deconstruction-supply.demand_find_author` | 历史沉淀账号 | 已验证 | | S7 | 今日热榜 `/crawler/jin_ri_re_bang/content_rank` | 热点入口 | 已验证 | | S8 | `open_aigc.post` | 上游历史内容素材 | 已验证 | | S9 | `open_aigc.post_decode_topic_point_element` | 上游选题点元素 | 已验证 | | S10 | `open_aigc.post_script_paragraph_field_element` | 上游脚本段落元素 | 已验证 | ### 1.2 详情 #### S1. 数据库:`content-deconstruction-supply`,表:`demand_content` - 当前输入字段:`id`, `name`, `suggestion`, `score`, `merge_leve2`, `dt`, `ext_data` - 新版必解析字段:`ext_data.evidence_pack` - 输出字段:需求词、需求解释、品类、分数、日期。 - 边界:这是需求源,不是 Case 素材源;旧版只取基础字段,新版不能丢掉证据包。 `ext_data.evidence_pack` 需要包含并向下游传递: | 字段 | 用途 | |---|---| | `source_kind` | 区分 Pattern、Case、聚类、历史搜索等来源 | | `pattern_source_system` | 区分 Pattern 来源系统或桥接口径 | | `case_id_type` | 说明 Case ID / post ID / channel content ID 的口径 | | `source_post_id` | 绑定原始素材 ID | | `pattern_execution_id` | 回查 Pattern 执行 | | `mining_config_id` | 回查 Pattern 挖掘配置 | | `itemset_ids` | 回查频繁项集 | | `itemset_items[]` | 回查 itemset 内的分类、元素和维度 | | `category_bindings` | 绑定分类树父节点 | | `element_bindings` | 绑定分类树元素节点 | | `matched_post_ids` | 记录 Pattern 支撑素材 | | `seed_terms` | 给 Query 使用的策略种子 | | `trace_id` | 串起上游和下游 trace | | `source_certainty` | 标记来源确定性 | | `validation_status` | 标记已验证、待接入或候选反查 | 这些字段要进入数据源、Query、判断、游走、资产清洗沉淀和策略学习。目标是从某个 `case_id` 或 `post_id` 能反查到 Pattern、itemset、分类节点或元素节点。 #### S2. 数据库:`open_aigc_pattern`,表:`topic_pattern_element` - 输入字段:`name`, `execution_id`, `element_type`, `category_path` - 输出字段:`post_id`, `point_type`, `point_text`, `element_type`, `name` - 边界:旧版实际按 `name` 精确查,不是严格 Pattern itemset 路径。 #### S3. 数据库:`content-deconstruction-supply`,表:`workflow_decode_task_result` - 输入字段:`channel_content_id` - 输出字段:`title`, `body_text`, `images`, `video_url`, `channel`, `channel_account_id`, `channel_account_name` - 解构字段:`purpose_points`, `key_points`, `inspiration_points`, `topic_fusion_result`, `merge_leve2` - 边界:Case 的最终落点;可由直接 Case 或 Pattern 派生 Case 回查。 #### S4. 数据库:`open_aigc_pattern`,表:`topic_pattern_itemset` -> 数据库:`content-deconstruction-supply`,表:`workflow_decode_task_result` - 输入字段:`execution_id`, `combination_type`, `item_count`, `support`, `absolute_support`, `matched_post_ids` - 输出字段:用 `matched_post_ids` 回查 `workflow_decode_task_result.channel_content_id` - 边界:DB 字段存在,旧版未作为主链路实现;不能写成已跑通。 #### S5. 数据库:`open_aigc_pattern`,表:`topic_pattern_category` - 输入字段:`execution_id`, `id`, `path`, `source_type` - 输出字段:`name`, `description`, `category_nature`, `level`, `parent_id`, `element_count` - 边界:辅助解释 Pattern,不直接召回内容。 #### S6. 数据库:`content-deconstruction-supply`,表:`demand_find_author` - 输入字段:`content_tags`, `channel`, `author_id`, `author_name` - 输出字段:`trace_id`, `author_name`, `author_link`, `author_id`, `elderly_ratio`, `elderly_tgi`, `is_good`, `remark`, `content_tags`, `channel` - 边界:旧版可按 `content_tags LIKE query` 找历史作者。 #### S7. 接口:今日热榜 `/crawler/jin_ri_re_bang/content_rank` - 输入字段:`sort_type`, `cursor` - 输出字段:`source`, `jump_url`, `type`, `rankList[].title`, `rankList[].heat`, `has_more`, `next_cursor` - 边界:热点只做修饰和探索入口,不等于最终内容源。 #### S8. 数据库:`open_aigc`,表:`post` - 输入字段:`post_id`, `platform`, `merge_leve1`, `merge_leve2`, `import_date` - 输出字段:`title`, `body_text`, `platform_account_id`, `platform_account_name`, `publish_timestamp`, `like_count`, `comment_count`, `collect_count`, `images` - 边界:数据工程上游素材表,不是旧版 ContentFindAgent 主读表。 #### S9. 数据库:`open_aigc`,表:`post_decode_topic_point_element` - 输入字段:`post_id`, `topic_point_id`, `element_type`, `element_sub_type` - 输出字段:`element_name`, `element_description`, `element_source`, `element_reason` - 边界:用于理解上游元素,不替代 `workflow_decode_task_result`。 #### S10. 数据库:`open_aigc`,表:`post_script_paragraph_field_element` - 输入字段:`post_id`, `paragraph_id`, `field_type`, `element_type`, `element_sub_type` - 输出字段:`element_name`, `element_description` - 边界:用于策略学习和素材理解。 ## 2. Query Query 阶段回答:哪些输入会被转成平台可执行搜索词或采集动作。 ### 2.1 索引 | 编号 | 接口/表 | 用途 | 状态 | |---|---|---|---| | Q1 | `demand_content` | 需求转 Query 输入 | 已验证 | | Q2 | `workflow_decode_task_result` | Case 解构点转 Query 输入 | 已验证 | | Q3 | `topic_pattern_element` | Pattern 词 / 元素转 Query 输入 | 已验证 | | Q4 | `topic_pattern_itemset` | Pattern 组合转 Query 输入 | pending / 待接入 | | Q5 | OpenRouter | LLM Query Builder / 判断辅助 | 只读鉴权通过 | | Q6 | `demand_find_task` | Query 执行 trace 台账 | 已验证 | ### 2.2 详情 #### Q1. 数据库:`content-deconstruction-supply`,表:`demand_content` - 输入字段:`name`, `suggestion`, `merge_leve2`, `score`, `dt`, `ext_data.evidence_pack.seed_terms`, `ext_data.evidence_pack.source_kind` - 输出字段:Query 原始需求、品类、解释、策略种子。 - 边界:旧版从需求池出发;新版有证据包时优先使用 `seed_terms`,不能只把宽泛 `name` 当 Query 输入。 #### Q2. 数据库:`content-deconstruction-supply`,表:`workflow_decode_task_result` - 输入字段:`purpose_points`, `key_points`, `inspiration_points`, `topic_fusion_result`, `title`, `body_text`, `merge_leve2` - 输出字段:Case 策略种子、筛选点、回扣依据。 - 边界:v2 以解构出的策略种子为主,不直接用账号名做 Query。 #### Q3. 数据库:`open_aigc_pattern`,表:`topic_pattern_element` - 输入字段:`name`, `element_type`, `category_path`, `point_type`, `point_text` - 输出字段:Pattern 词、维度、类目路径。 - 边界:旧版用 `name` 找历史 case;v2 可用于 Pattern seed。 #### Q4. 数据库:`open_aigc_pattern`,表:`topic_pattern_itemset` - 输入字段:`combination_type`, `item_count`, `support`, `absolute_support`, `dimensions`, `matched_post_ids` - 输出字段:Pattern 组合、支持度、多 Case 命中集合。 - 边界:字段存在;旧版未用它生成 Query。 #### Q5. 能力:OpenRouter - 输入字段:`model`, `messages`, `tools`, `system`, `max_tokens`, `temperature` - 输出字段:`content`, `tool_calls`, `prompt_tokens`, `completion_tokens`, `finish_reason`, `cost`, `usage` - 边界:本轮只做 key metadata 鉴权探测,未调用 chat completion 或 embeddings;真实生成仍需显式预算开关。 #### Q6. 数据库:`content-deconstruction-supply`,表:`demand_find_task` - 输入字段:`trace_id`, `demand_content_id`, `status`, `created_at`, `token_coast` - 输出字段:任务状态、成本、需求关联。 - 边界:不是 Query 内容表,但承载执行追踪。 ## 3. Platform Platform 阶段回答:同一个 Query 在平台上用什么动作执行,返回什么字段。 ### 3.1 索引 | 编号 | 接口/表 | 用途 | 状态 | |---|---|---|---| | P1 | 抖音关键词搜索 `/crawler/dou_yin/keyword` | Query -> 视频候选 | 已验证 | | P2 | TikHub 搜索 fallback | 抖音搜索备用 | blocked | | P3 | 抖音账号作品 `/crawler/dou_yin/blogger` | 作者 -> 作者作品 | 已验证 | | P4 | 热点宝内容画像 | 视频画像 | 已验证 | | P5 | 热点宝账号画像 | 作者画像 | 已验证 | | P6 | `demand_find_content_result` | 平台结果沉淀字段 | 已验证 | | P7 | `demand_find_author` | 作者平台身份 | 已验证 | ### 3.2 详情 #### P1. 接口:抖音关键词搜索 `/crawler/dou_yin/keyword` - 输入字段:`keyword`, `content_type`, `sort_type`, `publish_time`, `cursor`, `account_id` - 输出字段:`aweme_id`, `desc`, `author.nickname`, `author.sec_uid`, `statistics.*`, `has_more`, `next_cursor` - 边界:实测 `content_type=视频` 成功;`综合` 口径不能直接照搬。 #### P2. 接口:TikHub 搜索 fallback - 输入字段:`keyword`, `cursor`, `sort_type`, `publish_time`, `filter_duration`, `content_type`, `search_id`, `backtrace` - 输出字段:`business_data[].data.aweme_info`, `next_page`, `backtrace` - 边界:缺 `TIKHUB_API_KEY`,不能写成已接入。 #### P3. 接口:抖音账号作品 `/crawler/dou_yin/blogger` - 输入字段:`account_id`, `sort_type`, `cursor` - 输出字段:`aweme_id`, `desc`, `author.*`, `statistics.*`, `has_more`, `next_cursor` - 边界:已验证抖音作者作品;小红书作者作品仍待验证。 #### P4. 接口:热点宝内容画像 - 输入字段:`content_id`, `need_age`, `need_gender`, `need_province` - 输出字段:年龄、性别、省份画像,`percentage`, `preference` - 边界:用于判断,不是召回接口。 #### P5. 接口:热点宝账号画像 - 输入字段:`account_id`, `need_age`, `need_gender`, `need_province` - 输出字段:年龄、性别、省份画像,`percentage`, `preference` - 边界:可作为作者是否值得扩展的判断信号。 #### P6. 数据库:`content-deconstruction-supply`,表:`demand_find_content_result` - 输入字段:`channel`, `aweme_id`, `video_url`, `author_id`, `author_name`, `author_link` - 输出字段:平台、内容 ID、作者 ID、链接。 - 边界:这是结果表字段,不是平台 API。 #### P7. 数据库:`content-deconstruction-supply`,表:`demand_find_author` - 输入字段:`channel`, `author_id`, `author_name`, `author_link`, `content_tags` - 输出字段:作者资产、内容标签、平台身份。 - 边界:可作为后续作者起点。 ## 4. 判断 判断阶段回答:内容、作者、Pattern 派生 Case 是否值得留下或继续扩展。 ### 4.1 索引 | 编号 | 接口/表 | 用途 | 状态 | |---|---|---|---| | J1 | 热点宝内容画像 | 50+ 内容适配 | 已验证 | | J2 | 热点宝账号画像 | 50+ 作者适配 | 已验证 | | J3 | `workflow_decode_task_result` | Case 回扣判断 | 已验证 | | J4 | `topic_pattern_element` | Pattern 回扣判断 | 已验证 | | J5 | `topic_pattern_itemset` | Pattern 来源 Case 支持度判断 | pending / 待接入 | | J6 | `demand_find_content_result` | 判断结果沉淀 | 已验证 | | J7 | `dwd_multi_demand_pool_di` | 下游需求池表现参考 | 已验证 | | J8 | `feature_point_data` | 特征表现参考 | 已验证 | ### 4.2 详情 #### J1. 接口:热点宝内容画像 - 输入字段:`content_id`, `need_age`, `need_gender`, `need_province` - 输出字段:年龄、性别、省份画像,`percentage`, `preference` - 边界:判断信号,不直接代表内容质量。 #### J2. 接口:热点宝账号画像 - 输入字段:`account_id`, `need_age`, `need_gender`, `need_province` - 输出字段:年龄、性别、省份画像,`percentage`, `preference` - 边界:作者强不代表作品必然强。 #### J3. 数据库:`content-deconstruction-supply`,表:`workflow_decode_task_result` - 输入字段:`purpose_points`, `key_points`, `inspiration_points`, `topic_fusion_result` - 输出字段:目的点、关键点、灵感点、选题描述。 - 边界:直接 Case 和 Pattern 派生 Case 都回到这张表判断。 #### J4. 数据库:`open_aigc_pattern`,表:`topic_pattern_element` - 输入字段:`name`, `element_type`, `category_path`, `point_type`, `point_text` - 输出字段:元素词、维度、分类路径、点位文本。 - 边界:旧版是弱 lineage,不是 execution-scoped 精确血缘。 #### J5. 数据库:`open_aigc_pattern`,表:`topic_pattern_itemset` - 输入字段:`support`, `absolute_support`, `item_count`, `matched_post_ids`, `combination_type` - 输出字段:支持度、帖子集合、组合类型。 - 边界:用于 Pattern -> 多 Case 判断;旧版未主链路使用。 #### J6. 数据库:`content-deconstruction-supply`,表:`demand_find_content_result` - 输入字段:`digg_count`, `comment_count`, `share_count`, `portrait_source`, `elderly_ratio`, `elderly_tgi`, `recommendation_reason`, `process_trace` - 输出字段:互动、画像来源、50+ 指标、推荐理由、过程 trace。 - 边界:旧版只沉淀最终结果,没有全量候选判断表。 #### J7. 数据库:`ODPS`,表:`dwd_multi_demand_pool_di` - 输入字段:`strategy`, `demand_id`, `demand_name`, `weight`, `type`, `video_count`, `video_list`, `extend`, `dt` - 输出字段:需求池权重和视频列表。 - 边界:用于策略学习/复盘,不是旧版判断实时输入。 #### J8. 数据库:`ODPS`,表:`feature_point_data` - 输入字段:`特征点`, `总分发曝光pv`, `bn_总回流`, `质bn_rovn`, `分发视频量`, `总日回流uv`, `vid_list`, `dt` - 输出字段:特征点表现、回流、视频列表。 - 边界:用于后续策略学习,不是旧版实时评分表。 ## 5. 游走 游走阶段回答:从视频、作者、Pattern、Case 还能走到哪里。 ### 5.1 索引 | 编号 | 接口/表 | 用途 | 状态 | |---|---|---|---| | W1 | 抖音关键词搜索返回作者 | 视频 -> 作者 | 已验证 | | W2 | 抖音账号作品 | 作者 -> 作者作品 | 已验证 | | W3 | `demand_find_author` | 历史作者 -> 作者作品 | 已验证 | | W4 | `topic_pattern_element -> workflow_decode_task_result` | 特征词 -> 历史 Case | 已验证 | | W5 | `topic_pattern_itemset -> workflow_decode_task_result` | Pattern -> Item Set -> 多 Case | pending / 待接入 | | W6 | 相关搜索 / 标签 / 共创 / 相似作者 | 内容继续扩展 | 缺口 | | W7 | 小红书笔记/作者/话题游走 | 小红书扩展 | 缺口 | ### 5.2 详情 #### W1. 接口:抖音关键词搜索返回作者 - 输入字段:`aweme_id`, `desc`, `author.nickname`, `author.sec_uid`, `statistics.*` - 输出字段:作者昵称、`sec_uid`、互动指标。 - 边界:只是进入作者判断,不代表作者自动入库。 #### W2. 接口:抖音账号作品 - 输入字段:`account_id` / `author.sec_uid`, `sort_type`, `cursor` - 输出字段:`aweme_id`, `desc`, `author.*`, `statistics.*`, `has_more`, `next_cursor` - 边界:作品需要重新过判断。 #### W3. 数据库:`content-deconstruction-supply`,表:`demand_find_author` - 输入字段:`author_id`, `author_link`, `content_tags`, `channel` - 输出字段:可复用作者身份、标签、画像指标。 - 边界:旧版按作者资产复用;作品仍走平台接口。 #### W4. 数据库:`open_aigc_pattern`,表:`topic_pattern_element` -> 数据库:`content-deconstruction-supply`,表:`workflow_decode_task_result` - 输入字段:`topic_pattern_element.name`, `post_id` - 输出字段:`workflow_decode_task_result.channel_content_id`, Case 解构点。 - 边界:旧版已实现的弱链路。 #### W5. 数据库:`open_aigc_pattern`,表:`topic_pattern_itemset` -> 数据库:`content-deconstruction-supply`,表:`workflow_decode_task_result` - 输入字段:`matched_post_ids`, `support`, `absolute_support` - 输出字段:多个 Case 的原始素材和解构点。 - 边界:新版重要路径;旧版未实现主链路。 #### W6. 缺口:相关搜索 / 标签 / 共创 / 相似作者 - 输入字段:暂无稳定字段。 - 输出字段:暂无稳定返回。 - 边界:不写成已验证接口。 #### W7. 缺口:小红书笔记/作者/话题游走 - 输入字段:暂无旧版实测字段。 - 输出字段:暂无稳定返回。 - 边界:目前只有静态 Case 字段,不等于平台接口接入。 ## 6. 资产清洗沉淀 资产清洗沉淀阶段回答:召回和判断后的内容、作者、后处理链接沉到哪里。 ### 6.1 索引 | 编号 | 接口/表 | 用途 | 状态 | |---|---|---|---| | A1 | `demand_find_content_result` | 内容资产入库 | 已验证 | | A2 | `demand_find_content_result` | 内容质量和画像沉淀 | 已验证 | | A3 | `demand_find_author` | 作者资产入库 | 已验证 | | A4 | AIGC plan | 后处理计划绑定 | 源码定位 / blocked | | A5 | OSS log HTML | 过程可视化链接 | 源码定位 / blocked | | A6 | 关系资产 | 来源、query、作者、标签、游走路径关系 | 缺口 | | A7 | 搜索线索 | 有效 query、失败 query、标签、话题 | 缺口 | ### 6.2 详情 #### A1. 数据库:`content-deconstruction-supply`,表:`demand_find_content_result`(内容资产入库) - 输入字段:`trace_id`, `query`, `rank_no`, `video_url`, `title`, `author_name`, `author_link`, `author_id`, `aweme_id`, `demand_content_id`, `channel`, `dt` - 输出字段:内容资产、排序、来源需求、平台身份。 - 新版必须补:结构化 `source_evidence`,或 sidecar/source edge artifact。 - 边界:旧版沉淀最终内容,不沉淀全量候选池;只靠 `aweme_id + demand_content_id + process_trace` 不能 exact 回溯到 Pattern 和分类树节点。 #### A2. 数据库:`content-deconstruction-supply`,表:`demand_find_content_result`(内容质量和画像沉淀) - 输入字段:`digg_count`, `comment_count`, `share_count`, `portrait_source`, `elderly_ratio`, `elderly_tgi`, `recommendation_reason`, `process_trace` - 输出字段:互动指标、画像、推荐理由、过程记录。 - 边界:`process_trace` 可复盘,但不是结构化全量 trace 表;不能替代 `source_evidence`。 #### A3. 数据库:`content-deconstruction-supply`,表:`demand_find_author` - 输入字段:`trace_id`, `author_name`, `author_link`, `author_id`, `elderly_ratio`, `elderly_tgi`, `is_good`, `remark`, `content_tags`, `channel` - 输出字段:作者资产、画像、标签、入选理由。 - 边界:作者身份合并逻辑需新版明确。 #### A4. 能力:AIGC plan - 输入字段:`aweme_id`, `merge_leve2`, `produce_plan_id`, `account_id`, `sort_type` - 输出字段:`crawler_plan_id`, `produce_plan_id`, `produce_plan_name`, `publish_plan_id` - 边界:写侧副作用,开发测试不能默认触发。 #### A5. 能力:OSS log HTML - 输入字段:`html_path`, `object_key`, `task_id` - 输出字段:`web_html_url` - 边界:上传有副作用;旧版只保留能力边界。 #### A6. 缺口:关系资产 - 输入字段:暂无真实表。 - 输出字段:暂无真实字段。 - 边界:内容与数据源、query、作者、标签、游走路径关系都需要承载,但当前不伪造 schema。 #### A7. 缺口:搜索线索 - 输入字段:暂无真实表。 - 输出字段:暂无真实字段。 - 边界:有效 query、失败 query、标签、话题、相关搜索线索目前只在结果和 trace 中间接保留。 ## 7. 策略学习 策略学习阶段回答:下一轮如何根据 trace、表现和概念层事实调整策略。 ### 7.1 索引 | 编号 | 接口/表 | 用途 | 状态 | |---|---|---|---| | L1 | `demand_find_task` | 任务级 trace 和成本 | 已验证 | | L2 | `demand_task_oprate` | 调度和预算开关 | 源码定位 | | L3 | `demand_find_content_result` | 内容结果复盘 | 已验证 | | L4 | `demand_find_author` | 作者资产复盘 | 已验证 | | L5 | `open_aigc.global_category` | 长期概念分类 | 已验证 | | L6 | `open_aigc.global_element` | 长期概念元素 | 已验证 | | L7 | `open_aigc.element_classification_mapping` | 元素归类映射 | 已验证 | | L8 | `open_aigc.public.pattern_mining_execution` | Pattern V2 执行快照 | 已验证 | | L9 | `open_aigc.public.pattern_mining_element` | Pattern V2 元素快照 | 已验证 | | L10 | `open_aigc.public.pattern_itemset` | Pattern V2 itemset | 已验证 | | L11 | `open_aigc.public.pattern_itemset_item` | Pattern V2 itemset 成员 | 已验证 | | L12 | `loghubods.video_dimension_detail_add_column` | 视频表现回看 | 已验证 | ### 7.2 详情 #### L1. 数据库:`content-deconstruction-supply`,表:`demand_find_task` - 输入字段:`trace_id`, `demand_content_id`, `status`, `created_at`, `token_coast` - 输出字段:执行状态、成本、需求关联。 - 边界:只能看任务级结果,不能还原全量候选过程。 #### L2. 数据库:`content-deconstruction-supply`,表:`demand_task_oprate` - 输入字段:`is_open`, `day_limit_coast`, `update_time` - 输出字段:是否开启、日成本限制。 - 边界:策略控制数据,不是学习结论。 #### L3. 数据库:`content-deconstruction-supply`,表:`demand_find_content_result` - 输入字段:`trace_id`, `query`, `rank_no`, `channel`, `aweme_id`, `process_trace`, `crawler_plan_id`, `produce_plan_id`, `publish_plan_id`, `web_html_url`, `source_evidence` - 输出字段:成功路径、平台、计划绑定、过程记录、来源证据。 - 边界:没有失败候选和淘汰原因结构化表;如果没有 `source_evidence` 或 source edge artifact,策略学习只能看到结果,不能 exact 回溯到 Pattern、Case 和分类树节点。 #### L4. 数据库:`content-deconstruction-supply`,表:`demand_find_author` - 输入字段:`trace_id`, `author_id`, `author_name`, `content_tags`, `elderly_ratio`, `elderly_tgi`, `is_good`, `channel` - 输出字段:作者表现和可复用标签。 - 边界:后续需要与作品表现关联。 #### L5. 数据库:`open_aigc`,表:`global_category` - 输入字段:`stable_id`, `name`, `source_type`, `path`, `parent_stable_id`, `category_nature`, `level` - 输出字段:分类树和稳定分类 ID。 - 边界:上游概念层,非旧版实时输入。 #### L6. 数据库:`open_aigc`,表:`global_element` - 输入字段:`id`, `name`, `source_type`, `belong_category_stable_id`, `element_sub_type`, `occurrence_count` - 输出字段:元素词和出现次数。 - 边界:用于长期策略学习和 Pattern 生成。 #### L7. 数据库:`open_aigc`,表:`element_classification_mapping` - 输入字段:`source_table`, `source_element_id`, `post_id`, `element_name`, `element_type`, `global_element_id`, `global_category_stable_id`, `classification_path` - 输出字段:元素到全局类目的映射。 - 边界:用于理解上游元素如何进入 Pattern。 #### L8. 数据库:`open_aigc PG`,表:`public.pattern_mining_execution` - 输入字段:`id`, `snapshot_date`, `is_current`, `status`, `post_count`, `category_count`, `element_count`, `topic_itemset_count`, `cross_itemset_count`, `start_time`, `end_time`, `error_message` - 输出字段:Pattern 执行状态和规模。 - 边界:PG Pattern V2 到 MySQL `topic_pattern_*` 仍是高风险 bridge。 #### L9. 数据库:`open_aigc PG`,表:`public.pattern_mining_element` - 输入字段:`execution_id`, `post_id`, `source_table`, `source_element_id`, `element_type`, `element_sub_type`, `name`, `category_path`, `point_type`, `point_text` - 输出字段:元素快照和类目路径。 - 边界:可辅助学习,不直接替代 MySQL `topic_pattern_element`。 #### L10. 数据库:`open_aigc PG`,表:`public.pattern_itemset` - 输入字段:`execution_id`, `combination_type`, `item_count`, `support`, `absolute_support`, `dimensions`, `is_cross_point`, `is_cross_layer` - 输出字段:Pattern 组合、支持度、维度。 - 边界:不能直接写成 DemandAgent / ContentFindAgent 已读。 #### L11. 数据库:`open_aigc PG`,表:`public.pattern_itemset_item` - 输入字段:`itemset_id`, `layer`, `point_type`, `dimension`, `category_id`, `category_path`, `element_name`, `element_id`, `post_count` - 输出字段:itemset 中的元素项。 - 边界:用于分析 Pattern 词和组合效果。 #### L12. 数据库:`loghubods`,表:`video_dimension_detail_add_column` - 输入字段:`视频id`, `视频地址`, `标题`, `一级品类`, `二级品类`, `上传渠道`, `dt` - 表现字段:`当日分发曝光pv`, `当日分发回流uv`, `rov_t0`, `流量池曝光`, `流量池播放`, `流量池回流`, `推荐曝光`, `推荐播放`, `推荐回流`, `总日回流uv` - 输出字段:表现、曝光、播放、回流、标签。 - 边界:宽表只列策略学习关键字段。 ## 8. 缺口清单 本节吸收原环境缺口报告的缺口项。凡是没有真实表、真实 key、真实接口或只读验证证据的能力,都不能在产品或技术文档里写成“已接入”。 ### 8.1 P0 必须补齐 #### 新版候选池承载 - 需要补:全量候选池表或 API。 - 业务用途:保存所有召回的视频、笔记、作者,包括入池、观察、淘汰和最终入选。 - 当前状态:未发现真实表。 - 中文注释:旧版只保存最终结果,无法复盘“没选中的候选”。 #### 判断/淘汰日志承载 - 需要补:规则包执行记录、硬门槛、软评分、淘汰原因、停止原因表或 API。 - 业务用途:记录每个候选为什么继续、入池、观察、停止或淘汰。 - 当前状态:未发现真实表。 - 中文注释:`process_trace` 只能粗略复盘,不能替代结构化规则日志。 #### 来源关系承载 - 需要补:数据源、seed、query、平台内容、作者、标签、游走路径关系表或 API;或先用 sidecar/source edge artifact 承载。 - 业务用途:记录内容从哪里来、经过哪条路径来、由哪个规则放行,并从 `case_id/post_id` 回溯到分类树节点。 - 当前状态:未发现真实表。 - 中文注释:没有关系承载,策略学习无法按来源和路径归因;最终只剩 `aweme_id + demand_content_id + process_trace` 时,无法 exact 追到 Pattern 和分类树。 #### 搜索线索承载 - 需要补:有效 query、失败 query、标签、话题、相关搜索线索表或 API。 - 业务用途:保存下一轮可继续尝试的搜索线索,以及失败线索。 - 当前状态:未发现真实表。 - 中文注释:旧版只在结果和 trace 里间接留下 query,不够做系统学习。 #### show 联调后端 - 需要补:`VITE_API_BASE_URL`, `VITE_CONTENTFIND_API_BASE_URL` - 业务用途:让 show 从静态沙盘切到真实后端接口。 - 当前状态:missing - 中文注释:当前前端只能展示策略和静态样例,不能跑真实链路。 ### 8.2 P1 生产增强 #### TikHub fallback - 需要补:`TIKHUB_API_KEY` - 业务用途:Crawapi 抖音搜索异常、限流或不可用时做备用召回。 - 当前状态:missing - 中文注释:URL 已定位,缺 key;不能写成已接入。 #### OSS 过程链接 - 需要补:`ALIYUN_OSS_ACCESS_KEY_ID`, `ALIYUN_OSS_ACCESS_KEY_SECRET`, `ALIYUN_OSS_BUCKET`, `ALIYUN_OSS_REGION`, `ALIYUN_OSS_PREFIX`, `ALIYUN_OSS_PUBLIC_BASE_URL` - 业务用途:保存任务日志、HTML 报告、截图、trace 文件的可访问链接。 - 当前状态:missing - 中文注释:旧版有上传能力线索,但当前缺真实 OSS 配置。 #### 外部调度源 - 需要补:`SCHEDULE_QUERY_API`, `SCHEDULE_QUERY_API_KEY` - 业务用途:从外部系统接收任务、定时需求或批量触发策略运行。 - 当前状态:missing - 中文注释:当前没有真实调度入口。 #### AIGC token 治理 - 需要补:将旧版 fallback token 换成密钥平台托管值。 - 业务用途:避免旧代码硬编码 token,保证后处理计划查询/绑定安全可维护。 - 当前状态:source-only - 中文注释:这是安全治理,不是新增业务能力。 ### 8.3 P2 产品待验证 #### 小红书笔记搜索、作者主页、作者笔记、话题标签接口 - 当前状态:无旧版实测接口。 - 中文注释:产品可以设计小红书路径,但技术文档不能写成已接入。 #### 快手、B站、视频号、票圈平台适配接口 - 当前状态:无旧版实测接口。 - 中文注释:这些平台暂时不能复用抖音字段口径。 #### 相关搜索、视频 tag、共创作者、相似作者、相似内容接口 - 当前状态:无稳定字段或实测。 - 中文注释:可以作为游走策略方向,但必须标为待验证。 #### 养号推荐流账号、cookie/session、设备、代理/风控配置 - 当前状态:无真实接入配置。 - 中文注释:养号是产品意图源,不能伪装成已有旧版 DB/API backing。 #### 策略实验、规则包版本、Prompt 版本、预算回写表/API - 当前状态:无真实承载。 - 中文注释:策略学习需要这些承载,但当前没有真实表或 API。 #### Pattern -> Item Set -> 多 Case - 当前状态:DB 字段存在,旧版未主链路实现。 - 中文注释:标 `pending / 待接入`;可作为新版重要来源,但不能写成已跑通。