Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CookGPT

English README

一个给独居开发者用的一人食厨房 Skill。

它会从可信菜谱里找方案,再按你的库存、厨具、口味、预算和时间,整理成一份能照着做的下厨计划。不是灵感菜单,也不是那种看完还是不知道先切葱还是先热锅的菜谱摘要。

为什么会有这个东西

我做 CookGPT 的原因很简单:写了一天代码之后,决定吃什么真的很烦。

外卖方便,但连续吃几天,身体会抗议。自己做饭也不是特别难,麻烦的是前面那一串小决策:买什么、买多少、家里还有什么、这个菜谱是不是靠谱、一个人吃要减到多少量、锅够不够、会不会剩半颗洋葱在冰箱里慢慢变成考古现场。

CookGPT 想把这些琐碎决策收起来一点。

你给它一个厨房档案和当前库存,它帮你从可信来源里找菜谱,缩放成一人份,写出买菜清单、备菜顺序、火候提示和库存更新建议。你照着做就行。

适合谁

  • 独自生活的 Vibe Coder、开发者、设计师和创作者
  • 独立创业者、OPC、小团队创始人
  • 想减少外卖,但又不想把下厨变成第二份工作的人
  • 刚开始做饭的新手
  • 有减脂、增肌、控糖、忌口或过敏需求的人
  • 偶尔想把一人食扩展成两人餐、家庭餐或一顿稍微有仪式感的晚饭的人

这个项目不打算把你训练成大厨。它更像一个厨房里的执行助理:少问你一点,少浪费一点,让你更容易吃上一顿正常饭。

它会做什么

从可信菜谱开始

CookGPT 默认不编菜谱。它会优先用这些来源:

  • 本地缓存的已验证菜谱
  • 你的 Obsidian 菜谱笔记
  • 可信 YouTube 创作者
  • 有结构化食材和步骤的菜谱网页
  • 你明确加入 trusted sources 的其他来源

如果一个来源只有图片、评论、模糊描述,或者缺少食材和步骤,它不应该拿来当正式菜谱用。

把菜谱改成能下手的版本

很多菜谱的问题不是不好吃,是不好执行。

CookGPT 会把菜谱拆成:

  • 一人份食材表
  • 需要提前处理的东西
  • 开火后的步骤顺序
  • 每一步的火候
  • 判断熟没熟的提示
  • 买菜清单
  • Mermaid 流程图

如果是一顿多菜,它也可以排时间线。先做能放的,最后做海鲜、牛排、意面这种容易翻车的东西。

管一点库存

你可以告诉它:

我买了 6 个鸡蛋、2 个番茄、一袋菠菜。

或者:

今晚用了 2 个鸡蛋和 1 个番茄。

它会维护一个简单库存。之后推荐菜谱时,优先考虑你已经有的东西。这样下厨不会每次都从零开始买,也不容易把半袋食材忘在冰箱里。

处理 YouTube 菜谱

很多好菜谱在视频里,但视频不适合做饭时反复拖进度条。

CookGPT 可以用可信 YouTube 创作者的视频字幕和元数据,提取食材、顺序、火候和关键动作。默认只下载字幕和元数据,不下载视频或音频。

如果字幕太乱,或者缺少足够信息,它应该拒绝整理,而不是补一堆看起来合理的步骤。

按你的厨房条件改

如果你只有电饭锅、一口锅、没有烤箱,或者今天只想少洗碗,都可以写进 profile。

健康目标也可以写进去,比如减脂、增肌、高蛋白、少油、少盐、控糖。CookGPT 会按这些条件筛选和缩放菜谱。

它不是医生,也不是营养师。它做的是日常饮食执行,不做医疗判断。

一个例子

晚上 8:30,一个 Vibe Coder 关掉编辑器。今天写了太多 prompt,也看了太多报错。现在的问题很朴素:饿了。

他对 CookGPT 说:

我现在冰箱里有鸡蛋、番茄、菠菜、冷冻虾仁和米饭。
今晚想吃一顿一人食,高蛋白,少油,30 分钟内完成,最好少洗锅。

CookGPT 应该给他的不是一句 "做个番茄虾仁蛋饭吧"。

更合理的输出会像这样:

  • 选一个有来源的菜谱或做法基础
  • 把原菜谱缩成一人份
  • 标出用掉哪些库存,还缺什么
  • 安排顺序:先解冻虾仁,再洗菜切番茄,最后打蛋
  • 写清楚开火后的节奏:番茄先炒出汁,虾仁变色就停,蛋不要炒老
  • 给出火候:中火炒番茄,小火收汁,虾仁短时间加热
  • 生成一个流程图
  • 最后提醒库存更新:鸡蛋 -2、番茄 -1、虾仁 -100g、菠菜 -一把

重点不是菜名。重点是把 "我现在该怎么吃饭" 变成一套能执行的动作。

初始化

个人数据不放在 skill 目录里。先创建用户数据目录:

mkdir -p ~/.codex/user-data/solo-kitchen/

然后把模板复制过去:

cp user-data-template/* ~/.codex/user-data/solo-kitchen/

模板文件包括:

user-data-template/
├── profile.json
├── inventory.json
├── trusted_sources.json
├── obsidian_sources.json
├── obsidian_recipes_index.json
└── recipe_knowledge.jsonl

profile.json

这是你的厨房档案。至少建议填这些:

  • 你在哪个城市或区域买菜
  • 常用买菜渠道
  • 默认一餐预算
  • 忌口、过敏原、宗教或医疗限制
  • 喜欢和不喜欢的口味
  • 能吃辣到什么程度
  • 有哪些厨具
  • 有哪些常备调料
  • 一顿饭最多愿意花多久
  • 能接受多复杂的步骤
  • 洗锅洗碗的忍耐度
  • 健康目标,比如减脂、增肌、控糖

默认是一人一餐:

{
  "default_serving": {
    "people": 1,
    "meals": 1
  }
}

inventory.json

这是库存。刚开始可以是空的:

{
  "version": 1,
  "items": []
}

不用一次性录完。你可以边买边说,边做边扣。

trusted_sources.json

这里放你信任的菜谱来源。

可以是 YouTube 频道、菜谱网站、书籍、自己的笔记,或者其他来源。CookGPT 会优先从这些地方找菜谱。

如果某个网站你不想用,也可以放进排除列表:

{
  "name": "example source",
  "url_pattern": "example.com",
  "reason": "不作为可信菜谱来源"
}

obsidian_sources.json

如果你有自己的 Obsidian 菜谱库,可以在这里配置 vault 和菜谱目录。

默认策略是只读。CookGPT 不应该自动写回你的 Obsidian,除非你明确说保存、同步或更新。

recipe_knowledge.jsonl

这是本地菜谱缓存。

它适合存已经验证过的菜谱摘要,比如来源、URL、核验日期、食材、做法摘要、火候提示和一人份适配备注。

不要把整篇菜谱原文塞进去。也不要把模型现场编的菜谱塞进去。

可以这样问

用 solo-kitchen 根据我的库存推荐一顿一人食,给我买菜清单和操作流程图。
我今天只有 30 分钟,想吃高蛋白、少洗锅的一人食,根据库存给我一个方案。
参考这个 YouTube 菜谱,帮我整理成一人食操作手册。

这个项目的边界

CookGPT 有几条硬规则:

  • 不凭空编菜谱
  • 优先用可信来源
  • 默认一人一餐
  • 先看真实库存
  • 用户数据放在 skill 文件夹之外
  • 不默认做周计划、剩菜计划或过期提醒
  • 不替代医生、营养师或医疗建议

如果没有足够来源,它应该停下来问你要不要扩大来源范围,而不是假装自己知道。

仓库结构

.
├── skill/
│   ├── SKILL.md
│   ├── agents/
│   ├── references/
│   └── scripts/
├── user-data-template/
│   ├── profile.json
│   ├── inventory.json
│   ├── trusted_sources.json
│   ├── obsidian_sources.json
│   ├── obsidian_recipes_index.json
│   └── recipe_knowledge.jsonl
├── LICENSE
├── README.md
└── README.en.md

License

MIT License. See LICENSE.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages