NutriTrack AI营养健康追踪 — 自托管饮食运动体重记录

0 0 更新时间: 2026-07-28 01:16:30

NutriTrack是一个自托管的AI营养与健康追踪平台,通过REST API与AI助手集成,自动记录饮食、体重、运动和健康指标。支持卡路里和宏量营养素计算,提供个性化每日目标(基于Mifflin-St Jeor公式)、体重趋势图表、运动日志与卡路里动态调整、血压血糖血氧心率监测,以及游戏化激励系统(经验值、连续打卡、徽章)。所有数据本地存储,无需云端账户。适合关注健康管理、希望与AI对话式记录的用户。

安装
npx skills add https://github.com/BenZenTuna/Nutritrack --skill NutriTrack
技能详情 readonly

NutriTrack 是什么?一个和AI聊天的健康管家

说实话,我之前试过不少健康App,什么MyFitnessPal、Lose It之类的,但总是坚持不下来。不是它们不好用,而是手动输入每顿饭太反人类了。直到我发现NutriTrack——一个可以跟AI助手聊天就能记录饮食、运动、体重的自托管平台。它本质上是一个本地运行的服务,你通过跟AI说“我今天早上吃了燕麦和香蕉”,它就自动估算卡路里和营养,然后存到数据库里,还会在漂亮的仪表盘上展示趋势。更重要的是,所有数据都存在你自己的电脑上,不用怕隐私泄露。

这个项目是GitHub上开源的,仓库名叫BenZenTuna/Nutritrack,作者是个挺有想法的开发者。它专门为AI代理设计,任何支持HTTP调用的LLM都能当你的营养助理。你不需要学习复杂的App操作,只要正常说话就行。

它解决了哪些痛点?

  • 输入太麻烦:传统App每次要选食物搜数据库,NutriTrack直接说“我吃了两个煎蛋加一片全麦吐司”,AI就自动换算。
  • 数据孤岛:很多健康App的数据拿不出来,NutriTrack存本地的SQLite,随时可以导出CSV。
  • 不能个性化:它用Mifflin-St Jeor公式根据你的年龄、身高、体重、活动水平算每日卡路里和宏量营养素目标,比那些一刀切的方案科学多了。
  • 没有激励机制:它内置游戏化——每天打卡得经验值,连续打卡有成就徽章,努力一点还能升级到Elite等级,真的会上瘾。

核心功能一览

我简单列一下它的亮点,你可以对照自己需求看看:

功能 说明
饮食记录 AI估算卡路里、蛋白质、碳水、脂肪,按餐型(早餐/午餐/晚餐/零食)分类
体重追踪 记录日重,自动计算趋势,支持历史图表
运动日志 记录运动类型、时长、强度,自动根据体重估算消耗卡路里,并回补到每日预算
健康指标 血压、血糖、血氧、心率,一应俱全
AI教练 每次进食后给出实时建议,每周生成健康报告
游戏化 经验值、连续打卡(Streaks)、勋章、精英等级

我亲身实践:安装其实超简单

我选的是手动部署,因为想看看具体怎么运作。如果你有AI助手(比如OpenClaw),直接告诉它“Install this skill: https://raw.githubusercontent.com/BenZenTuna/Nutritrack/main/SKILL.md”然后说“Deploy NutriTrack”就完事了。我没用这个方式,而是手动克隆:

git clone https://github.com/BenZenTuna/Nutritrack.git
cd Nutritrack
chmod +x deploy.sh
./deploy.sh

脚本会自动检测有没有Docker,如果没有就用Python虚拟环境。我电脑有Python 3.10+,它自动创建venv、安装依赖、初始化数据库,最后告诉我访问 http://localhost:8000 就行。整个过程大概两三分钟,零配置。而且部署脚本非常智能,不会弹出来问你任何问题。

之后我设置了个人资料,用curl模拟一下:

curl -X PUT http://localhost:8000/api/profile \
  -H "Content-Type: application/json" \
  -d '{"age":30,"gender":"male","height_cm":180,"weight_kg":85,"activity_level":"moderate","goal_weight_kg":78}'

然后尝试记录饮食:

curl -s -X POST http://localhost:8000/api/food \
  -H "Content-Type: application/json" \
  -d '{"name":"Oatmeal with banana","calories":350,"protein_g":12,"carbs_g":58,"fat_g":8,"meal_type":"breakfast"}'

仪表盘立刻刷新,能看到今天的进度条。更酷的是,我还试了健康指标记录:

curl -s -X POST http://localhost:8000/api/health \
  -H "Content-Type: application/json" \
  -d '{"systolic_bp":118,"diastolic_bp":76,"blood_sugar":92,"blood_oxygen":98,"heart_rate":68}'

使用技巧和注意事项

  • 善用自然语言:你跟AI说“我跑了个5公里,大概40分钟”,它会自动换算消耗的卡路里(用MET公式)。不过如果说的太模糊,AI可能估算不准确,建议尽量具体。
  • 游戏化别上头:为了拿徽章可能会故意多吃一顿,但健康第一,经验值只是辅助。
  • 数据安全:默认只监听localhost,如果你要远程访问,可以用反向代理或tailscale。但默认配置下数据是安全的。
  • 定期备份:数据库文件在项目目录下的nutrition.db,可以定期复制出来备份。git pull不会删除数据。
  • AI教练是谁?:它其实是内置的一个分析模块,根据你的饮食数据生成建议,不是真的活人教练。但建议还挺中肯的。

和同类工具对比

我之前也用过一些自托管的追踪工具,比如Wger,但那个需要自己开MySQL,配置麻烦。NutriTrack用SQLite零配置,而且专门为AI对话而生,这点很独特。如果你是程序员,想把健康数据跟自己的其他系统整合,它的REST API很完整,还有Swagger文档(/docs),可以直接在浏览器里测试接口。

总之,NutriTrack算是我最近最喜欢的自托管项目之一。不需要付费,不需要联网,跟AI聊聊天就能记录健康数据,还有游戏化鼓励。强烈推荐给所有想掌控自己健康数据的极客们。

对了,如果你想快速体验效果,可以加载演示数据:在项目目录下运行 python3 seed.py(或者Docker的话用 docker compose exec nutritrack python3 seed.py),然后就能看到30天的模拟数据,所有图表都活起来了。