Files
Neo-ZQYY/apps/backend/app/ai/prompts/__init__.py
Neo 8638ecad2a feat(backend): 新增 app2a 区域财务洞察 APP 派生 · dispatcher 72 循环拆分
1. apps/backend/app/ai/prompts/app2a_finance_area_prompt.py (新建):
   - payload: 业态说明 + 区域占比 + 对比口径 + 核心 KPI + 优惠构成
     + 助教成本 + 区域级单位经济 + 按星期聚合 + 日粒度异常 + 行业基线
   - 5 个区域级辅助函数:_fetch_area_daily_series / _build_area_unit_economics
     / _aggregate_by_weekday_area / _detect_anomaly_days_area / _fetch_area_share
   - AREA_INDUSTRY_TRAITS 字典(7 业态 trait + peer 描述)
   - 复用 app2_finance_prompt 的 _build_coach_kpi / _build_discount_kpi 等公共函数

2. config.py: AIConfig 增加 app_id_2a_finance_area + DASHSCOPE_APP_ID_2A_FINANCE_AREA

3. schemas.py: CacheTypeEnum 增加 APP2A_FINANCE_AREA

4. dispatcher.py:
   - APP2A_AREA_OPTIONS 常量(8 业态 · area != 'all')
   - _handle_dws_completed 72 循环拆分:
     area='all' 走 app2_finance · 其他 8 业态走 app2a_finance_area
   - run_single_app 新增 elif 'app2a_finance_area' 分支(拒绝 area='all')

5. admin_ai.py: _SUPPORTED_APP_TYPES 加 'app2a_finance_area'

6. prompts/__init__.py: 导出 build_app2a_area_prompt

7. .env: 追加 DASHSCOPE_APP_ID_2A_FINANCE_AREA 百炼 APP ID

实测:7 项集成单测全通过(config/cache_type/router/prompts/dispatcher 常量/
4 业态 prompt 构建/拒绝 area=all)· 端到端实调 vip 组合返回 12 条高质量洞察
严格遵守 v1.2 system prompt 全部 7 项硬约束(H1-H7)。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 21:55:26 +08:00

29 lines
1.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""AI 应用 Prompt 拼装模块。
8 个百炼自定义应用的后端 prompt 拼装函数集中此处。
- 所有函数返回 str直接传给 dashscope.Application.call(prompt=...)
- system prompt 在百炼控制台配置,本模块只负责拼数据上下文 JSON
- 数据源走 data_fetchers / board_service集中真实业务数据
- 失败降级:数据获取失败时拼"_data_warnings"字段,不阻断 AI 调用
"""
from app.ai.prompts.app2_finance_prompt import build_prompt as build_app2_prompt
from app.ai.prompts.app2a_finance_area_prompt import build_prompt as build_app2a_area_prompt
from app.ai.prompts.app3_clue_prompt import build_prompt as build_app3_prompt
from app.ai.prompts.app4_analysis_prompt import build_prompt as build_app4_prompt
from app.ai.prompts.app5_tactics_prompt import build_prompt as build_app5_prompt
from app.ai.prompts.app6_note_prompt import build_prompt as build_app6_prompt
from app.ai.prompts.app7_customer_prompt import build_prompt as build_app7_prompt
from app.ai.prompts.app8_consolidation_prompt import build_prompt as build_app8_prompt
__all__ = [
"build_app2_prompt",
"build_app2a_area_prompt",
"build_app3_prompt",
"build_app4_prompt",
"build_app5_prompt",
"build_app6_prompt",
"build_app7_prompt",
"build_app8_prompt",
]