本 Skill 服务两类用户,请根据用户意图自动切换模式:
| 用户意图信号 | 触发模式 | 行为 |
|---|---|---|
| ------------- | --------- | ------ |
| 提到「接入 API」「SDK」「开发」「搭建」「代码」「集成」「OAuth」「数据库」「架构」 | 开发者模式 | 进入「开发者快速搭建指南」和「技术参考」流程,提供技术方案、代码示例、平台对接文档 |
| 上传食物/营养表照片、询问「今天吃什么」「运动建议」「我的健康数据」「帮我分析」 | 终端用户模式 | 直接进入「终端用户快速使用流程」,调用 scripts/ 工具,给出个性化建议 |
| 问题同时涉及开发和使用 | 混合模式 | 先以终端用户视角给出可直接使用的方案,再补充开发者视角的技术说明 |
判断优先级:终端用户意图 > 开发者意图(即使用户是开发者,如果他在问自己的健康问题,优先当他是要用功能的人)。
本 Skill 指导构建一个端到端的大健康智能教练系统,核心能力包括:
适用对象:开发者(搭建系统)与终端用户(使用功能)。
当用户需要健康建议时(上传食物照片 / 询问今天吃什么 / 问运动方案),按以下步骤处理:
询问并记录以下信息(如用户已提供则跳过):
用 scripts/health_recommend.py 的 calculate_bmr() + calculate_tdee() + calculate_macros() 计算用户的每日热量预算和营养素目标,存入会话上下文。
scripts/nutrition_ocr.py 进行 OCR 识别,得到结构化营养数据。将用户画像 + 今日运动数据 + 今日已摄入营养 填入 Prompt 模板(见「决策推荐层」),调用 LLM 生成建议。
Prompt 模板路径:SKILL.md 内「推荐生成 Prompt 模板」章节,或用 scripts/health_recommend.py --output result.json 生成。
以以下形式输出(按优先级):
scripts/health-dashboard.html 的结构作为输出参考样式| 平台 | API / SDK | 可获取数据 | 说明 |
|---|---|---|---|
| ------ | ----------- | ----------- | ------ |
| Apple | HealthKit | 心率、步数、睡眠、血糖、ECG | iOS 生态核心,需申请权限 |
| Health Connect | 步数、心率、血氧、体重、睡眠 | Google Fit 已停止维护,统一用 Health Connect | |
| 华为 | Health Service Kit | 步数、心率、睡眠、血氧、体温、血压、压力 | 需华为开发者联盟(AGC)企业资质 |
| 小米 | 运动健康 Open API | 步数、心率、睡眠、体重 | 需小米开放平台申请 |
| OPPO | HeyTap Health SDK | 步数、心率、睡眠 | 需 OPPO 开发者注册 |
| 三星 | Samsung Health Sensor SDK | 心率、HRV、步数、卡路里 | 针对三星手表传感器 |
| 通用 | Synheart Wear, Terra | 统一接口接入多品牌 | 适合快速多设备支持 |
接入流程:OAuth 2.0 授权 -> 获取 access_token -> 调用 REST API 拉取数据 -> 本地清洗存储。
| 方案 | 技术原理 | 优点 | 局限 | 推荐场景 |
|---|---|---|---|---|
| ------ | --------- | ------ | ------ | --------- |
| 云端 OCR API | 调用 Veryfi / 百度 OCR / 腾讯 OCR 提取营养表文字 | 精度高、实现简单 | 需网络、有调用成本 | 快速上线、精确摄入计算 |
| 本地开源模型 | PaddleOCR + YOLO 检测 + 本地 LLM 分析 | 无网络依赖、隐私好 | 部署复杂、需 GPU | 私有化部署、高隐私场景 |
| 食物识别 API | LogMeal / Edamam / Nutritionix | 拍照即出结果 | 依赖第三方、长期有成本 | MVP 验证、不想自研模型 |
| 通义千问 Qwen-VL | 阿里云百炼多模态模型直接识图 | 国内直连、价格低、中文理解强 | 需网络、有调用成本 | 国内开发者首选 |
| 大模型视觉能力 | GPT-4V / Claude 3 / Gemini 直接识图 | 无需训练、理解力强 | 按量计费、国内访问不便 | 海外用户、快速原型 |
推荐策略:包装食品用 OCR API 精确提取;自制餐食用食物图像识别 API 或上传给多模态大模型估算。国内开发者优先使用通义千问 Qwen-VL(阿里云百炼申请简单、价格低)。
构建垂直健康 RAG 系统,作为 AI 决策的知识底座。
用户提问 → 问题分解为检索查询 → 并行检索用户数据库 + 知识库
→ 合并检索结果(今日已摄入热量、剩余预算、目标匹配度)
→ 将检索结果作为上下文 + 原始问题提交给 LLM
→ 生成结构化建议
推荐框架:
| 功能 | 核心逻辑 | 输出示例 |
|---|---|---|
| ------ | --------- | --------- |
| 营养表识别 | OCR 提取 → 结构化 JSON → 按每份/100g 标准化 | 能量 215kJ,蛋白质 3.2g,脂肪 1.5g... |
| 个性化运动推荐 | 用户目标(减脂/增肌/健康)+ 今日已消耗/剩余热量 + 体能状态 → 匹配运动库 | 建议:今晚 30 分钟快走(消耗 ~150kcal) |
| 个性化饮食推荐 | 已摄入营养缺口分析 + 热量预算 → 食物组合推荐 | 晚餐建议:鸡胸肉 150g + 西兰花 200g + 杂粮饭 100g |
| 健康问答 | 基于知识库的自然语言查询 | Q: 吃什么补铁? A: 红肉、动物肝脏、菠菜... |
| 反馈学习 | 记录用户对建议的采纳/拒绝/修改,优化后续推荐 | 用户拒绝跑步 → 后续多推荐游泳/骑行 |
你是一位专业的健康管理师和营养师。请根据以下信息为用户生成今日运动和饮食建议:
【用户画像】
年龄:{age},性别:{gender},体重:{weight}kg,身高:{height}cm
健康目标:{goal}(减脂/增肌/维持健康)
【今日运动数据】
步数:{steps},消耗卡路里:{calories_burned},静息心率:{resting_hr}
睡眠时长:{sleep_hours},睡眠质量:{sleep_quality}
【今日已摄入营养】
热量:{intake_kcal}kcal / 预算 {budget_kcal}kcal
蛋白质:{protein}g,碳水:{carbs}g,脂肪:{fat}g
膳食纤维:{fiber}g,钠:{sodium}mg
【输出要求】
1. 用表格列出晚餐推荐食物及分量
2. 给出 1-2 项今晚适合的运动及预计消耗
3. 指出今日营养摄入的亮点与缺口
4. 总字数控制在 300 字以内
建议以下输出形式增强用户体验:
使用 React + Recharts / Chart.js 或 Markdown 表格即可实现。
| 层级 | 推荐技术 | 说明 |
|---|---|---|
| ------ | --------- | ------ |
| API 网关 | FastAPI / Node.js + Express | 统一封装多源健康数据接口 |
| 关系数据库 | PostgreSQL | 存储用户信息、运动/饮食记录 |
| 缓存/高频数据 | Redis | 存储传感器实时数据、会话状态 |
| 向量数据库 | FAISS / Milvus | RAG 知识库向量索引 |
| OCR/视觉 | PaddleOCR / 百度 OCR / 通义千问 Qwen-VL / GPT-4V | 营养表识别 |
| RAG 框架 | LlamaIndex + LangChain | 知识库构建与 Agent 编排 |
| 前端展示 | React + Recharts | 可视化仪表盘 |
scripts/ 目录scripts/health-dashboard.html(单文件 HTML,含热量仪表盘、营养素环形图、一周趋势折线图、晚餐推荐表格、运动推荐卡片)共 1 个版本