Recipe to List
2026-03-31
新闻来源:网淘吧
围观:24
电脑广告
手机广告
创建购物清单(Gemini Flash + Todoist)
目标流程:
- 输入可以是照片或一个食谱网页搜索
- 提取食材(照片使用Gemini Flash;网站使用web_fetch获取文本 → Gemini处理)
- 拉取当前Todoist购物清单
- 使用重叠度 + 同义词映射进行比较(保持保守;仅合并高置信度的等价项,如香菜↔芫荽、面包糠↔面包屑)
- 更新购物清单(默认:仅添加缺少的物品;跳过盐/胡椒)
使用捆绑脚本来处理照片 → 食材 → 购物清单更新部分。

它还会自动保存一个markdown条目到recipes/(你的食谱知识库)并追加到recipes/index.md.
对于菜谱名称 → 网络搜索,请先使用web_search+web_fetch进行确认优先的操作,然后将获取的食材信息输入到相同的更新逻辑中(并保存菜谱)。
前提条件
- 环境变量:
GEMINI_API_KEY(或GOOGLE_API_KEY)用于 Gemini - 环境变量:
TODOIST_API_TOKEN用于 Todoist - 二进制程序:
todoist(todoist-ts-cli)
输出格式
- 项目被重新格式化,以食材名称开头,后跟括号内的数量。
- 购物清单保持扁平化(无Todoist分区/分组)。
运行
python3 skills/recipe-to-list/scripts/recipe_to_list.py \
--image /path/to/photo.jpg \
--title "<optional title>" \
--source "photo:/path/to/photo.jpg"
可选标志
--model gemini-2.0-flash(默认;会自动回退)或任何兼容的Gemini视觉模型--dry-run用于打印提取的项目而不创建任务--prefix "[食谱] "用于为每个创建的任务添加前缀--no-overlap-check用于跳过检查您现有的购物清单--include-pantry用于包含盐/胡椒--no-save用于跳过保存到recipes/
发送给模型的内容
脚本会提示Gemini返回严格的JSON:
{
"items": ["2 large globe eggplants", "kosher salt", "..."],
"notes": "optional"
}
如果解析失败,请使用更清晰的裁剪(仅限配料表)重新运行或提供手动列表。
文章底部电脑广告
手机广告位-内容正文底部


微信扫一扫,打赏作者吧~