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天的模拟数据,所有图表都活起来了。