Explorar el Código

fix(roi): 修复 portfolio_metrics 导入路径,启用人群包基线生成

calculate_roi_metrics() 中 `from tools.portfolio_metrics import ...`
在 execute_once.py 启动链下失败:execute_once 用全限定包路径
`from examples.auto_put_ad_mini.tools.X` 导入,此时 `tools` 不在
sys.path 顶级,`from tools.portfolio_metrics` 找不到包。原代码用
try/except 吞掉 ImportError 只打 WARNING,导致 portfolio_summary 静默
不生成,下游决策只能退化使用全局均值,reason 出现"裂变率低于同类均值
(数据缺失)"。

改为裸模块名 `from portfolio_metrics import ...`,与同文件 L52-54
`from ad_decision import _extract_audience_tier` 风格一致——依赖
L41-43 已把 _TOOLS_DIR 加入 sys.path,同级模块可直接导入。

实测:portfolio_summary_*.json 当日成功生成(20 个人群包),
ad_decision 加载基线,LLM 决策从"32 scale_up + 0 bid_up + 0 bid_down"
改进为"0 scale_up + 4 bid_up + 2 bid_down",候选信号触发更精确。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
刘立冬 hace 1 mes
padre
commit
0a12badbf4
Se han modificado 1 ficheros con 1 adiciones y 1 borrados
  1. 1 1
      examples/auto_put_ad_mini/tools/roi_calculator.py

+ 1 - 1
examples/auto_put_ad_mini/tools/roi_calculator.py

@@ -537,7 +537,7 @@ async def calculate_roi_metrics(
         # 这是决策引擎的硬依赖,直接在 ROI 计算完成后生成
         # 这是决策引擎的硬依赖,直接在 ROI 计算完成后生成
         portfolio_tier_count = 0
         portfolio_tier_count = 0
         try:
         try:
-            from tools.portfolio_metrics import _describe_group, _compute_daily_tier_snapshot, _compute_market_signal
+            from portfolio_metrics import _describe_group, _compute_daily_tier_snapshot, _compute_market_signal
             portfolio_dir = _MINI_DIR / "outputs" / "portfolio_summary"
             portfolio_dir = _MINI_DIR / "outputs" / "portfolio_summary"
             portfolio_dir.mkdir(parents=True, exist_ok=True)
             portfolio_dir.mkdir(parents=True, exist_ok=True)
             portfolio_file = portfolio_dir / f"portfolio_summary_{end_date_str}.json"
             portfolio_file = portfolio_dir / f"portfolio_summary_{end_date_str}.json"