>
FOODLENS_DIR=~/.openclaw/workspace/skills/foodlens
FOODLENSDATA=$FOODLENSDIR/data # 每日JSON日志:YYYY-MM-DD.json
FOODLENSVENV=$FOODLENSDIR/venv
营养目标可由用户配置。默认值(编辑foodlens_config.json):
将传入的照片保存到临时路径,然后运行:
bash
cd $FOODLENS_DIR && source venv/bin/activate
python3 analyze_photo.py /path/to/photo.jpg lunch
此脚本:
直接将脚本输出转发给用户。
如果analyze_photo.py失败,使用image工具:
image(
image=/path/to/photo.jpg,
prompt=你是一名专业营养师。识别这张餐食照片中的所有食物。
观察容器大小和餐具,估算每样食物的实际克数。
参考标准:外卖盒500-800毫升,一碗米饭约150-200克,
炒面约400-500克。列出每种食物:名称、估算克数、
每100克千卡数、每100克蛋白质/碳水化合物/脂肪。
)
然后通过Python写入结果:
bash
cd $FOODLENS_DIR && source venv/bin/activate && python3 - <
sys.path.insert(0, .)
from foodlens import (ensureitemnutrition, calc_total,
healthscoreandcomment, loadday, save_day,
todaystr, recalcday_totals)
from datetime import datetime
datestr = todaystr()
day = loadday(datestr)
mealtotal = calctotal(items)
score, comment = healthscoreandcomment(mealtotal, len(items))
meal = {
mealid: fmeal{uuid.uuid4().hex[:10]},
timestamp: datetime.now().isoformat(),
label: lunch,
items: items,
mealtotal: mealtotal,
health_score: score,
comment: comment,
}
day[meals].append(meal)
recalcdaytotals(day)
saveday(datestr, day)
print(json.dumps({meal: meal, dailytotal: day[dailytotal]}, ensure_ascii=False, indent=2))
EOF
🍽️ [午餐] 营养分析
🔍 识别到的食物:
• 炒面 ~400克(720千卡)
• 虾 ~30克(27千卡)
• 鸡肉片 ~60克(90千卡)
📊 餐食总计:
• 热量:837千卡
• 蛋白质:38克 | 碳水化合物:102克 | 脂肪:29克
⭐ 健康评分:7/10
评论:...
📈 每日总计(第N餐):
• 热量:X / [目标]千卡(X%)
• 蛋白质:X / [目标]克(X%)
如果用户说那不是X而是Y或只有大约X克:
如果再次发送同一张照片,提醒用户该照片已记录,并询问是否再次记录。
每日摘要:
bash
cd $FOODLENS_DIR && source venv/bin/activate
python3 analyze_photo.py --summary today
每周趋势(过去7天):
bash
cd $FOODLENS_DIR && source venv/bin/activate
python3 analyze_photo.py --weekly-summary yesterday 7
| 路径 | 描述 |
|---|---|
| data/YYYY-MM-DD.json | 每日餐食日志 |
| nutrition_db.py |
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 foodlens-1776017970 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 foodlens-1776017970 技能
skillhub install foodlens-1776017970
文件大小: 2.75 KB | 发布时间: 2026-4-13 10:20