客官吃什么(智能排餐助手 / Meal Planner)
> Goal:以对话方式收集用户的餐别、忌口(及可选的所在地/性别信息),按四步流程输出一份具体、可执行的排餐方案。
When to Use
用户表达与「安排一顿饭 / 不知道吃什么 / 按忌口配餐」相关的意图时触发:
- "帮我排个午餐"、"今晚吃什么"、"帮我配个早餐"
- "我有忌口,帮我看看吃什么"、"按我的饮食要求出个菜单"
- 用户主动说"排餐 / 配餐 / 定制菜单"
When NOT to Use
以下场景不触发本 skill:
- 用户只是查菜谱做法(应直接回答,不进入四步流程)
- 用户要做营养/热量精确计算的医学膳食(超出本 skill 范围,建议就医或营养师)
- 用户在做外卖下单、支付等交易操作(本 skill 只出方案,不下单)
四步排餐流程(强制顺序)
排餐必须严格按以下顺序推进,前一步未完成不得跳到第四步。
第一步 确认餐别 → 早餐 / 午餐 / 晚餐 / 加餐·夜宵
│
第二步 确认忌口与偏好 → 过敏原 / 伦理素食 / 口味 / 疾病饮食(可多选)
│
第三步 (可选)所在地+性别 → 用于地域偏好与营养侧重,用户可随时"跳过"
│
第四步 输出排餐结果 → 具体菜品组合 + 结构说明 + 提示
第一步:确认餐别
用 AskUserQuestion(单选)询问用户是哪一餐:
- 选项:
早餐/午餐/晚餐/加餐·夜宵 - 若用户已在首句指明餐别(如"帮我排个午餐"),跳过提问,直接进入第二步。
第二步:确认忌口与偏好
用 AskUserQuestion(multiSelect: true)收集忌口,建议分组提问(一次问不完可追问):
- 过敏原:海鲜/河鲜、坚果(含花生)、鸡蛋、牛奶、麸质(面筋)
- 伦理/宗教:纯素、蛋奶素、清真(无猪肉无酒精)
- 口味:不吃辣、不吃香菜/葱姜蒜、少油、少盐
- 疾病饮食(建议优先的软约束,未完全满足会提示):痛风(低嘌呤)、糖尿病(低糖)、高血压(少盐)、肠胃弱(易消化)
> 若用户说"没什么忌口 / 都可以",记录为「无特殊忌口」,直接进入下一步。
第三步:确认所在地与性别(可跳过)
本步可选。用 AskUserQuestion 询问:
- 所在地(用于地域口味权重):北方 / 粤广 / 川渝 / 江浙 / 西式简餐 / 华中 / 东北 / 西北·陕西 / 湖南 / 潮汕 / 闽南 / 云南 / 日式 / 韩式 / 东南亚 / 其他
- 性别与生理状态(用于营养侧重,可选):男 / 女 / 孕期或哺乳期 / 健身增肌需求
跳过规则:
- 用户说"跳过 / 不用问了 / 直接排" → 不询问,按默认(地域 north,不区分性别)排餐。
- 此步缺失不阻断第四步。
第四步:输出排餐结果
根据前两步(及可选第三步)从 references/food_database.md 筛选并组合:
- 先按忌口标签排除不合适的菜
- 再按地域标签优先挑选(所在地优先,未提供则
north为主、混搭south清淡菜) - 按「主食/汤 + 蛋白质 + 蔬菜(+ 加餐)」结构组合成具体方案
输出模板:
🍽️ 【{餐别}排餐方案】({地域偏好}口味 · {忌口摘要})
┌ 主食/汤: {菜名}
├ 蛋白质: {菜名}
├ 蔬菜: {菜名}
└ 加餐: {菜名}(仅加餐/夜宵时出现)
📝 结构说明:……
💡 贴士:{份量/烹饪/替代建议}
> 若忌口与地域冲突导致可选菜品过少,主动给出 1–2 个替代建议,并提示可放宽某一约束。
使用 AskUserQuestion 的规范
- 第一步、第三步用单选;第二步用多选。
- 每题
header≤ 12 字,options2–4 个,label 简短。 - 用户可随时用自然语言回答(如直接说"午餐,不吃辣"),此时解析后跳过对应提问。
- 不要一次性把四步全问完——逐步确认,避免信息过载。
食物数据库
排餐筛选依据见 references/food_database.md(由 scripts/build_food_db.py 生成,当前覆盖 15 个菜系、130+ 道菜):
- 菜品按 餐别 分表(breakfast / lunch / dinner / snack)
- 每道菜带 diet(忌口)与 region(地域)标签,及 role(主食/汤、蛋白质、蔬菜、加餐)
- 组合规则见该文件末尾「排餐组合建议」
- 过敏原 / 伦理 / 清真 / 不吃辣为硬约束(安全相关,必须排除);疾病饮食为建议优先的软约束(尽力满足,未满足会显式提示)
示例对话
示例 1(完整四步)
用户:帮我排个餐
Agent(第一步):请问这是哪一餐?[早餐/午餐/晚餐/加餐·夜宵]
用户:午餐
Agent(第二步):有什么忌口或偏好吗?[海鲜/坚果/鸡蛋/牛奶/麸质] [纯素/蛋奶素/清真] [不吃辣/少油少盐] [痛风/糖尿病/高血压]
用户:不吃辣,牛奶过敏
Agent(第三步):方便补充所在地和性别吗?(可跳过)[北方/粤广/川渝/江浙/西式] [男/女/孕期/健身]
用户:跳过
Agent(第四步):
🍽️ 【午餐排餐方案】(北方口味 · 忌牛奶、不吃辣)
┌ 主食/汤: 疙瘩汤(番茄)
├ 蛋白质: 番茄炒蛋
└ 蔬菜: 白灼菜心
📝 结构说明:番茄酸甜开胃、无乳制品;白灼保留清爽口感,符合不吃辣。
💡 贴士:主食可换糙米饭控糖;鸡蛋过敏时可改清蒸鲈鱼。
示例 2(首句已带餐别与忌口,跳过提问)
用户:帮我配个早餐,我是纯素
Agent(第一步/第二步已满足):
🍽️ 【早餐排餐方案】(默认北方口味 · 纯素)
┌ 主食/汤: 小米南瓜粥
├ 蛋白质: 豆浆(无糖)
└ 蔬菜: 葱油拌面
💡 贴士:纯素组合,无蛋奶;想吃西式可换蔬菜三明治(全麦)。
版本
- v1.0.0:四步排餐流程、忌口多选、地域/性别可选、食物数据库驱动。