skills/food-database-query/SKILL.md
# 食物数据库查询技能 **技能名称**: Food Database Query **技能类型**: 数据查询与分析 **创建日期**: 2026-01-06 **版本**: v1.0 --- ## 技能概述 本技能提供全面的营养食物数据库查询功能,支持食物营养信息查询、比较、推荐和自动营养计算。 **核心功能**: - ✅ 食物营养信息查询 - ✅ 食物比较分析 - ✅ 智能食物推荐 - ✅ 自动营养计算 - ✅ 分类浏览和搜索 - ✅ 份量转换和估算 --- ## 数据源 ### 主数据库 - **文件**: `data/food-database.json` - **内容**: 50种常见食物的详细营养数据 - **结构**: 每种食物包含30+营养素指标 ### 分类体系 - **文件**: `data/food-categories.json` - **分类**: 10大类,30+子类 - **支持**: 按分类浏览和筛选 --- ## 功能模块 ### 1. 食物查询 (Food Query) #### 1.1 精确查询 **用途**: 根据食
npx skillsauth add huifer/WellAlly-health skills/food-database-queryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
技能名称: Food Database Query 技能类型: 数据查询与分析 创建日期: 2026-01-06 版本: v1.0
本技能提供全面的营养食物数据库查询功能,支持食物营养信息查询、比较、推荐和自动营养计算。
核心功能:
data/food-database.jsondata/food-categories.json用途: 根据食物名称查询营养信息
支持输入:
查询流程:
返回信息:
示例:
# 用户输入: "燕麦"
# 返回:
{
"name": "燕麦",
"name_en": "Oats",
"category": "谷物类",
"nutrition_per_100g": {
"calories": 389,
"protein_g": 16.9,
"carbs_g": 66.3,
"fat_g": 6.9,
"fiber_g": 10.6,
# ... 更多营养素
},
"health_tags": ["高纤维", "低GI"],
"glycemic_index": {"value": 55, "level": "低"}
}
用途: 根据营养特征搜索食物
搜索条件:
搜索逻辑:
# 示例: 搜索"高蛋白 低卡路里"
def search_foods(criteria):
results = []
for food in database:
protein = food.nutrition_per_100g.protein_g
calories = food.nutrition_per_100g.calories
# 定义阈值
high_protein = protein >= 15 # 每100g≥15g蛋白质
low_calorie = calories <= 150 # 每100g≤150卡
if high_protein and low_calorie:
results.append(food)
return sorted(results, key=lambda x: x.protein_g, reverse=True)
返回格式:
用途: 按食物分类浏览所有食物
分类层级:
蛋白质来源
├── 肉类
├── 禽类
├── 鱼虾贝类
├── 蛋类
├── 豆类
├── 坚果种子
└── 乳制品
浏览模式:
功能: 比较两种食物的营养差异
比较维度:
计算逻辑:
def compare_foods(food1, food2):
comparison = {}
# 宏量营养素差异
for nutrient in ["calories", "protein_g", "fiber_g"]:
val1 = food1.nutrition_per_100g[nutrient]
val2 = food2.nutrition_per_100g[nutrient]
diff = val1 - val2
percent = (diff / val2) * 100
comparison[nutrient] = {
"food1": val1,
"food2": val2,
"difference": diff,
"percent_change": percent,
"better": "food1" if diff > 0 else "food2"
}
return comparison
输出格式:
支持模式:
示例: /nutrition compare 三文鱼 鸡胸肉 营养素
推荐逻辑:
def recommend_by_nutrient(nutrient, min_value=None, max_value=None):
recommendations = []
for food in database:
value = food.nutrition_per_100g[nutrient]
# 筛选符合条件
if min_value and value < min_value:
continue
if max_value and value > max_value:
continue
recommendations.append({
"food": food,
"value": value,
"rda_percent": (value / RDA[nutrient]) * 100
})
# 按含量排序
return sorted(recommendations, key=lambda x: x["value"], reverse=True)
推荐类别:
支持组合条件:
排序策略:
高血压 (DASH饮食):
糖尿病:
高血脂:
骨质疏松:
贫血:
输入解析:
def parse_food_input(text):
# 示例: "燕麦粥 1杯 + 鸡蛋 1个 + 牛奶 250ml"
foods = []
portions = []
# 识别食物名称
for item in text.split("+"):
food_name = extract_food_name(item) # "燕麦粥"
portion = extract_portion(item) # "1杯"
# 标准化食物名称
standard_name = normalize_food_name(food_name) # "燕麦"
# 查询数据库
food_data = query_database(standard_name)
foods.append(food_data)
portions.append(parse_portion(portion))
return foods, portions
常见份量:
份量数据库:
{
"common_portions": [
{
"amount": 1,
"unit": "个",
"weight_g": 50,
"description": "1个大号鸡蛋"
},
{
"amount": 1,
"unit": "杯",
"weight_g": 240,
"description": "1杯牛奶"
}
]
}
计算公式:
def calculate_nutrition(food, portion_grams):
nutrition = {}
for nutrient, value_per_100g in food.nutrition_per_100g.items():
# 按100g比例计算
nutrition[nutrient] = (value_per_100g * portion_grams) / 100
return nutrition
考虑因素:
示例:
支持同义词:
匹配算法:
def find_food(name):
# 1. 精确匹配主名称
if name in database:
return database[name]
# 2. 匹配别名
for food in database:
if name in food.aliases:
return food
# 3. 模糊匹配
matches = fuzzy_search(name)
if matches:
return matches[0]
return None
编辑距离算法:
def fuzzy_search(name, max_distance=2):
matches = []
for food in database:
# 计算编辑距离
distance = levenshtein_distance(name, food.name)
if distance <= max_distance:
matches.append((food, distance))
# 按距离排序
return sorted(matches, key=lambda x: x[1])
{
"id": "FD_001",
"name": "燕麦",
"name_en": "Oats",
"aliases": ["燕麦片", "oats", "rolled oats"],
"category": "grains",
"subcategory": "whole_grains",
"standard_portion": {
"amount": 100,
"unit": "g",
"description": "100克"
},
"nutrition_per_100g": {
"calories": 389,
"protein_g": 16.9,
"carbs_g": 66.3,
"fat_g": 6.9,
"fiber_g": 10.6,
"sugar_g": 0.99,
"saturated_fat_g": 1.4,
"monounsaturated_fat_g": 2.5,
"polyunsaturated_fat_g": 2.9,
"trans_fat_g": 0,
"water_g": 8.9,
"vitamin_a_mcg": 0,
"vitamin_c_mg": 0,
"vitamin_d_mcg": 0,
"vitamin_e_mg": 1.1,
"vitamin_k_mcg": 1.9,
"thiamine_mg": 0.763,
"riboflavin_mg": 0.139,
"niacin_mg": 6.921,
"vitamin_b6_mg": 0.165,
"folate_mcg": 56,
"vitamin_b12_mcg": 0,
"pantothenic_acid_mg": 1.349,
"biotin_mcg": 0,
"calcium_mg": 54,
"iron_mg": 4.72,
"magnesium_mg": 177,
"phosphorus_mg": 523,
"potassium_mg": 429,
"sodium_mg": 2,
"zinc_mg": 3.97,
"copper_mg": 0.526,
"manganese_mg": 4.916,
"selenium_mcg": 2.8,
"iodine_mcg": 0
},
"special_nutrients": {
"omega_3_g": 0.685,
"omega_6_g": 1.428,
"choline_mg": 43.4,
"beta_carotene_mcg": 0,
"lutein_mcg": 0,
"zeaxanthin_mcg": 0
},
"glycemic_index": {
"value": 55,
"level": "低",
"glycemic_load": 11
},
"common_portions": [
{
"amount": 30,
"unit": "g",
"description": "1/4杯",
"approximate_volume": "1/4 cup"
},
{
"amount": 40,
"unit": "g",
"description": "1/3杯",
"approximate_volume": "1/3 cup"
},
{
"amount": 200,
"unit": "ml",
"description": "煮熟1杯",
"notes": "煮熟后体积增加"
}
],
"cooking_effects": {
"boiling": {
"weight_change_percent": 200,
"nutrient_changes": {
"vitamin_c_retention": 0,
"b_vitamins_retention": 60
}
}
},
"health_tags": ["高纤维", "低GI", "无麸质选项", "心脏健康"],
"suitable_for": ["素食者", "高血压", "糖尿病", "高血脂"],
"notes": "富含β-葡聚糖,有助于降低胆固醇"
}
RDA = {
# 宏量营养素
"calories": 2500, # 中等活动水平
"protein_g": 56,
"carbs_g": 130, # 最低值
"fiber_g": 38,
# 维生素
"vitamin_a_mcg": 900,
"vitamin_c_mg": 90,
"vitamin_d_mcg": 15,
"vitamin_e_mg": 15,
"vitamin_k_mcg": 120,
"thiamine_mg": 1.2,
"riboflavin_mg": 1.3,
"niacin_mg": 16,
"vitamin_b6_mg": 1.3,
"folate_mcg": 400,
"vitamin_b12_mcg": 2.4,
"pantothenic_acid_mg": 5,
"biotin_mcg": 30,
# 矿物质
"calcium_mg": 1000,
"iron_mg": 8,
"magnesium_mg": 400,
"phosphorus_mg": 700,
"potassium_mg": 3400,
"sodium_mg": 1500, # 上限
"zinc_mg": 11,
"copper_mg": 0.9,
"manganese_mg": 2.3,
"selenium_mcg": 55
}
RDA_FEMALE = {
"calories": 2000, # 中等活动水平
"protein_g": 46,
"fiber_g": 25,
"iron_mg": 18, # 育龄期
# ... 其他略有差异
}
用户输入:
/nutrition record breakfast 燕麦粥 1杯 + 鸡蛋 1个 + 牛奶 250ml
系统处理:
返回结果:
✅ 早餐已记录
**食物**: 燕麦粥(1杯) + 鸡蛋(1个) + 牛奶(250ml)
**营养汇总**:
- 卡路里: 417 卡
- 蛋白质: 25.1g
- 碳水化合物: 48.5g
- 脂肪: 15.2g
- 膳食纤维: 8.2g
**微量营养素亮点**:
- 维生素D: 3.1 μg (21% RDA)
- 钙: 332 mg (33% RDA)
- 维生素B12: 1.3 μg (54% RDA)
用户输入:
/nutrition food 三文鱼
返回结果:
# 三文鱼 营养信息
## 基本信息
- **名称**: 三文鱼 (Salmon)
- **分类**: 蛋白质来源 > 鱼虾贝类
- **标准份量**: 100克
## 宏量营养素 (每100克)
- **卡路里**: 208 卡
- **蛋白质**: 20g ✅
- **碳水化合物**: 0g
- **脂肪**: 13g
- **Omega-3**: 2.5g ✅✅✅
## 营养亮点
- ✅✅✅ 富含Omega-3脂肪酸 (EPA+DHA)
- ✅✅ 高质量蛋白质
- ✅ 富含维生素D (11μg)
- ✅ 富含维生素B12 (3.2μg)
## 健康标签
- ✅ 高蛋白
- ✅ 富含Omega-3
- ✅ 心脏健康
- ✅ 大脑健康
## 推荐份量
- 100-150g/餐 (每周2-3次)
用户输入:
/nutrition compare 鸡胸肉 三文鱼
返回结果:
# 食物比较: 鸡胸肉 vs 三文鱼
## 营养对比 (每100克)
| 营养素 | 鸡胸肉 | 三文鱼 | 差异 |
|--------|--------|--------|------|
| 卡路里 | 165 | 208 | +26% |
| 蛋白质 (g) | 31 | 20 | -35% ✅ |
| 脂肪 (g) | 3.6 | 13 | +261% |
| Omega-3 (g) | 0.1 | 2.5 | +2400% ✅✅✅ |
## 推荐建议
**选择鸡胸肉更适合**:
- ✅ 减脂期间 (低卡高蛋白)
- ✅ 控制脂肪摄入
- ✅ 蛋白质需求高
**选择三文鱼更适合**:
- ✅ 心脏健康 (高Omega-3)
- ✅ 大脑健康 (DHA)
- ✅ 抗炎需求
data/food-database.jsondata/food-categories.json.claude/commands/nutrition.md.claude/skills/food-database-query/SKILL.md技能版本: v1.0 最后更新: 2026-01-06 维护者: WellAlly Tech
development
Integrate digital health data sources (Apple Health, Fitbit, Oura Ring) and connect to WellAlly.tech knowledge base. Import external health device data, standardize to local format, and recommend relevant WellAlly.tech knowledge base articles based on health data. Support generic CSV/JSON import, provide intelligent article recommendations, and help users better manage personal health data.
tools
分析减肥数据、计算代谢率、追踪能量缺口、管理减肥阶段
tools
分析旅行健康数据、评估目的地健康风险、提供疫苗接种建议、生成多语言紧急医疗信息卡片。支持WHO/CDC数据集成的专业级旅行健康风险评估。
tools
分析中医体质数据、识别体质类型、评估体质特征,并提供个性化养生建议。支持与营养、运动、睡眠等健康数据的关联分析。