|
|
@@ -1049,7 +1049,7 @@ uv run pytest -q
|
|
|
- 50+ 子分:band=**41+**(`41-50`+`50+`);`TGI_score=clamp(bandTGI/2,0,100)`(TGI 200 满分);`percent_score=clamp(band占比,0,100)`;`50+子分=0.6·TGI_score+0.4·percent_score`。TGI=画像 `preference`,占比=画像 `percentage`,同一接口。
|
|
|
- **初筛=Query≥70 且 平台≥65 达标才花 30s 拉画像**;不达标不拉。画像/字段缺失=技术失败 + `portrait_unavailable`/`portrait_incomplete` 报错 + 停游走。画像限流 30s。
|
|
|
- **作者画像按作者缓存(真跑后修订:原"不缓存"被推翻)**:画像作者级、同作者一致,同 run 同作者只拉一次;不缓存会让抖音首轮上百视频逐条 30s → run ~70min。
|
|
|
-- **本 run 画像调用上限安全阀** `CONTENT_AGENT_PORTRAIT_CALLS_PER_RUN_CAP`(0=不限):超额视频走 `not_attempted`(只按 35/35 算,不进池)。巨量算数暂不接。
|
|
|
+- **成本口径**:即便缓存,真实抖音首轮横跨几十个不同作者 × 30s,一个 run 几十分钟,**接受,不设画像调用上限**。巨量算数暂不接。
|
|
|
- 非抖音:Gate 1 = 需求**≥1 终端元素**(无子节点叶子)才做,**只读直连 pattern PG 判叶子**(`pattern_mining_category` 无 `parent_id=id` 即叶子);Gate 2 = AI 判 query 是否易搜 50+,出"是/否",**拿不准从宽放过**;非抖音游走继续出 query 且复用 Gate 2;非抖音只标签游走(来源闭合)。
|
|
|
|
|
|
开工前必须拍板:
|
|
|
@@ -1063,7 +1063,7 @@ uv run pytest -q
|
|
|
- 不接巨量算数(25009);不恢复视频级画像(404);不改 Gemini relevance 判定;不改非抖音 50/50 综合分;不新增 DB 表/正式列(全进现有 JSON/现成列);不做真实冒烟(留生产真跑)。
|
|
|
|
|
|
涉及文件:
|
|
|
-- 抖音 50+(实际改动):`content_agent/integrations/douyin.py`(画像 client)、`content_agent/business_modules/content_discovery/fifty_plus.py`(新增,50+ 子分)、`content_agent/business_modules/progressive_screening.py`(初筛后注入 + 缓存 + 上限)、`content_agent/business_modules/rule_judgment/evaluator.py`(35/35/30 分流 + portrait reason)、`content_agent/business_modules/run_record/validation.py`(2/3 维)、`.env`、`pyproject.toml`。**未改**:rule pack JSON、规则包映射 Excel(50+ 走 evaluator 不进配置维度);`result_source_lookup` 作者资产 `elderly_*` 回填**暂缓**(该作者池路径目前停摆于 V3 死字段 `age_50_plus_level`,改它需动 p7,本轮不做)。
|
|
|
+- 抖音 50+(实际改动):`content_agent/integrations/douyin.py`(画像 client)、`content_agent/business_modules/content_discovery/fifty_plus.py`(新增,50+ 子分)、`content_agent/business_modules/progressive_screening.py`(初筛后注入 + 作者缓存)、`content_agent/business_modules/rule_judgment/evaluator.py`(35/35/30 分流 + portrait reason)、`content_agent/business_modules/run_record/validation.py`(2/3 维)、`.env`、`pyproject.toml`。**未改**:rule pack JSON、规则包映射 Excel(50+ 走 evaluator 不进配置维度);`result_source_lookup` 作者资产 `elderly_*` 回填**暂缓**(该作者池路径目前停摆于 V3 死字段 `age_50_plus_level`,改它需动 p7,本轮不做)。
|
|
|
- 非抖音:`content_agent/integrations/pattern_pg.py`(新增)、`content_agent/run_service.py`、`content_agent/business_modules/search_intent.py`、`content_agent/integrations/query_variant.py`、`product_documents/配置/query_prompts.v1.json`、`content_agent/business_modules/walk_engine.py`、`content_agent/graph.py`、`pyproject.toml`(+pg8000)。
|
|
|
- 测试:`tests/test_douyin_fifty_plus_scoring.py`、`test_fifty_plus_score_formula.py`、`test_gate1_terminal_element.py`、`test_gate2_query_50plus.py`、`test_account_fans_portrait_client.py` 等。
|
|
|
|
|
|
@@ -1072,8 +1072,8 @@ uv run pytest -q
|
|
|
- bundle 进程内:`content_audience_50plus{status,score,components}`(仅抖音注入,非抖音不带 → evaluator 走旧 50/50)。
|
|
|
- 决策:画像不可用 → `decision_action=TECHNICAL_RETRY_REQUIRED` + `decision_reason_code=portrait_unavailable|portrait_incomplete` → `path_stop`。
|
|
|
- DB:50+ 子分进 `content_agent_rule_decisions.scorecard`(JSON,无新列);作者级 `elderly_ratio`/`elderly_tgi`/`profile_snapshot` 用 `content_agent_author_assets` 现成列(晋升资产时回填)。
|
|
|
-- 配置:`.env`(+`CONTENTFIND_DOUYIN_PORTRAIT_PATH`、+`CONTENT_AGENT_PORTRAIT_CALLS_PER_RUN_CAP`);`pyproject.toml`(+`pg8000`)。
|
|
|
-- **实现修订(真跑后)**:① 50+ 维度不进 rule pack(config 校验器要求 active 维度恰为 query/platform),改由 evaluator 按 bundle 是否带 `content_audience_50plus` 块分流 → 非抖音零改动;② `portrait_unavailable` 不走 rule pack 硬门,改由 evaluator score=None 时按 `fifty_plus_status` 给 reason → `TECHNICAL_RETRY_REQUIRED` → `path_stop`(零 Excel 改动);③ 作者画像按作者缓存 + 调用上限安全阀。
|
|
|
+- 配置:`.env`(+`CONTENTFIND_DOUYIN_PORTRAIT_PATH`);`pyproject.toml`(+`pg8000`)。
|
|
|
+- **实现修订(真跑后)**:① 50+ 维度不进 rule pack(config 校验器要求 active 维度恰为 query/platform),改由 evaluator 按 bundle 是否带 `content_audience_50plus` 块分流 → 非抖音零改动;② `portrait_unavailable` 不走 rule pack 硬门,改由 evaluator score=None 时按 `fifty_plus_status` 给 reason → `TECHNICAL_RETRY_REQUIRED` → `path_stop`(零 Excel 改动);③ 作者画像按作者缓存(不设调用上限,几十分钟可接受)。
|
|
|
|
|
|
开发顺序:
|
|
|
1. M9A 抖音作者画像 client + 50+ 子分纯函数 + `progressive_screening` 初筛后拉画像注入 bundle。
|