核心用法
recipe-to-list 是一个打通视觉识别、网页抓取与任务管理的食谱工作流工具。用户可通过拍照或搜索食谱网页两种方式输入,系统自动提取食材清单,智能比对现有Todoist购物列表后增量更新,同时将食谱永久保存至本地知识库 recipes/。
技术路径:
- 照片模式:调用 Gemini 2.0 Flash 视觉模型直接解析食材清单
- 网页模式:先
web_search定位食谱 →web_fetch抓取文本 → Gemini 提取结构化数据 - 清单管理:拉取现有 Shopping 项目,通过保守的同义词映射(如 coriander↔cilantro)合并重复项,相同单位时累加数量
- 智能过滤:默认跳过盐、胡椒等 pantry staples,避免清单冗余
显著优点:
1. 端到端自动化:从图像/URL 直达待办事项,无需手动转录
2. 去重逻辑严谨:重叠检测 + 同义词归一化,防止购物车爆炸
3. 知识沉淀:自动写入 recipes/index.md,形成可检索的个人食谱库
4. 安全可控:--dry-run 预览、--no-save 跳过归档,操作可回溯
潜在缺点与局限性:
- 依赖 Gemini 视觉 OCR 质量,复杂排版或手写食谱可能解析失败
- 单位换算未自动化("2 cups" vs "500ml" 视为不同项),需人工复核
- 保守的同义词规则可能漏掉地域变体(如 aubergine/eggplant 已覆盖,但 scallion/spring onion 可能未收录)
- 需自行维护
GEMINI_API_KEY和TODOIST_API_TOKEN,Token 管理成本由用户承担
适合人群:
- 每周规划餐饮、依赖Todoist管理生活的效率型用户
- 希望将散落食谱集中归档的烹饪爱好者
- 能接受CLI工具、具备基础环境变量配置能力的用户
常规风险:
- API 调用成本:Gemini Flash 按量计费,高频使用需关注账单
- 隐私泄露:食谱照片可能包含地理位置EXIF或桌面敏感信息,建议上传前清理元数据
- 任务污染:若
--no-overlap-check误用或同义词规则误判,可能导致购物清单重复或遗漏关键食材