""" 术语与字段名常量 —— 避免字符串魔法值,保证命名单一真源。 ## 背景 历史上本项目对同一概念有多种叫法(代码变量 / CSV 列名 / 文档术语各不相同), 已在 2026-04-21 重构中统一为: | 概念 | CSV 列名(保留中文,不改) | Python 变量(全英文) | 文档术语 | |------|--------------------------|---------------------|---------| | 广告 7 日均值动态 ROI | `动态ROI_7日均值` | `dynamic_roi_7d` | "动态 ROI (7日均值)" | | 广告单日动态 ROI | `动态ROI` | `dynamic_roi_daily` | "动态 ROI (单日)" | | 渠道 P50 基准 | (计算值,无列)| `channel_roi_p50` | "渠道P50" | | 同类裂变均值 | `tier_fission_mean` | `tier_fission_mean` | "同类均值" | ## 使用方式 ```python from tools._names import COL_DYNAMIC_ROI_7D row.get(COL_DYNAMIC_ROI_7D) # 代替硬编码字符串 "动态ROI_7日均值" ``` ## 设计约束 - **CSV 列名不动**:保留中文列名,零破坏历史 metrics_*.csv 数据 - **Python 变量规范**:全英文短名(小写下划线),与中文术语在 reason 展示层解耦 - **禁用变量名进入 LLM reason**:所有 Python 变量名都属"内部实现",reason 必须用中文术语 """ # ═══════════════════════════════════════════ # CSV 列名常量(保留中文,零破坏历史数据) # ═══════════════════════════════════════════ # 广告级动态 ROI COL_DYNAMIC_ROI_DAILY = "动态ROI" # 单日值 COL_DYNAMIC_ROI_7D = "动态ROI_7日均值" # 7 日滚动均值(决策参考) # 裂变相关 COL_T0_FISSION_COEFF = "T0裂变系数" # 单日值 COL_T0_FISSION_COEFF_7D = "T0裂变系数_7日均值" # 7 日滚动均值 # 护栏 B 系列用的临时列(在 validate_decisions 里注入) COL_CHANNEL_ROI_P50 = "_channel_roi_p50" # 带下划线前缀表示"内部临时列" # ═══════════════════════════════════════════ # 文档术语(reason 展示层) # ═══════════════════════════════════════════ TERM_DYNAMIC_ROI_7D = "动态 ROI (7日均值)" TERM_CHANNEL_P50 = "渠道P50" TERM_TIER_FISSION_MEAN = "同类均值" TERM_PAUSE_LINE = "关停线" TERM_BID_DOWN_LINE = "降价线" TERM_BID_UP_LINE = "提价线" # ═══════════════════════════════════════════ # 禁用变量名黑名单(LLM reason 里若出现则违规) # ═══════════════════════════════════════════ FORBIDDEN_IN_REASON = [ # 旧版 Python 变量名 "f_roi", "roi_mean", "roi_p50", "channel_p50", "tier_roi_p50", # 新版 Python 变量名(Phase 2 引入后也禁止出现在 reason) "dynamic_roi_7d", "channel_roi_p50", # 阈值线英文名 "pause_line", "bid_down_line", "bid_up_line", # 信号字段 "bid_increased_7d", "creative_changed_7d", "roi_valid_days", "tier_fission_mean", ]