该产品定位为“餐饮数据分析专家系统”,背景是餐饮门店数据(菜品、利润、库存、指标波动等)分散且分析门槛高,依赖人工出报表效率低。目标是让经营人员用自然语言直接发起分析,系统自动生成专业提示词并调用数据接口获取结构化结果,再通过多模型分层分析输出可读的 Markdown 报告。核心模块包括:专家模式(提示词选择/自动生成、SSE实时日志、深度报告)、助理模式(多轮对话、历史保存、图片上传分析)、提示词库管理(prompt.json)、报告下载与展示。典型流程:前端选择/生成提示词→后端按ID加载prompt→调用报表API取数并做空结果重试→按菜品整合并分块并行分析→汇总生成报告→前端展示与保存对话
整体采用“前端模板+静态JS + 后端API”的分层结构:routes.py 提供MOBO入口与页面路由;expert_api.py 提供专家模式接口与SSE推送;process_request.py 负责prompt装配与外部报表API调用(含空charts双层重试);agent_system.py 负责数据按菜品整合、分块(默认每块5个菜品)并行分析(asyncio.gather),再用V3总结、R1输出宏观报告并落盘为Markdown;助理侧在 app.py 中实现对话/图片上传(base64)与历史存储。我负责专家链路的核心打通(prompt→取数→分块分析→报告生成)、SSE日志实时回传与前端EventSource联调,以及“空charts”重试兜底与编码/循环导入稳定性治理;结果上实现了最多7次重试保障取数成功率、前端最多保存50条历史对话、对话上下文截断10条控制成本、日志显示最多10000字符防卡顿。主要难点在于:SSE连接易断与消息格式不稳(用心跳+重连与标准化返回结构解决)、中文编码与stdout捕获(统一UTF-8与拦截输出流)、循环导入(延迟导入/蓝图注册时机调整)、以及模型返回JSON/Markdown混杂(做JSON清洗与Markdown渲染/代码高亮兜底)。