{% macro strategy(value, fallback='未分類策略') -%} {%- set labels = { 'product_pick': '選品攻擊', 'price_recommendation': '價格建議', 'price_adjustment': '價格調整', 'price_reduction': '降價攻擊', 'price_drop': '降價攻擊', 'discount_attack': '降價攻擊', 'price_increase': '漲價防守', 'margin_repair': '毛利修復', 'inventory_clearance': '庫存去化', 'competitor_response': '競品回應', 'competitor_check': '競品複核', 'promotion': '活動促銷', 'stockout': '缺貨處理', 'repricing': '價格重定', 'watch': '觀察', 'maintain': '維持價格', 'unknown': '未分類策略' } -%} {%- if value -%}{{ labels.get(value, value|replace('_', ' ')) }}{%- else -%}{{ fallback }}{%- endif -%} {%- endmacro %} {% macro status(value, fallback='未分類') -%} {%- set labels = { 'pending': '待處理', 'awaiting_review': '待審核', 'approved': '已核准', 'rejected': '已拒絕', 'rejected_quality': '品質拒絕', 'rejected_hallucination': '幻覺拒絕', 'rejected_duplicate': '重複拒絕', 'rejected_human': '人工拒絕', 'expired': '已過期', 'done': '已完成', 'completed': '已完成', 'running': '執行中', 'success': '成功', 'failed': '失敗', 'matched': '已比對', 'unmatched': '未比對', 'ok': '正常', 'cache_only': '只用快取', 'passed': '已通過', 'error': '錯誤', 'skipped': '已跳過', 'unknown': '未分類' } -%} {%- if value -%}{{ labels.get(value, value|replace('_', ' ')) }}{%- else -%}{{ fallback }}{%- endif -%} {%- endmacro %} {% macro verdict(value, fallback='未分類') -%} {%- set labels = { 'effective': '有效', 'success': '成功', 'positive': '正向', 'backfired': '反效果', 'negative': '負向', 'failed': '失敗', 'neutral': '中性', 'pending': '待回收', 'inconclusive': '尚未定論', 'no_data': '無資料', 'unknown': '未分類' } -%} {%- if value -%}{{ labels.get(value, value|replace('_', ' ')) }}{%- else -%}{{ fallback }}{%- endif -%} {%- endmacro %} {% macro plan_type(value, fallback='未分類計畫') -%} {%- set labels = { 'action_plan': '行動計畫', 'price_adjustment': '價格調整', 'product_pick': '選品攻擊', 'promotion_review': '活動複核', 'stockout_followup': '缺貨跟進', 'competitor_check': '競品複核', 'margin_repair': '毛利修復', 'strategy_review': '策略複核', 'quality_review': '品質複核' } -%} {%- if value -%}{{ labels.get(value, value|replace('_', ' ')) }}{%- else -%}{{ fallback }}{%- endif -%} {%- endmacro %} {% macro metric(value, fallback='未分類指標') -%} {%- set labels = { 'sales': '銷售', 'revenue': '業績', 'margin': '毛利', 'profit': '毛利', 'conversion': '轉換', 'price': '價格', 'stock': '庫存', 'orders': '訂單', 'unknown': '未分類指標' } -%} {%- if value -%}{{ labels.get(value, value|replace('_', ' ')) }}{%- else -%}{{ fallback }}{%- endif -%} {%- endmacro %} {% macro insight(value, fallback='未分類洞察') -%} {%- set labels = { 'product_pick': '選品攻擊', 'price_recommendation': '價格建議', 'competitor_price': '競品價格', 'sales_anomaly': '業績異常', 'budget_strategy': '預算策略', 'rag_feedback': '知識反饋', 'ppt_audit': 'PPT 審核', 'quality_issue': '品質問題', 'promotion': '活動促銷', 'market_signal': '市場訊號', 'strategy': '策略洞察', 'unknown': '未分類洞察' } -%} {%- if value -%}{{ labels.get(value, value|replace('_', ' ')) }}{%- else -%}{{ fallback }}{%- endif -%} {%- endmacro %} {% macro provider(value, fallback='未分類供應商') -%} {%- set labels = { 'gcp_ollama': '主力建議路徑', 'ollama_secondary': '備援建議路徑', 'ollama_111': '第三建議路徑', 'nim_via_elephant': '雲端加速備援', 'gemini': '雲端備援', 'claude': '雲端審查備援', 'nim': '快速雲端建議', 'openrouter': '外部備援路徑', 'unknown': '未分類供應商' } -%} {%- if value -%}{{ labels.get(value, value|replace('_', ' ')) }}{%- else -%}{{ fallback }}{%- endif -%} {%- endmacro %} {% macro caller(value, fallback='營運建議流程') -%} {%- set labels = { 'hermes_analyst': '業績分析建議', 'nemotron_dispatch': '深度策略判斷', 'openclaw_strategist': '作戰策略建議', 'openclaw': '作戰策略建議', 'code_review_openclaw': '程式品質審查', 'pchome_growth': 'PChome 成長判斷', 'pchome_growth_dashboard': 'PChome 成長儀表板', 'pchome_price_intelligence': 'PChome 價格情報', 'price_recommendation': '價格建議', 'sales_analysis': '業績分析', 'monthly_summary': '月度結構分析', 'ai_recommend': '銷售建議', 'telegram_bot': '通知助理', 'scheduler': '排程任務' } -%} {%- if value -%}{{ labels.get(value, fallback) }}{%- else -%}{{ fallback }}{%- endif -%} {%- endmacro %} {% macro source(value, fallback='未分類來源') -%} {%- set labels = { 'ai_insights': 'AI 知識庫', 'ai_learning_episodes': '學習片段', 'ai_price_recommendations': 'AI 價格建議', 'action_plans': '行動計畫', 'action_outcomes': '實際結果', 'competitor_match_attempts': '競品比對', 'competitor_price_history': '競品價格歷史', 'ppt_audit_results': 'PPT 審核結果' } -%} {%- if value -%}{{ labels.get(value, value|replace('_', ' ')) }}{%- else -%}{{ fallback }}{%- endif -%} {%- endmacro %}