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>
179 lines
9.5 KiB
Bash
179 lines
9.5 KiB
Bash
# ==============================================================================
|
||
# NeoZQYY Monorepo 根 .env — 公共配置层
|
||
# ==============================================================================
|
||
# 后端 config.py 从此文件加载公共参数
|
||
# 优先级:根 .env < 应用 .env.local < 环境变量 < CLI 参数
|
||
# 敏感值禁止提交;本文件已在 .gitignore 中排除
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 数据库公共连接参数(后端 + ETL 共用同一 PostgreSQL 实例)
|
||
# ------------------------------------------------------------------------------
|
||
DB_HOST=100.64.0.4
|
||
DB_PORT=5432
|
||
DB_USER=local-Python
|
||
DB_PASSWORD=Neo-local-1991125
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 数据库名称
|
||
# CHANGE 2026-02-15 | 默认指向测试库,避免开发时误操作生产数据
|
||
# CHANGE 2026-02-19 | 移除 PG_NAME(未被代码引用,仅 .env.template 分离式配置预留)
|
||
#
|
||
# 数据库清单:
|
||
# etl_feiqiu — ETL 流程(飞球连接器),正式环境
|
||
# test_etl_feiqiu — ETL 流程(飞球连接器),开发/测试环境
|
||
# zqyy_app — 小程序业务库,正式环境
|
||
# test_zqyy_app — 小程序业务库,开发/测试环境
|
||
# ------------------------------------------------------------------------------
|
||
APP_DB_NAME=test_zqyy_app
|
||
ETL_DB_NAME=test_etl_feiqiu
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 组合式 DSN(各子系统 / 脚本需要完整连接串时使用)
|
||
# 格式:postgresql://user:password@host:port/dbname
|
||
# CHANGE 2026-02-16 | 新增,供 dataflow_analyzer 等跨模块脚本直接读取
|
||
# CHANGE 2026-02-19 | 多库 DSN:PG_DSN(ETL 库,向后兼容)+ APP_DB_DSN(业务库)
|
||
# ------------------------------------------------------------------------------
|
||
PG_DSN=postgresql://local-Python:Neo-local-1991125@100.64.0.4:5432/test_etl_feiqiu
|
||
APP_DB_DSN=postgresql://local-Python:Neo-local-1991125@100.64.0.4:5432/test_zqyy_app
|
||
|
||
# CHANGE 2026-02-21 | 显式定义测试库 DSN,运维脚本/集成测试优先使用
|
||
TEST_DB_DSN=postgresql://local-Python:Neo-local-1991125@100.64.0.4:5432/test_etl_feiqiu
|
||
TEST_APP_DB_DSN=postgresql://local-Python:Neo-local-1991125@100.64.0.4:5432/test_zqyy_app
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 通用
|
||
# ------------------------------------------------------------------------------
|
||
TIMEZONE=Asia/Shanghai
|
||
LOG_LEVEL=INFO
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 营业日切点(统计日/周/月分割小时,默认 8 即 08:00)
|
||
# ------------------------------------------------------------------------------
|
||
BUSINESS_DAY_START_HOUR=8
|
||
|
||
# ==============================================================================
|
||
# 统一输出路径配置(export/ 目录)
|
||
# ==============================================================================
|
||
# CHANGE 2026-02-19 | 统一规划 export 目录结构,所有输出路径集中管理
|
||
#
|
||
# 目录总览:
|
||
# export/
|
||
# ├── ETL-Connectors/feiqiu/
|
||
# │ ├── JSON/ — API 原始 JSON 导出(ODS 抓取落盘)
|
||
# │ ├── LOGS/ — ETL 运行日志(每次 run 一个 .log)
|
||
# │ └── REPORTS/ — ETL 质检/完整性报告(JSON 格式)
|
||
# ├── SYSTEM/
|
||
# │ ├── LOGS/ — 系统级运维日志
|
||
# │ ├── REPORTS/
|
||
# │ │ ├── dataflow_analysis/ — 数据流结构分析报告(Markdown)
|
||
# │ │ ├── field_audit/ — 字段排查报告
|
||
# │ │ └── full_dataflow_doc/ — 全链路数据流文档
|
||
# │ └── CACHE/
|
||
# │ └── api_samples/ — API 样本缓存(gen_full_dataflow_doc 使用)
|
||
# └── BACKEND/
|
||
# └── LOGS/ — 后端结构化日志(预留)
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# ETL Connector(飞球)输出路径
|
||
# ------------------------------------------------------------------------------
|
||
# JSON 导出根目录(ODS 抓取落盘,按 TASK_CODE/run_id 自动建子目录)
|
||
EXPORT_ROOT=C:/Project/NeoZQYY/export/ETL-Connectors/feiqiu/JSON
|
||
# ETL 运行日志根目录
|
||
LOG_ROOT=C:/Project/NeoZQYY/export/ETL-Connectors/feiqiu/LOGS
|
||
# 在线抓取 JSON 输出根目录(FETCH_ONLY 模式使用)
|
||
FETCH_ROOT=C:/Project/NeoZQYY/export/ETL-Connectors/feiqiu/JSON
|
||
# ETL 质检/完整性报告输出目录
|
||
ETL_REPORT_ROOT=C:/Project/NeoZQYY/export/ETL-Connectors/feiqiu/REPORTS
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 系统级输出路径
|
||
# ------------------------------------------------------------------------------
|
||
# 数据流结构分析报告输出目录(gen_dataflow_report.py / analyze_dataflow.py)
|
||
SYSTEM_ANALYZE_ROOT=C:/Project/NeoZQYY/export/SYSTEM/REPORTS/dataflow_analysis
|
||
# 字段排查报告输出目录(field_audit.py)
|
||
FIELD_AUDIT_ROOT=C:/Project/NeoZQYY/export/SYSTEM/REPORTS/field_audit
|
||
# 全链路数据流文档输出目录(gen_full_dataflow_doc.py)
|
||
FULL_DATAFLOW_DOC_ROOT=C:/Project/NeoZQYY/export/SYSTEM/REPORTS/full_dataflow_doc
|
||
# API 样本缓存目录(gen_full_dataflow_doc.py 的 24h 缓存)
|
||
API_SAMPLE_CACHE_ROOT=C:/Project/NeoZQYY/export/SYSTEM/CACHE/api_samples
|
||
# 系统级运维日志目录
|
||
SYSTEM_LOG_ROOT=C:/Project/NeoZQYY/export/SYSTEM/LOGS
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 后端输出路径(预留)
|
||
# ------------------------------------------------------------------------------
|
||
# 后端结构化日志目录
|
||
BACKEND_LOG_ROOT=C:/Project/NeoZQYY/export/BACKEND/LOGS
|
||
# 用户头像存储目录
|
||
AVATAR_EXPORT_PATH=C:/Project/NeoZQYY/export/BACKEND/avatars
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# DashScope AI 配置(百炼 Application API)
|
||
# CHANGE 2026-02-23 | 从 PRD 文档迁移至 .env,禁止在文档中明文存放
|
||
# CHANGE P14 | BAILIAN_* → DASHSCOPE_*;移除 BASE_URL/MODEL(Application API 不需要)
|
||
# ------------------------------------------------------------------------------
|
||
DASHSCOPE_API_KEY=sk-6def29cab3474cc797e52b82a46a5dba
|
||
DASHSCOPE_WORKSPACE_ID=
|
||
|
||
# 8 个百炼 AI 应用 ID(从百炼平台获取,通过 app_id 指定应用)
|
||
# 应用 1:通用对话 | 应用 2:财务洞察 | 应用 3:客户数据维客线索分析
|
||
# 应用 4:关系分析/任务建议 | 应用 5:话术参考 | 应用 6:备注分析
|
||
# 应用 7:客户分析 | 应用 8:维客线索整理
|
||
DASHSCOPE_APP_ID_1_CHAT=979dabe6f22a43989632b8c662cac97c
|
||
DASHSCOPE_APP_ID_2_FINANCE=1dcdb5f39c3040b6af8ef79215b9b051
|
||
DASHSCOPE_APP_ID_3_CLUE=708bf45439cd48c7ab9a514d03482890
|
||
DASHSCOPE_APP_ID_4_ANALYSIS=ea7b1c374f574b9a925a2fb5789a9b90
|
||
DASHSCOPE_APP_ID_5_TACTICS=46f54e6053df4bb0b83be29366025cf6
|
||
DASHSCOPE_APP_ID_6_NOTE=025bb344146b4e4e8be30c444adab3b4
|
||
DASHSCOPE_APP_ID_7_CUSTOMER=df35e06991b24d49971c03c6428a9c87
|
||
DASHSCOPE_APP_ID_8_CONSOLIDATE=407dfb89283b4196934eec5fefe3ebc2
|
||
# 应用 2a:区域财务洞察(64 组合 · area != 'all' · 板块 C/E 重分工 · 新增 H7 业态特征硬约束)
|
||
DASHSCOPE_APP_ID_2A_FINANCE_AREA=0ae965029bc54706bcff44f511ac716b
|
||
# 应用 9:Session 日志摘要生成(Kiro agent_on_stop + batch_generate_summaries 使用)
|
||
DASHSCOPE_APP_ID_SUMMARY=e0cf8913b1ee4a4eb9464cc1ee0bf300
|
||
|
||
# 内部 API 认证 token(ETL 等内部服务调用 /api/internal/* 端点时使用)
|
||
INTERNAL_API_TOKEN=C4Rs45fEoMC3u2PR4-jvakl8SBYpU9kV7JFiTj-TJAc
|
||
|
||
# 后端 API 地址(ETL 触发 AI 事件时使用,如 http://localhost:8000)
|
||
BACKEND_API_URL=http://localhost:8000
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 微信小程序
|
||
# CHANGE 2026-02-27 | 开发模式启用 mock 登录,跳过微信 code2Session
|
||
# 生产环境需设置真实 WX_APPID / WX_SECRET 并关闭 WX_DEV_MODE
|
||
# ------------------------------------------------------------------------------
|
||
WX_APPID=wx7c07793d82732921
|
||
WX_SECRET=wx7c07793d82732921
|
||
WX_DEV_MODE=true
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 管道限流配置(RateLimiter 请求间隔)
|
||
# CHANGE 2026-03-06 | 从默认 5-20s 降至 0.1-2s,ODS_PAYMENT 46请求从582s→~48s
|
||
# ------------------------------------------------------------------------------
|
||
PIPELINE_RATE_MIN=0.1
|
||
PIPELINE_RATE_MAX=2.0
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# 后端运维面板路径配置
|
||
# CHANGE 2026-03-06 | 显式锁定,避免 __file__ 推算在不同部署环境指向错误路径
|
||
# ------------------------------------------------------------------------------
|
||
OPS_SERVER_BASE=C:/Project/NeoZQYY
|
||
ETL_PROJECT_PATH=C:/Project/NeoZQYY/apps/etl/connectors/feiqiu
|
||
ETL_PYTHON_EXECUTABLE=C:/Project/NeoZQYY/.venv/Scripts/python.exe
|
||
|
||
# === Dev Trace Log ===
|
||
# 全链路请求追踪日志(仅开发/测试环境使用,生产环境关闭)
|
||
DEV_TRACE_ENABLED=true
|
||
DEV_TRACE_LOG_DIR=export/dev-trace-logs
|
||
DEV_TRACE_LOG_RETENTION_DAYS=7
|
||
DEV_TRACE_LOG_SQL=true
|
||
DEV_TRACE_LOG_PARAMS=true
|
||
|
||
# ------------------------------------------------------------------------------
|
||
# DWS 工资计算配置
|
||
# CHANGE 2026-03-27 | 允许非月初结算期运行工资计算任务(临时开关)
|
||
# 正常调度只在月初 1-5 号跑上月工资,此开关允许月中手动跑当月工资
|
||
# ------------------------------------------------------------------------------
|
||
DWS_SALARY_ALLOW_OUT_OF_CYCLE=true
|