img-article-compreh-dataflow.md 31 KB

image_article_comprehension 数据工程流程分析报告(三库核验版)

生成时间:2026-05-28 分析范围:/Users/samlee/Documents/works/image_article_comprehension 源码、PostgreSQL open_aigc.public 只读实连统计、MySQL open_aigc_patternaigc-admin-prod 连接/元数据核验。 核验方式:PostgreSQL 使用 default_transaction_read_only=on 查询元数据和统计;MySQL open_aigc_pattern 的 RDS 域名会被本机/VPN Fake-IP 路径接管且 SQL 握手失败,但真实内网地址 192.168.202.204:3306 可只读实连;MySQL aigc-admin-prod 只查询 information_schema 字段元数据,不读取 cookie 行值。

安全说明:本报告不复写数据库密码原文;密码原文按用户要求只写入同目录 Excel 的 数据库清单 sheet。

2026-05-29 追加核验口径:Excel 的“源表 -> 去重 -> embedding -> 距离矩阵 -> DBSCAN -> batch -> 分类 agent -> global 三表”是真实存在的聚类辅助分类/embedding 分类链路;但 scripts/run_classify.py 主入口不把 element_dedup_group、source embedding cache、距离矩阵、DBSCAN 当硬前置。狭义 Pattern V2 是 pattern_mining_* 快照和 pattern 挖掘,不生成 global 三表;如果口头把整个 pattern_global_v2 服务都叫 Pattern V2,则其中分类库阶段会写 global 三表。MySQL open_aigc_pattern 当前通过真实内网地址 192.168.202.204:3306 只读复核成功,但只影响 build 工作台和旧兼容层口径,不改变分类库与 Pattern V2 主链路。完整修订见 /Users/samlee/Documents/works/数据工程/pattern-global-v2-full-data-algorithm-report.md

1. 核验结论

本项目当前只按 3 个有效数据库整理:

数据库 定性 本项目角色
PostgreSQL open_aigc.public 分类库 + pattern v2 + 原始解构主库 接收 topic/script 解构结果,沉淀去重、分类树、映射、embedding、pattern 快照和 pattern v2 输出
MySQL open_aigc_pattern 构建工作台库 记录选题构建、脚本构建、prompt/strategy、外部搜索日志、输入缓存/配置,以及旧版兼容 topic_pattern_*
MySQL aigc-admin-prod AIGC 后台辅助库 当前代码只用于浏览器工具读取 agent_channel_cookies 的 cookie/profile 元数据,不是 pattern 加工输入库或输出库

两个已确认废弃库已从本报告和 Excel 的主数据流转中删除,不再纳入本项目数据工程口径。

主数据链路是:上游内容或解构 JSON/API 进入 open_aigc 原始表,经过 dedup、embedding/距离矩阵、DBSCAN 聚类辅助、分类 agent 写入全局分类体系,再由 pattern snapshot 和配置化挖掘产出 pattern v2 结果。patter_from_global_and_build 消费 open_aigc / pattern v2 查询能力,把选题和脚本构建过程写入 open_aigc_pattern

需要特别修正的口径:

  1. run_daily_main.py 当前默认只启用 topic_element FP-Growth;topicpoint_patterncross_layerparagraphscript_sequence 等 loop 是可配置能力或历史输出,不能写成当前默认都会跑。
  2. open_aigc_pattern 是当前 topic/script build 工作台库,不只是旧兼容库;其中 topic_pattern_* 是旧本地 mining/兼容/展示兜底层,当前 library/account pattern 查询更应以 pattern_global_v2 HTTP debug API 和 open_aigc 的 pattern v2 表为准。
  3. aigc-admin-prod 不提供外部搜索 case 数据;外部搜索来自 HTTP/crawler/aigc-channel/tophub 等接口,结果落 open_aigc_pattern.external_search_case_log
  4. post_decode_topic_point_element 已有 topic 侧 感受 数据,实测 38,773 行,但当前 element_dedup_group 和当前全局映射尚未承接这部分口径。

2. 数据库和实例核验

数据库 实例名/实例ID 实例连接地址 当前解析/peer 连接状态 用途 配置来源
PostgreSQL open_aigc.public gp-t4n72471pkmt4b9q7o-master gp-t4n72471pkmt4b9q7o-master.gpdbmaster.singapore.rds.aliyuncs.com:5432 198.18.0.45:5432 只读实连成功 原始解构、全局分类、embedding、dedup、pattern v2 快照和输出 aiddit/pattern_global_v2/db/pg_db_manager.py:13docker/Dockerfile.pattern_global_v2:21patter_from_global_and_build/library_data/library_db_manager.py:12
MySQL open_aigc_pattern rm-bp1k5853td1r25g3n690 rm-bp1k5853td1r25g3n690.mysql.rds.aliyuncs.com:3306 域名 Fake-IP 本轮 198.18.0.59:3306;真实直连 192.168.202.204:3306 域名 Fake-IP 路径 TCP 可连但无 MySQL greeting;真实内网地址只读实连成功,35 张表、332 个字段 选题/脚本 build 工作台、prompt/strategy、外部搜索缓存、配置/输入缓存、旧 topic_pattern_* 兼容层 aiddit/pattern/patter_from_global_and_build/db_manager.py:11
MySQL aigc-admin-prod rm-t4na9qj85v7790tf84o rm-t4na9qj85v7790tf84o.mysql.singapore.rds.aliyuncs.com:3306 198.18.0.86:3306 实连成功;只查 agent_channel_cookies 字段元数据,不读 cookie 行值 AIGC 后台浏览器工具 cookie/profile 辅助库 aigc_agent_sdk/Agent/agent/tools/builtin/browser/sync_mysql_help.py:27browser/baseClass.py:520

3. PostgreSQL open_aigc 表规模

2026-05-28 实测值 业务域
post 66,974 内容主表
post_decode_result 66,670 选题解构结果
post_decode_topic_point 572,780 选题点
post_decode_topic_point_element 1,308,993 选题点元素
post_script_paragraph 12,164 脚本段落
post_script_element 47,951 脚本一级元素
post_script_paragraph_element 110,999 段落元素关联
post_script_paragraph_field_element 177,856 段落字段元素
element_dedup_group 262,326 去重组
global_category 4,944 全局分类树
global_element 290,864 全局元素
element_classification_mapping 1,123,373 源元素到全局元素/分类映射
global_element_embedding 455,269 元素向量
global_category_embedding 8,860 分类向量
pattern_mining_execution 7 pattern v2 执行
pattern_mining_category 25,816 pattern 分类快照
pattern_mining_element 1,950,755 pattern 元素快照
pattern_mining_config 45 pattern 挖掘配置
pattern_itemset 449,216 FP-Growth 结果
pattern_itemset_item 1,808,629 itemset item
pattern_itemset_post 3,910,262 itemset 支撑 post
pattern_script_sequence 2,753 PrefixSpan 序列
pattern_script_sequence_item 7,873 序列 item
pattern_script_sequence_post 15,907 序列支撑 post
pattern_group_itemset 2,997 topic point/group pattern
pattern_group_itemset_item 6,138 group itemset item
pattern_group_itemset_member 39,191 group itemset 成员

4. 原始解构数据

4.1 选题解构元素:post_decode_topic_point_element

分类维度 元素行数 覆盖 post distinct 元素名
实质 681,856 66,069 165,839
形式 537,947 65,899 56,975
意图 50,417 47,572 743
感受 38,773 12,827 361

topic 侧 感受 已经是实测存在的数据,不再沿用旧报告“只有 3 行”的说法。但 dedup、聚类入口和当前全局映射尚未承接 感受 + post_decode_topic_point_element

4.2 脚本一级元素:post_script_element

分类维度 元素行数 覆盖 post distinct 元素名
实质 31,872 1,936 12,572
形式 16,079 1,952 9,055

4.3 脚本段落字段元素:post_script_paragraph_field_element

后续 dedup、paragraph pattern 和 script sequence pattern 的业务维度以 field_type 为核心:function -> 作用feeling -> 感受theme/form 再结合 element_type 归入“实质/形式”。

流转维度 field_type 元素行数 覆盖 post distinct 元素名
作用 function 28,895 1,931 8,422
实质 form 40,207 1,926 13,084
实质 theme 41,699 1,932 20,760
形式 form 31,481 1,930 6,758
形式 theme 7,038 1,303 2,979
感受 feeling 28,536 1,932 2,194

5. 主加工 loop 状态

loop 当前状态 输入 输出 说明
topic/script 导入 保留主加工 上游 JSON/API/ODPS post_decode_*post_script_* pattern_global_v2/data_io 写入 open_aigc
dedup 同步 保留主加工 3 张原始元素表 element_dedup_group 1 张表内按 source_type + source_table 分 9 个处理组合,不是 9 张 dedup 表
source embedding 保留辅助加工 dedup 代表元素、已有全局元素向量、embedding API 本地 cache/embeddings_{source_table}.ids.npy/.vecs.npy;可复用/补写 global_element_embedding 原始 source 元素没有独立 DB embedding 表;本地 cache 是矩阵输入
距离矩阵 保留主加工 9 组 dedup 代表元素 embedding 本地 cache/dist_rows_{source_type}__{source_table}.bin/.idx.npz 距离矩阵不是数据库表;每个 source_type/source_table 一组矩阵文件
DBSCAN 聚类 保留辅助加工 距离矩阵 当前 cluster_on_demand.py 返回内存聚类结果;旧/归档路径可写本地 cache/global_clusters_{source_type}_{source_table}_{timestamp}.json 聚类不直接写分类树,只辅助分类 agent/人工批处理;JSON 不是当前必经落地产物
分类 agent 保留主加工 cluster batch 或未分类元素 global_categoryglobal_elementelement_classification_mapping;辅助写 classify_*global_*_embeddingpost_classification_status pattern v2 快照的事实基础
pattern snapshot 保留主加工 当前全局分类树和映射 pattern_mining_execution/category/element 每次 execution 固化当时分类视图
topic_element FP-Growth run_daily_main.py 默认启用 pattern_mining_element topic 元素 pattern_itemset* scope=topic_element 当前默认唯一启用的挖掘 loop
topic FP-Growth 可配置启用/历史输出 topic 分类 item pattern_itemset* scope=topic ENABLE_TOPIC=False
point pattern 可配置启用/历史输出 topic point/group transaction pattern_group_itemset* ENABLE_POINT_PATTERN=False
cross_layer 可配置启用/历史输出 fully_classified post pattern_itemset* scope=cross_layer ENABLE_CROSS_LAYER=False
paragraph 可配置启用/历史输出 paragraph transaction pattern_itemset* scope=paragraph ENABLE_PARAGRAPH=False
script sequence 可配置启用/历史输出 段落顺序 pattern_script_sequence* ENABLE_SCRIPT=False
MySQL topic_pattern_* 本地 mining 兼容/展示兜底层 v2 export API 快照 open_aigc_pattern.topic_pattern_* 非当前 pattern v2 主事实;当前 library/account pattern 查询默认看 v2 HTTP debug API
AIGC 后台 cookie/profile 外部辅助 agent_channel_cookies 元数据 浏览器工具登录态 不参与 pattern 加工,不读 cookie 行值

6. 去重、embedding 和聚类链路

聚类完整链路只使用 PostgreSQL open_aigc.public 作为数据库;open_aigc_pattern 不参与原始元素去重、embedding、距离矩阵、DBSCAN 或分类树写入。需要特别区分:element_dedup_group 是 1 张数据库表中的 9 个处理组合,不是 9 张表;embedding 和距离矩阵大量落在本地 cache/ 文件,DBSCAN 当前可跑入口返回内存结果,旧/归档路径才会写 global_clusters_*.json

6.1 阶段产物总览

阶段 输入 加工方式 生成数据 写入/落地位置
原始元素输入 post_decode_topic_point_elementpost_script_elementpost_script_paragraph_field_element topic/script 解构导入后形成原始元素行 原始元素 ID、post_id、元素名、元素类型、描述、段落字段类型 3 张原始元素表
去重 dedup 3 张原始元素表 source_type + source_table + normalized_name 分组;段落字段表中 function -> 作用feeling -> 感受theme/form 再结合 element_type 归入实质/形式 representative_idmember_idsoccurrence_countdedup_key element_dedup_group
source embedding dedup 代表元素 ID 优先读本地 source embedding cache;缺失时尝试通过 element_classification_mapping -> global_element_embedding 复用已分类全局元素向量;仍缺失则调用 embedding API 并回写本地 cache source 元素向量 本地 cache/embeddings_{source_table}.ids.npycache/embeddings_{source_table}.vecs.npy;分类后新全局元素向量写 global_element_embedding
距离矩阵 9 组 dedup 代表元素向量 计算 cosine distance,行存储 float16,增量追加 每组 source_type/source_table 的代表元素距离行和索引 本地 cache/dist_rows_{source_type}__{source_table}.bincache/dist_rows_{source_type}__{source_table}.idx.npz;旧格式兼容 cache/distance_matrix_{key}.npz
DBSCAN 距离矩阵 DBSCAN(metric='precomputed') 找相似元素簇 metadataclusters[{cluster_id,size,member_ids}]noise_elements;当前 cluster_on_demand.py 返回内存 dict 旧/归档路径可写本地 cache/global_clusters_{source_type}_{source_table}_{timestamp}.json,但不是当前必经落地产物
cluster batch DBSCAN 内存结果或旧归档 JSON、element_dedup_groupelement_classification_mapping、原始元素表 展开 dedup member_ids,过滤已在 mapping 中分类过的 source_element_id,再回原始表取元素名/描述 待分类 batch:representative_idelement_nameelement_descriptionall_idscluster_idsource_table 传给 classify agent;不直接写 DB
分类 agent cluster batch 或普通未分类 batch agent tool 可查树、建分类、创建/复用全局元素、创建映射、刷新 post 分类状态 全局分类树、全局归一元素、原始元素到全局元素/分类的映射、执行日志、向量 global_categoryglobal_elementelement_classification_mapping;辅助表 classify_executionclassify_batchclassify_execution_logglobal_element_embeddingglobal_category_embeddingpost_classification_status

当前代码里还存在一个实现漂移,需要把“设计链路”和“当前可跑入口”分开看:ClusterBatchPreparer.cluster_all_elements() 同步矩阵时使用 source_type + source_table,但随后 load_or_create(source_type) 没带 source_table,与实际矩阵 key source_type__source_table 不一致;同文件 get_unclassified_from_cluster() 调用的 expand_dedup_groupsDedupManager 中实际方法名是 expand_members。因此当前更可信的聚类入口是 scripts/dedup_matrix/build_all_matrices.py 预构建 9 组矩阵,再由 scripts/dedup_matrix/cluster_on_demand.pysource_type__source_table 提取子矩阵做按需聚类;global_clusters_*.json 只能写作旧/归档式路径,不应写成当前必经产物。

6.2 原始元素表和 9 个 dedup/聚类组合

聚类入口的原始元素表一共 3 张:

原始元素表 实测行数 聚类使用字段 进入哪些处理组合
post_decode_topic_point_element 1,308,993 idpost_idelement_typeelement_nameelement_description 实质形式意图;topic 侧 感受 原始存在但当前 dedup/聚类组合未承接
post_script_element 47,951 idpost_idelement_typenameelement_description 实质形式
post_script_paragraph_field_element 177,856 idparagraph_idpost_idfield_typeelement_typeelement_nameelement_description 实质形式作用感受

element_dedup_group 仍为聚类前的关键缩减表。去重按 source_type + source_table + normalized_name 建组,代表元素用于 embedding 和距离矩阵。

source_type source_table 去重组数 去重口径内出现行 最大组大小 平均组大小
作用 post_script_paragraph_field_element 8,422 28,895 1,326 3.43
实质 post_decode_topic_point_element 140,069 537,822 4,448 3.84
实质 post_script_element 12,562 31,872 292 2.54
实质 post_script_paragraph_field_element 30,830 81,906 1,155 2.66
形式 post_decode_topic_point_element 49,402 423,987 6,093 8.58
形式 post_script_element 9,053 16,079 211 1.78
形式 post_script_paragraph_field_element 9,151 38,519 1,437 4.21
意图 post_decode_topic_point_element 643 40,732 19,478 63.35
感受 post_script_paragraph_field_element 2,194 28,536 1,590 13.01

当前 topic 原始表已经增长,但 dedup 仍停在旧同步口径。例如 topic 原始 实质681,856 行,而 dedup 中 实质 + post_decode_topic_point_element occurrence 仍是 537,822;topic 原始 感受38,773 行,但 dedup 没有 感受 + post_decode_topic_point_element

6.3 分类写表格式

分类 agent 处理的是 cluster batch 或普通未分类元素 batch。DBSCAN 只提供“哪些元素相似”的候选簇,真正的全局归一和分类树写入发生在分类工具层:

写入表 写入内容 关键字段
global_category 全局分类树节点,按 stable_id 维持逻辑稳定 ID,修改时用新行版本追踪 stable_idnamedescriptionparent_stable_idsource_typeclassified_aslevelpathcreated_at_execution_idretired_at_execution_id
global_element 全局归一后的标准元素;同名同分类可复用,复用时增加 occurrence_count idnamedescriptionbelong_category_stable_idsource_typeelement_sub_typeoccurrence_countcreated_at_execution_idretired_at_execution_id
element_classification_mapping 原始 source 元素到全局元素和分类节点的映射 source_tablesource_element_idpost_idelement_nameelement_typeglobal_element_idglobal_category_stable_idclassification_pathclassify_execution_id
global_element_embedding 新建或迁移后的全局元素向量,用于相似搜索和后续复用 element_idbelong_category_stable_idsource_typeembedding_fieldembedding_modelembeddingis_active
global_category_embedding 分类节点向量,用于分类树搜索、相似分类检索;分类名/描述变化时旧向量失活 stable_idsource_typeembedding_fieldembedding_modelembeddingis_active
post_classification_status 按 post/source_type/source_table 刷新分类完成度 post_idsource_typesource_tabletotal_elementsclassified_elementsis_completed

“全局归一”的实际关系是:原始元素表中的一行或一个 dedup group member,最终通过 element_classification_mapping.source_table + source_element_id 指向一个 global_element.id;这个全局元素再通过 belong_category_stable_id 挂到 global_category.stable_id 对应的分类树节点。原始元素不被覆盖,映射表保存“原始元素 -> 全局标准元素 -> 分类路径”的关系。

7. 全局分类树、映射和 pattern v2

统计口径:global_category.retired_at_execution_id IS NULLglobal_element.retired_at_execution_id IS NULL

分类树 活跃节点 根节点 叶子节点 最大层级 活跃 global_element 映射行数 覆盖 post 活跃 category embedding
作用 185 2 140 8 4,753 25,298 1,907 362
实质 972 2 740 7 148,740 615,710 52,836 1,916
形式 624 2 458 6 60,384 470,315 52,710 1,248
意图 28 3 18 3 293 12,050 11,954 56
感受 46 2 36 3 0 0 0 92

感受 当前有分类节点和 embedding,但没有活跃 global_element / element_classification_mapping。这与脚本原始数据、dedup 和历史 pattern 快照中存在“感受”形成口径差异。

pattern_mining_execution 仍有 current 异常:#401is_current=truestatus=failed#281 也是 current;#581 是最新成功执行但 is_current=false。API 如果只按 is_current 选 execution,可能会拿到失败快照。

execution_id snapshot_date status is_current post_count category_count element_count topic_itemset_count topic_element_itemset_count cross_itemset_count paragraph_itemset_count script_sequence_count
581 2026-05-09 success false 13,265 1,932 290,467 35,406 18,491 - - -
541 2026-04-27 running false 12,448 3,992 315,389 - 38,418 - - -
501 2026-04-27 success false 12,448 3,992 315,389 - 26,070 - - -
421 2026-04-24 success false 12,448 3,995 315,389 26,849 8,932 - - -
401 2026-04-23 failed true 12,448 3,995 315,389 - - 2,649 3,219 1,197
301 2026-04-21 success false 11,760 3,955 199,366 928 388 - - -
281 2026-04-16 success true 11,760 3,955 199,366 76,835 17,153 92,142 3,219 1,030

8. 构建库 open_aigc_pattern

open_aigc_pattern 是当前 topic/script build 工作台库,而不是当前 pattern v2 真相库。当前连接核验结论:

  • RDS 域名 rm-bp1k5853td1r25g3n690.mysql.rds.aliyuncs.com:3306 会被本机/VPN Fake-IP 路径接管;本轮解析为 198.18.0.59,此前核验曾出现 198.18.0.47。该路径 TCP 可连,但收不到 MySQL greeting,PyMySQL 会报 OperationalError: (2013, 'Lost connection to MySQL server during query')
  • 真实内网地址 192.168.202.204:3306 只读实连成功,返回 MySQL 5.7.30-log;当前库实测 35 张表、332 个字段。
  • Excel 表字段字典 已从 live information_schema 补齐此前缺失的 5 张表:account_constantbase_configtopic_build_strategytopic_build_strategy_versionxhs_benchmark_account

2026-05-29 复核关键表规模:

2026-05-29 实测行数 角色
topic_build_record 1,093 选题构建执行记录
topic_build_topic 1,264 选题候选/结果
topic_build_composition_item 22,579 选题组成元素
topic_build_item_source 23,504 元素证据来源
topic_build_item_exploration_trace 15,466 item 探索轨迹
script_build_record 269 脚本构建执行记录
script_build_paragraph 945 脚本段落
script_build_element 2,459 脚本元素
script_build_paragraph_element 4,447 段落和元素关联
external_search_case_log 12,043 外部搜索 case 缓存
prompt / prompt_version 9 / 125 prompt 当前版本和历史版本
build_strategy / build_strategy_version 56 / 242 构建策略当前版本和历史版本
topic_pattern_itemset 655,513 旧 topic pattern 本地 itemset
topic_pattern_itemset_item 3,007,048 旧 topic pattern item

从 live schema、ORM 和业务工具看,保留这些 build 表组:

表组 主要表 用途
配置/输入缓存 base_configaccount_constanttopic_piaoquan_demandxhs_benchmark_accountpost 默认 execution、批量配置、账号人设常量、票圈需求池、对标账号缓存和本地 post 元数据
选题构建 topic_build_recordtopic_build_topictopic_build_composition_itemtopic_build_item_sourcetopic_build_item_exploration_tracetopic_build_point*topic_build_log 记录需求、选题方向、构成 item、证据来源、探索轨迹、组合点和执行日志
脚本构建 script_build_recordscript_build_paragraphscript_build_elementscript_build_paragraph_elementscript_build_decision_tracescript_build_log 记录脚本段落树、元素、支撑关系、决策 trace 和执行日志;script_build_provenance 为旧数据保留
prompt/strategy promptprompt_versionbuild_strategybuild_strategy_version 复现构建策略和 prompt 版本
外部搜索缓存 external_search_case_log 保存 HTTP 外部搜索结果,用 channel_content_id 回查素材证据
兼容旧 pattern topic_pattern_*topic_pattern_account_itemset_cache 旧本地 mining/兼容/展示兜底,不作为当前 pattern v2 主真相

当前 topic build 的 pattern/library 查询运行时默认转成 pattern_global_v2 HTTP debug API;script build 的创作 pattern 查询走 /api/pattern/creation-tools/debug。另有 library_data 通过 PostgreSQL open_aigc 直查 post / post_script_paragraph / post_script_element,用于参考脚本搜索。需要注意,topic_build_record.execution_id 不能简单理解为只指向 MySQL topic_pattern_execution.id:实测 build 记录中也出现 40128179 等远端/open_aigc pattern v2 execution 口径。

9. 后台库 aigc-admin-prod

aigc-admin-prod 当前在本项目中的代码用途很窄:

字段 用途
agent_channel_cookies cookies 浏览器工具注入登录态,核验时未读取行值
agent_channel_cookies type 渠道类型,例如 xhs/gzh/shp/github
agent_channel_cookies profileId 云浏览器 profile ID

这张表服务的是内嵌 Agent SDK 的 browser helper,不是内容解构、分类、pattern 或 build 的主数据来源。外部搜索 case 不从该库读取;external_search_case 走 HTTP/crawler/aigc-channel/tophub/newrank 等外部接口,结果写入 open_aigc_pattern.external_search_case_log

10. 数据加工流转地图

阶段 输入 关键处理 输出 下游
内容采集/外部输入 crawler、ODPS、外部任务 API、本地 JSON 采集或接收内容和解构结果 本地 JSON、post topic/script 导入
选题导入 topic decode JSON 写帖子、解构结果、topic point 和 element post_decode_resultpost_decode_topic_pointpost_decode_topic_point_element dedup、分类、topic pattern
脚本导入 script split/decode JSON 写段落、一级元素、字段元素 post_script_paragraph*post_script_element dedup、paragraph/sequence pattern
去重 3 张原始元素表 source_type + source_table + normalized_name 分组 element_dedup_group 1 张表内的 9 个组合 source embedding、距离矩阵、分类 batch
source embedding dedup 代表元素、已有 global_element_embedding、embedding API 复用或生成 source 元素向量 本地 cache/embeddings_{source_table}.*;分类后补写 global_element_embedding 距离矩阵、相似搜索
距离矩阵 9 组 source embedding 计算 cosine distance,行存储增量追加 本地 cache/dist_rows_{source_type}__{source_table}.bin/.idx.npz DBSCAN
聚类 距离矩阵 DBSCAN 聚相似元素,输出簇和噪音点 当前按需入口返回内存结果;旧/归档路径可写本地 cache/global_clusters_{source_type}_{source_table}_{timestamp}.json 分类 agent/人工筛选
分类 cluster batch 或未分类元素 batch agent tool 创建/调整分类、元素、映射并刷新状态 global_categoryglobal_elementelement_classification_mappingclassify_*global_*_embeddingpost_classification_status pattern snapshot/API
pattern 快照 当前分类树和映射 固化 execution 视角 pattern_mining_execution/category/element/semantic_map 挖掘算法
默认 pattern loop pattern_mining_element topic 元素 topic_element FP-Growth pattern_itemset* visualization/build
可选 pattern loop topic/cross/paragraph/script 输入 按开关运行 FP-Growth/PrefixSpan pattern_itemset*pattern_script_sequence*pattern_group_itemset* visualization/build
build 配置/输入 open_aigc_pattern.base_config/prompt*/build_strategy*/account_constant/topic_piaoquan_demand/xhs_benchmark_account 读取默认 execution、prompt、策略、账号常量、批量需求和对标账号缓存 build 运行上下文 topic/script build agent
应用 build pattern v2 HTTP API、open_aigc 帖子/脚本库、用户需求、策略/prompt、外部搜索 选题构建、脚本构建、证据追踪 MySQL open_aigc_patterntopic_build_*script_build_*external_search_case_log 业务应用层
旧 pattern 兼容 v2 export API 快照、本地 mining 本地 topic pattern mining、详情页/脚本辅助兼容查询 MySQL open_aigc_pattern.topic_pattern_* 兼容展示和兜底,不替代 pattern v2 主事实
后台辅助 aigc-admin-prod.agent_channel_cookies 字段元数据 提供 browser helper 登录态配置 浏览器工具运行态 外部网页/平台操作

11. 主要问题和建议

  1. 修复 pattern_mining_execution current 口径:只保留一条 current,且 API 查询 current 时增加 status='success' 保护。
  2. 重跑或增量同步 topic dedup:当前 topic raw 表已增长,dedup 和后续聚类/分类 batch 已经不是最新口径。
  3. 明确 topic 侧 感受 的处理策略:当前 topic raw 有 感受,但 dedup/mapping/pattern active 口径没有承接。
  4. 修复聚类入口实现漂移:ClusterBatchPreparer 的矩阵 key 和 dedup 展开方法名与当前 manager 不一致,应统一到 source_type__source_tableexpand_members,或明确只保留 build_all_matrices.py + cluster_on_demand.py 路径。
  5. 对聚类输出新增 DB 审计或固定归档:否则 cache/global_clusters_* 丢失后无法复盘哪次聚类辅助了哪批分类。
  6. 修复或绕过 open_aigc_pattern 域名 Fake-IP 路径:当前真实内网 IP 可读,但标准 RDS 域名仍会被 Fake-IP 接管并导致 MySQL 握手失败,建议在 VPN/代理规则中对该 RDS 域名走真实内网解析或直连路由。

12. 一句话数据地图

crawler/ODPS/上游解构 JSON/API -> open_aigc.post + post_decode_* + post_script_* 原始解构仓 -> element_dedup_group + embedding cache + distance matrix 做元素归并和聚类辅助 -> global_category + global_element + element_classification_mapping 形成分类树和源元素映射 -> pattern_mining_execution + pattern_mining_category + pattern_mining_element 固化 pattern v2 快照 -> 默认 topic_element 及可配置 pattern loop 产出 pattern_itemset* / pattern_script_sequence* / pattern_group_itemset* -> patter_from_global_and_build 消费 pattern v2、帖子库和外部搜索,生成选题/脚本并写 open_aigc_pattern