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>