冰箱食材转一周菜单 (ym-fridge-weekly-menu)
按你冰箱里现有的食材排出一周菜单,核心是易坏优先消耗,每道菜都给替代食材,并标清要补什么、哪些能预处理,减少浪费。食物安全第一:疑似变质的食材建议丢弃,不给出"煮久点"这类不安全建议。
何时使用
- 用户说「冰箱里这些能做什么」「一周菜单」「今天吃什么」「不想浪费食材」「菜谱安排」「weekly menu」时
- 用户贴了一串食材,问"这些能吃到几号""怎么安排"时
- 用户想减少食材浪费、按现有库存做饭时
运行前提
- 依赖:无第三方依赖,纯文本处理
- 不联网、不上传任何数据
- 不读取任何本地文件,除非用户明确给出路径
输入契约
| 项 | 必需 | 说明 |
|---|---|---|
| 现有食材清单 | 必需 | 越具体越好,可含大概分量、状态(如"西红柿 3 个,有点软") |
| 人数 | 可选 | 默认 2 人,并在菜单中注明 |
| 忌口与过敏 | 可选 | 不吃辣、过敏物等;缺则不做限制,但过敏项一旦提供必须全程规避 |
| 厨艺水平 | 可选 | 新手/一般/熟练;默认一般,难度标注据此调整 |
| 可用厨具 | 可选 | 默认只有灶台与锅,不设计需烤箱/空气炸锅的菜;有特殊厨具则说明 |
| 每餐可投入时间 | 可选 | 默认晚餐 30 分钟内,时间紧则优先快手菜 |
缺失处理:
- 缺人数 → 按 2 人排并注明
- 缺厨具信息 → 默认只有灶台与锅,不设计需要烤箱/空气炸锅/电饭煲特殊功能的菜
- 未给分量 → 按"少量"假设,并在需补购清单里提示用户确认实际量
- 食材清单为空 → 给"清冰箱通用思路"(按分区消耗顺序 + 常备补购),不硬编具体菜单
- 食材疑似变质 → 直接建议丢弃该食材并说明原因,不进入任何菜单方案
执行步骤
-
食材分区与定级 — 按
references/storage-guide.md把食材分到五区:叶菜与易坏 / 根茎与耐放 / 肉蛋水产 / 主食与干货 / 调味品。标出每样的大致保鲜期与"优先消耗"等级。 -
易坏优先排菜 — 先排保鲜期最短的(叶菜、水产、豆腐、切开的果蔬),放进前 1~3 天;根茎、干货、冷冻品往后排。若某样在七天内放不住,明确建议"两天内吃完"或"可冷冻保存"。
-
生成菜单 — 七天 早/午/晚 或只排晚餐(按用户需求)。每餐给:菜名 + 主要食材 + 一句话做法。标注 耗时 / 难度(新手可做难度★~熟练★★★)/ 是否需要新买食材。
-
产出需补购清单 — 按"已有 → 建议补"列出,注明用途(哪天的哪道菜要用),如"鸡蛋:现有 4 个,建议补 6 个(周三早餐煎蛋、周四炒饭用)"。
-
批量预处理建议 — 哪些可一次处理分装:肉提前腌好分袋冷冻、米饭多煮一份做炒饭底、葱姜蒜切好冷藏。标在周末或某一天集中做。
-
给替代方案(核心) — 每道菜给 1~2 个可替换食材(查
references/substitution-library.md),应对"买不到/不爱吃/临时没了"。注明哪些替换会改变做法(如牛奶换豆浆影响甜品凝固)。 -
防浪费提醒 — 点出最容易放坏的 2~3 样,给优先消耗提醒与保存方法(如"香菜洗净擦干装瓶水养冰箱,能多放 3 天")。
-
安全与禁忌检查(硬约束,放在最后强制过一遍):
- 任一食材疑似变质(发黏、异味、长毛、变色、过期)→ 建议丢弃,绝不给出"多煮一会儿""削掉坏的部分就行"等不安全建议。
- 用户提到的过敏食材必须全程规避,并在菜单和补购清单中明确标注"已规避 XX"。
- 涉及疾病饮食(糖尿病、痛风等)→ 不给医疗/营养处方,建议咨询医生或营养师。
- 失败行为:不编造用户没说的食材;不提供精确营养计算(只给大致均衡建议);不下单买菜。
-
自检 — 易坏食材是不是都排在了保鲜期内?替代方案是不是都查了库?过敏项有没有漏?有没有把变质食材编进菜单?
输出格式
Markdown,套用 templates/menu-template.md,六节:
## 一、食材分区与消耗优先级
| 分区 | 食材 | 状态 | 优先消耗时间 |
| 叶菜易坏 | 菠菜、小白菜 | 新鲜 | 1~2 天内 |
## 二、一周菜单表
| 日期 | 餐次 | 菜名 | 主要食材 | 耗时 | 难度 |
| 周一 | 晚 | 番茄炒蛋 | 番茄、鸡蛋 | 15 分 | ★ |
## 三、需补购清单
| 食材 | 现有 | 建议补 | 用途 |
| 鸡蛋 | 4 个 | 6 个 | 周三早餐、周四炒饭 |
## 四、批量预处理建议
- 周日:鸡胸腌好分 3 袋冷冻;米饭多煮 1 份
## 五、替代方案表
| 菜名 | 原食材 | 可替换 | 是否改做法 |
| 番茄炒蛋 | 鸡蛋 | 鸭蛋 | 否 |
## 六、防浪费提醒
- 小白菜今明两天吃完;香菜水养延长保鲜
能力边界
- 不下单买菜、不比价、不查实时菜价
- 不做精确营养计算(只能给"蛋白质/蔬菜/主食大致搭配均衡"这类建议)
- 不替代医生或营养师的饮食处方;涉及疾病饮食只建议咨询专业人士
- 不保证每道菜一定合口味;不处理需要专业设备的菜(除非用户声明有该设备)
常见坑
- 把易坏食材排到周末 — 菠菜放七天必烂,却排进了周六的菜。正确做法是按保鲜期倒推,叶菜水产全进前三天。
- 变质食材硬编进菜单 — 用户写"豆腐有点酸",模型仍把它做成菜。硬约束:任何疑似变质一律建议丢弃,不出食用方案。
- 过敏项被漏掉 — 用户说"海鲜过敏",菜单里却出现虾仁。一旦提供过敏信息,必须全程规避并在输出显眼处标注。
- 替代写"随便换" — "没有青菜随便换点绿的"不算替代方案。替代必须给具体食材,且注明是否改变做法(见
references/substitution-library.md)。 - 补购清单不写用途 — 只列"买鸡蛋 6 个"但不知为何买。每条补购都要绑到具体某天的某道菜,方便用户判断必要性。
- 分量假设当确定 — 用户没给分量就按"少量"排,却写"够吃一周"。未给分量时必须标注为假设,并在补购清单提示用户确认实际量。
- 给出营养/医疗建议 — 用户提"我在控糖"就开食谱。越界:涉及疾病饮食只建议咨询医生,不给处方。
验收用例
- 正常:给 15 样食材、2 人、不吃辣 → 一周菜单 + 补购清单 + 替代方案,易坏食材排在前三天
- 边界 1:有过敏食材(如海鲜)→ 全程规避并明确提示,相关菜全部替换或删除
- 边界 2:食材只有 3 样 → 说明不足以排满一周,给 2~3 天方案 + 补购建议
- 失败:食材疑似变质(如"肉有异味")→ 建议丢弃,不给出食用方案
目录说明
references/— 食材分区与保鲜期对照表、替代食材对照库(按需加载)templates/— 一周菜单输出模板(可直接复制填充)
