本项目是一款专为大型机构/公司食堂设计的智能排餐系统。它将传统的、极其琐碎的“排菜单”工作,从手工 Excel 录入进化为“一键生成、智能平衡、自动导出”的数字化流程。
系统通过算法自动规避菜品连续重复,智能搭配大荤、小荤与素菜,并深入分析 1700+ 道菜品的口味属性,确保菜单的丰富性与科学性。
- 模组化规划:支持
MENU_BLUEPRINT配置,精准控制每日各坑位的菜品属性(如:周一 7元大荤必须是海鲜)。 - 智能权重分配:基于历史使用频率(Frequency)进行加权算法选菜,确保“热门菜”与“冷门菜”的科学配比。
- 自动对齐逻辑:全自动处理周一至周日的日期对齐,支持快捷键选择“下周”或“隔周”。
- Horizontal Stream (水平流):子分类采用左右横向滚动,极大地节省了垂直空间,移动端单手操作体验极佳。
- Compact View (紧凑模式):默认隐藏详细标签,点击即点亮,实现高信息密度的交互体验。
- 分类折叠:支持各大类的一键收起/展开,快速定位所需分类。
- 秒级替换:在菜单预览页点击任意菜品,即可在 1700+ 菜库中进行模糊提示搜索并一键替换。
- 无感新增:支持在搜索不到时“原地创建”新菜品,系统会自动判断荤素及肉类并存入库。
- 防重复机制:严格的重名检查,确保数据纯正。
- 全景展示菜品总数、可用状态及历史方案分布。
- 离线安全:页面底部集成“菜库全量备份”功能,一键导出 .xlsx 文件进行离线核对。
本系统的生成引擎遵循“模组为基、约束为王、概率加权”的原则:
为了保证菜单的平衡性且 100% 生成成功,系统采用逐级降级策略:
- Level 1 (严格匹配):符合蓝图定义的子类 (如: 海鲜) + 21天避重限制 + 同日食材规避。
- Level 2 (降级匹配):如果 Level 1 选不到菜,则撤销“同日食材规避”,保留子类一致。
- Level 3 (兜底逻辑):如果该子类无可用菜,则撤销子类限制,在所属价格大类下随机选取(确保方案不报错)。
- 公式:
选取概率 ∝ (历史使用频率 + 1) - 效果:系统会自动学习用户的偏好。历史菜单中出现次数越多的“热门高频菜”,在生成新菜单时被选中的几率越大,越贴近真实厨房运作。
- 21天隔离期:同一道菜在三周内不会重复出现。
- 食材互斥:当日午餐若有“牛腩”,则午晚餐全天的选菜池将自动剔除所有以“牛”为主料的菜品。
- Segmented Toggle:针对手机端设计的餐次切换器,单手滑动即可切换早餐/正餐。
- Interactive Cards:生成页面的日期选择器进化为“一站式交互卡片”,点击预览框即可调出中文日历,布局极简。
- Glassmorphism Header:半透明毛玻璃效果的导航头,提升视觉档次感。
- 后端: Python 3.8+ / Flask (轻量级 Web 框架)
- 数据库: PostgreSQL (已完成从 SQLite 的平滑迁移,支持高并发查询)
- 前端: 原生 JS + Vanilla CSS (极致响应速度) / Flatpickr (已完成周一首发及全面汉化)
- 数据处理: Pandas / Openpyxl (处理 Excel 复杂逻辑)
menu_generator/
├── app.py # Web 应用 API 与路由控制
├── database.py # PostgreSQL 连接池与 DB 抽象层
├── menu_generator.py # v3.0 蓝图驱动生成算法
├── templates/ # HTML 模板 (极简主义设计)
├── utils/ # 生产力工具 (包含 10 轮数据整理脚本)
├── assets/ # 系统资产
├── data/ # 业务配置与映射字典
├── output/ # 每日 Excel 导出暂存
└── archive/ # 历史历史版本备份
我们致力于打造一个**“不仅是工具,更是一个懂厨师长、懂员工胃口的智能主厨”**。未来的版本将引入更深层级的口味动力学(Flavor Dynamics),实现自动屏蔽“过咸”、“过辣”的一天,让食堂管理彻底进入智能数字化时代。
空管食堂菜单生成系统
让排菜更简单,让饮食更健康