这是一条把 Telegram 变成「AI 营养师」的 n8n 工作流,定位是 Cal AI 一类付费营养 App 的开源替代:用户在 Telegram 里发一段文字、一条语音或直接拍一张食物照片,Gemini 负责识别食物、估算热量与蛋白质/碳水/脂肪三大营养素并写入 Google Sheets;输入「report」即可收到带可视化进度条的每日营养报告。共 8 个节点,综合运用了 AI Agent、子工作流(Subworkflow)、Merge 与 Code 节点,是学习「多模态输入 + 表格数据库 + 定制报告」组合模式的优秀范本。
能做什么
- 三种记录方式:文字描述、语音消息(自动转写)、食物照片(AI 图像识别)均可记录一餐
- 自动营养估算:Gemini 分析食物内容,自动估算热量、蛋白质、碳水、脂肪
- 目标管理:对话式设置和更新每日热量/蛋白质目标(如「把我的蛋白质目标改成 120g」)
- 每日报告:输入 report 生成带进度条的当日营养摘要
- Google Sheets 双表存储:Profile 表存用户目标,Meals 表存逐餐记录,数据可随时导出分析
- 轻量注册:简单入门流程,不收集体重/身高等个人健康数据
前置条件
- n8n 实例(云版或自托管)
- Telegram Bot Token(通过 @BotFather 创建)
- Google Sheets API 凭据
- Google Gemini API Key(或兼容的 LLM 提供商)
安装 / 配置
1. 在 n8n 中导入模板:https://n8n.io/workflows/7756
2. 创建两张 Google Sheets 表:
- Profile:User_ID, Name, Calories_target, Protein_target
- Meals:User_ID, Date, Meal_description, Calories, Proteins, Carbs, Fats
3. 配置凭据:Telegram Bot API、Google Sheets、Google Gemini
4. 激活工作流,在 Telegram 里向 Bot 发第一条消息完成注册
使用步骤
- 向 Bot 发送食物照片 / 语音 / 文字,AI 识别后自动记录热量与营养素
- 发送「report」查看当日摄入与目标完成度(带进度条)
- 用自然语言随时调整目标,如「更新我的热量目标为 1800」
适用场景
- 个人健身饮食管理:减脂/增肌期用聊天记录三餐,不装额外 App
- 替代付费营养 App:自托管、数据自持,功能对标 Cal AI 核心能力
- 营养师轻量服务:给客户发一个 Bot 链接即可开始饮食打卡
- n8n 进阶学习:Subworkflow、Merge、Code 节点与多模态 AI Agent 的实战组合
注意事项
- Telegram 与 Gemini 均为海外服务,n8n 实例所在网络需能访问两者;Gemini 也可换成其他兼容 LLM
- AI 对热量与营养素的估算是近似值,健身备赛、疾病饮食管理等严肃场景不能替代专业营养师
- 语音转写与图片识别消耗的 token 高于纯文字,重度使用前先估算 Gemini API 成本
- 饮食数据属个人敏感信息,建议自托管 n8n 并控制 Google Sheets 的共享权限