recipe-to-list

🍳 AI食谱识别·智能购物清单管理

基于 Gemini Flash 视觉技术,自动从食谱图片或网页提取食材,智能去重同步至 Todoist,构建本地食谱库。

收藏
1.5k
安装
702
版本
v0.1.3
CLS 安全性认证2026-05-08
点击查看完整报告 >

使用说明

Recipe to List 是一款面向家庭烹饪爱好者和效率工具用户的智能自动化技能。它通过先进的 Gemini Flash 视觉模型,能够将用户拍摄的食谱照片或网页食谱自动解析为结构化的食材清单,并与 Todoist 任务管理工具深度集成,实现从"看到食谱"到"生成购物清单"的无缝衔接。

核心用法

该技能提供双模式输入:用户既可以直接上传食谱照片,也可以通过网页搜索获取食谱内容。系统首先利用 Gemini Flash 的视觉理解能力提取图片中的食材信息,或通过网页抓取解析文本内容。随后,技能会自动拉取用户 Todoist 账户中现有的 Shopping 项目清单,采用保守但精准的同义词映射规则(如将 coriander 与 cilantro 识别为同一食材)进行智能比对。系统默认跳过盐、胡椒等 pantry staples(pantry 常备品),仅在必要时添加缺失项。所有处理过的食谱还会自动以 Markdown 格式保存到工作区的 recipes/ 目录,并更新索引文件,构建可检索的个人食谱知识库。

显著优点

首先,多模态输入能力极大降低了使用门槛,无论是手写的纸质食谱、杂志剪报还是社交媒体上的美食图片,都能被准确识别。其次,智能去重机制有效避免了购物清单的冗余,通过单位匹配和语义相似度计算,系统能够合并"2个鸡蛋"和"2 large eggs"这样的同类项。第三,生态集成度高,与 Todoist 的双向同步确保了移动端的便携性,用户可以在厨房用电脑添加食材,在超市用手机查看清单。此外,本地知识库构建功能让用户的烹饪历史得以沉淀,形成可搜索、可复用的数字 cookbook。

潜在缺点与局限性

尽管功能强大,该技能仍存在一定局限。识别准确度高度依赖图片质量,模糊、光线不足或排版复杂的食谱图片可能导致提取失败。同义词映射规则目前保持保守策略,某些地域性食材命名差异(如 aubergine 与 eggplant)可能无法被正确合并,导致清单重复。此外,功能强依赖外部服务,需要稳定的 Google Gemini API 和 Todoist 服务可用,且 API 调用可能产生费用。对于没有 Todoist 账户的用户,该技能的核心价值会大打折扣。

适合的目标群体

这款技能特别适合经常尝试新菜谱的家庭主厨使用 Todoist 进行任务管理的效率爱好者,以及希望数字化管理食谱收藏的美食博主。对于每周需要制定采购计划的 meal prep 用户,它能显著减少手动输入清单的时间。同时,对于想要整理散落各处食谱、建立统一知识库的烹饪爱好者,自动化的本地存储功能提供了极大的便利。

使用风险与注意事项

从性能角度,由于需要调用 Gemini API 进行图像分析,处理速度受网络状况和 API 响应时间影响,大文件图片可能导致延迟。依赖项方面,用户需要预先安装 todoist CLI 工具并配置环境变量,增加了初次部署的复杂度。隐私方面,上传至 Gemini API 的食谱图片可能包含个人信息(如手写笔记中的联系方式),尽管 Google 有相应的数据使用政策,但敏感内容仍需谨慎。建议在首次使用时通过 --dry-run 模式预览提取结果,确认无误后再实际同步到 Todoist。

安全解读

核心用法

recipe-to-list 是一款桥接 AI 视觉识别与任务管理的效率工具,主打"拍照即购物清单"的极简体验。用户只需拍摄食谱照片或提供菜谱网页链接,系统即自动提取食材、比对现有购物清单、去重合并后推送至 Todoist。

双输入模式

  • 照片模式:调用 Google Gemini Flash 视觉模型解析食材清单,支持复杂排版的手写菜谱或印刷食谱
  • 网页模式:通过 web_search + web_fetch 抓取在线菜谱,同样经 Gemini 提取结构化食材数据

智能去重机制

  • 拉取现有 Todoist Shopping 项目,使用保守的同义词映射(如 coriander↔cilantro、panko↔breadcrumbs)检测重叠
  • 单位匹配时自动累加数量,避免重复购买
  • 默认跳过 pantry staples(盐、胡椒等常备调料),可选 --include-pantry 开启

知识库归档:每次处理自动保存 markdown 菜谱至 recipes/ 目录,并更新索引文件,形成个人食谱库

显著优点

1. 零第三方依赖:纯 Python 标准库实现,无 pip 安装负担,部署极简
2. 密钥安全管理:Gemini API Key 与 Todoist Token 均从环境变量读取,无硬编码风险

3. 模型自动降级:支持多模型候选,主模型失效时优雅切换

4. CLI 集成原生:调用官方 todoist CLI 工具,而非逆向 API,稳定性与合规性更佳

5. 可审计性强--dry-run 预览模式、--no-overlap-check 跳过比对等开关,便于调试

潜在缺点与局限

  • 外部服务强依赖:核心功能绑定 Google Gemini API 与 Todoist 生态,网络中断或服务变更将直接影响可用性
  • 视觉识别边界:复杂手写体、艺术化排版或非标准食材命名可能导致提取失败,需人工兜底
  • 同义词覆盖有限:保守的映射策略虽降低误合并风险,但也可能漏判部分地域性食材别名(如"芫荽"vs"香菜")
  • 无多平台适配:目前仅支持 Todoist,Notion/Apple Reminders 等用户需自行 fork 改造
  • 子进程耦合:依赖本地预装 todoist CLI,未内置纯 Python SDK 实现

适合人群

  • meal-prep 爱好者:批量规划每周菜谱,一键生成采购清单
  • Todoist 重度用户:希望在现有任务流中无缝嵌入食材管理
  • 食谱收藏控:需要系统化归档尝试过的菜谱,形成可搜索的个人数据库
  • 技术极简主义者:偏好轻量脚本工具,抗拒臃肿的 All-in-one 应用

常规风险

| 风险类型 | 说明 | 缓释措施 |
|---------|------|---------|
| API 密钥泄露 | 环境变量配置不当可能导致密钥暴露 | 使用 `.env` 文件并加入 `.gitignore`,定期检查 CI 日志 |
| 图片隐私 | 食谱照片可能包含地理位置等 EXIF 元数据 | 处理前调用 `--strip-exif` 或手动清理 |
| 食材识别误差 | AI 可能误读数量单位或混淆相似食材 | 关键食材启用 `--dry-run` 人工复核 |
| 购物清单污染 | 误操作可能导致大量错误任务创建 | 利用 Todoist 的批量删除功能,或启用 `--prefix` 标签便于过滤 |

recipe-to-list 内容

scripts文件夹
手动下载zip · 13.3 kB
recipe_to_list.pytext/plain
请选择文件