| | """ |
| | Taiwanese elderly-friendly meal data for Silver Table Assistant. |
| | Provides 15-20 nutritious, easy-to-chew meals suitable for seniors. |
| | """ |
| |
|
| | from typing import List, Dict, Any |
| |
|
| | |
| | MENU_ITEMS: List[Dict[str, Any]] = [ |
| | { |
| | "id": 1, |
| | "name": "清蒸鱸魚", |
| | "description": "新鮮鱸魚配薑絲蒸煮,魚肉嫩滑易咀嚼,富含優質蛋白質", |
| | "suitable_for": ["高血壓", "糖尿病", "牙口不好", "清淡飲食"], |
| | "image_url": "https://placehold.co/400x300?text=清蒸鱸魚", |
| | "nutrition": { |
| | "calories": 180, |
| | "protein": 25.0, |
| | "fat": 8.0, |
| | "carbs": 2.0, |
| | "sodium": 120, |
| | "fiber": 0.5, |
| | "sugar": 1.0 |
| | }, |
| | "price": 28000, |
| | "category": "蛋白質類", |
| | "available": True |
| | }, |
| | { |
| | "id": 2, |
| | "name": "南瓜燉肉", |
| | "description": "南瓜與瘦肉慢燉,口感軟糯,富含維生素A和膳食纖維", |
| | "suitable_for": ["高血壓", "便秘", "營養不良"], |
| | "image_url": "https://placehold.co/400x300?text=南瓜燉肉", |
| | "nutrition": { |
| | "calories": 220, |
| | "protein": 18.0, |
| | "fat": 12.0, |
| | "carbs": 15.0, |
| | "sodium": 200, |
| | "fiber": 3.0, |
| | "sugar": 8.0 |
| | }, |
| | "price": 22000, |
| | "category": "葷食類", |
| | "available": True |
| | }, |
| | { |
| | "id": 3, |
| | "name": "白蘿蔔湯", |
| | "description": "清淡蘿蔔湯,口感軟嫩,幫助消化,利尿消腫", |
| | "suitable_for": ["高血壓", "糖尿病", "便秘", "清淡飲食"], |
| | "image_url": "https://placehold.co/400x300?text=白蘿蔔湯", |
| | "nutrition": { |
| | "calories": 45, |
| | "protein": 2.0, |
| | "fat": 0.5, |
| | "carbs": 9.0, |
| | "sodium": 150, |
| | "fiber": 2.0, |
| | "sugar": 4.0 |
| | }, |
| | "price": 8000, |
| | "category": "湯品", |
| | "available": True |
| | }, |
| | { |
| | "id": 4, |
| | "name": "蒸蛋羹", |
| | "description": "嫩滑蒸蛋,口感柔軟易吞嚥,富含優質蛋白質", |
| | "suitable_for": ["牙口不好", "營養不良", "清淡飲食"], |
| | "image_url": "https://placehold.co/400x300?text=蒸蛋羹", |
| | "nutrition": { |
| | "calories": 120, |
| | "protein": 10.0, |
| | "fat": 8.0, |
| | "carbs": 2.0, |
| | "sodium": 80, |
| | "fiber": 0.0, |
| | "sugar": 1.5 |
| | }, |
| | "price": 6000, |
| | "category": "蛋白質類", |
| | "available": True |
| | }, |
| | { |
| | "id": 5, |
| | "name": "紅棗銀耳湯", |
| | "description": "溫潤甜湯,銀耳富含膠質,紅棗補血養顏", |
| | "suitable_for": ["糖尿病", "便秘", "美容養顏"], |
| | "image_url": "https://placehold.co/400x300?text=紅棗銀耳湯", |
| | "nutrition": { |
| | "calories": 95, |
| | "protein": 1.5, |
| | "fat": 0.3, |
| | "carbs": 22.0, |
| | "sodium": 20, |
| | "fiber": 4.0, |
| | "sugar": 15.0 |
| | }, |
| | "price": 12000, |
| | "category": "甜品類", |
| | "available": True |
| | }, |
| | { |
| | "id": 6, |
| | "name": "菠菜豆腐湯", |
| | "description": "嫩菠菜配軟豆腐,富含鐵質和蛋白質", |
| | "suitable_for": ["高血壓", "糖尿病", "牙口不好"], |
| | "image_url": "https://placehold.co/400x300?text=菠菜豆腐湯", |
| | "nutrition": { |
| | "calories": 85, |
| | "protein": 8.0, |
| | "fat": 4.0, |
| | "carbs": 6.0, |
| | "sodium": 180, |
| | "fiber": 2.5, |
| | "sugar": 2.0 |
| | }, |
| | "price": 10000, |
| | "category": "蔬菜類", |
| | "available": True |
| | }, |
| | { |
| | "id": 7, |
| | "name": "山藥排骨湯", |
| | "description": "滋補湯品,山藥健脾益胃,排骨補充鈣質", |
| | "suitable_for": ["高血壓", "糖尿病", "營養不良"], |
| | "image_url": "https://placehold.co/400x300?text=山藥排骨湯", |
| | "nutrition": { |
| | "calories": 165, |
| | "protein": 12.0, |
| | "fat": 10.0, |
| | "carbs": 6.0, |
| | "sodium": 220, |
| | "fiber": 1.5, |
| | "sugar": 2.5 |
| | }, |
| | "price": 18000, |
| | "category": "湯品", |
| | "available": True |
| | }, |
| | { |
| | "id": 8, |
| | "name": "小米粥", |
| | "description": "溫和養胃小米粥,易消化,適合早晚食用", |
| | "suitable_for": ["糖尿病", "牙口不好", "清淡飲食"], |
| | "image_url": "https://placehold.co/400x300?text=小米粥", |
| | "nutrition": { |
| | "calories": 120, |
| | "protein": 4.0, |
| | "fat": 2.0, |
| | "carbs": 22.0, |
| | "sodium": 50, |
| | "fiber": 2.0, |
| | "sugar": 1.0 |
| | }, |
| | "price": 5000, |
| | "category": "主食類", |
| | "available": True |
| | }, |
| | { |
| | "id": 9, |
| | "name": "香菇雞湯", |
| | "description": "香菇雞肉湯,鮮美營養,增強免疫力", |
| | "suitable_for": ["高血壓", "營養不良", "清淡飲食"], |
| | "image_url": "https://placehold.co/400x300?text=香菇雞湯", |
| | "nutrition": { |
| | "calories": 150, |
| | "protein": 20.0, |
| | "fat": 6.0, |
| | "carbs": 3.0, |
| | "sodium": 280, |
| | "fiber": 1.0, |
| | "sugar": 1.5 |
| | }, |
| | "price": 16000, |
| | "category": "湯品", |
| | "available": True |
| | }, |
| | { |
| | "id": 10, |
| | "name": "冬瓜排骨湯", |
| | "description": "清淡冬瓜湯,利尿消腫,適合夏季食用", |
| | "suitable_for": ["高血壓", "糖尿病", "水腫"], |
| | "image_url": "https://placehold.co/400x300?text=冬瓜排骨湯", |
| | "nutrition": { |
| | "calories": 110, |
| | "protein": 10.0, |
| | "fat": 6.0, |
| | "carbs": 5.0, |
| | "sodium": 200, |
| | "fiber": 1.5, |
| | "sugar": 3.0 |
| | }, |
| | "price": 14000, |
| | "category": "湯品", |
| | "available": True |
| | }, |
| | { |
| | "id": 11, |
| | "name": "紫薯泥", |
| | "description": "軟糯紫薯泥,富含花青素和膳食纖維", |
| | "suitable_for": ["糖尿病", "便秘", "抗氧化"], |
| | "image_url": "https://placehold.co/400x300?text=紫薯泥", |
| | "nutrition": { |
| | "calories": 130, |
| | "protein": 2.5, |
| | "fat": 0.3, |
| | "carbs": 30.0, |
| | "sodium": 30, |
| | "fiber": 4.0, |
| | "sugar": 8.0 |
| | }, |
| | "price": 7000, |
| | "category": "副食類", |
| | "available": True |
| | }, |
| | { |
| | "id": 12, |
| | "name": "蓮子銀耳湯", |
| | "description": "養生甜湯,蓮子寧心安神,銀耳潤肺", |
| | "suitable_for": ["失眠", "便秘", "美容養顏"], |
| | "image_url": "https://placehold.co/400x300?text=蓮子銀耳湯", |
| | "nutrition": { |
| | "calories": 85, |
| | "protein": 2.0, |
| | "fat": 0.2, |
| | "carbs": 20.0, |
| | "sodium": 15, |
| | "fiber": 3.5, |
| | "sugar": 12.0 |
| | }, |
| | "price": 11000, |
| | "category": "甜品類", |
| | "available": True |
| | }, |
| | { |
| | "id": 13, |
| | "name": "蒸蛋", |
| | "description": "嫩滑蒸蛋,簡單易消化,營養豐富", |
| | "suitable_for": ["牙口不好", "營養不良", "清淡飲食"], |
| | "image_url": "https://placehold.co/400x300?text=蒸蛋", |
| | "nutrition": { |
| | "calories": 100, |
| | "protein": 8.0, |
| | "fat": 7.0, |
| | "carbs": 1.0, |
| | "sodium": 70, |
| | "fiber": 0.0, |
| | "sugar": 1.0 |
| | }, |
| | "price": 4000, |
| | "category": "蛋白質類", |
| | "available": True |
| | }, |
| | { |
| | "id": 14, |
| | "name": "木瓜牛奶", |
| | "description": "溫潤木瓜牛奶,有助消化,補充維生素", |
| | "suitable_for": ["便秘", "美容養顏", "清淡飲食"], |
| | "image_url": "https://placehold.co/400x300?text=木瓜牛奶", |
| | "nutrition": { |
| | "calories": 150, |
| | "protein": 8.0, |
| | "fat": 6.0, |
| | "carbs": 18.0, |
| | "sodium": 120, |
| | "fiber": 2.0, |
| | "sugar": 16.0 |
| | }, |
| | "price": 9000, |
| | "category": "飲品類", |
| | "available": True |
| | }, |
| | { |
| | "id": 15, |
| | "name": "豆腐腦", |
| | "description": "嫩滑豆腐腦,易吞嚥,富含植物蛋白", |
| | "suitable_for": ["牙口不好", "高血壓", "清淡飲食"], |
| | "image_url": "https://placehold.co/400x300?text=豆腐腦", |
| | "nutrition": { |
| | "calories": 80, |
| | "protein": 6.0, |
| | "fat": 4.0, |
| | "carbs": 4.0, |
| | "sodium": 160, |
| | "fiber": 1.0, |
| | "sugar": 2.0 |
| | }, |
| | "price": 3500, |
| | "category": "蛋白質類", |
| | "available": True |
| | }, |
| | { |
| | "id": 16, |
| | "name": "燕窩粥", |
| | "description": "滋補燕窩粥,美容養顏,滋陰潤燥", |
| | "suitable_for": ["糖尿病", "美容養顏", "營養不良"], |
| | "image_url": "https://placehold.co/400x300?text=燕窩粥", |
| | "nutrition": { |
| | "calories": 140, |
| | "protein": 6.0, |
| | "fat": 1.5, |
| | "carbs": 26.0, |
| | "sodium": 40, |
| | "fiber": 1.0, |
| | "sugar": 3.0 |
| | }, |
| | "price": 35000, |
| | "category": "主食類", |
| | "available": True |
| | }, |
| | { |
| | "id": 17, |
| | "name": "胡蘿蔔泥", |
| | "description": "軟嫩胡蘿蔔泥,富含維生素A,保護視力", |
| | "suitable_for": ["高血壓", "便秘", "護眼"], |
| | "image_url": "https://placehold.co/400x300?text=胡蘿蔔泥", |
| | "nutrition": { |
| | "calories": 60, |
| | "protein": 1.5, |
| | "fat": 0.3, |
| | "carbs": 14.0, |
| | "sodium": 80, |
| | "fiber": 3.5, |
| | "sugar": 7.0 |
| | }, |
| | "price": 4500, |
| | "category": "副食類", |
| | "available": True |
| | }, |
| | { |
| | "id": 18, |
| | "name": "綠豆湯", |
| | "description": "清熱解毒綠豆湯,消暑降火,利尿", |
| | "suitable_for": ["高血壓", "水腫", "清熱解毒"], |
| | "image_url": "https://placehold.co/400x300?text=綠豆湯", |
| | "nutrition": { |
| | "calories": 110, |
| | "protein": 7.0, |
| | "fat": 0.5, |
| | "carbs": 22.0, |
| | "sodium": 25, |
| | "fiber": 6.0, |
| | "sugar": 2.0 |
| | }, |
| | "price": 6500, |
| | "category": "甜品類", |
| | "available": True |
| | }, |
| | { |
| | "id": 19, |
| | "name": "雞肉粥", |
| | "description": "營養雞肉粥,溫和養胃,適合病後調養", |
| | "suitable_for": ["牙口不好", "營養不良", "腸胃虚弱"], |
| | "image_url": "https://placehold.co/400x300?text=雞肉粥", |
| | "nutrition": { |
| | "calories": 160, |
| | "protein": 12.0, |
| | "fat": 4.0, |
| | "carbs": 18.0, |
| | "sodium": 180, |
| | "fiber": 1.0, |
| | "sugar": 1.5 |
| | }, |
| | "price": 15000, |
| | "category": "主食類", |
| | "available": True |
| | }, |
| | { |
| | "id": 20, |
| | "name": "紫菜蛋花湯", |
| | "description": "清淡紫菜湯,富含碘質,有助甲狀腺健康", |
| | "suitable_for": ["高血壓", "糖尿病", "清淡飲食"], |
| | "image_url": "https://placehold.co/400x300?text=紫菜蛋花湯", |
| | "nutrition": { |
| | "calories": 40, |
| | "protein": 3.0, |
| | "fat": 2.0, |
| | "carbs": 2.0, |
| | "sodium": 200, |
| | "fiber": 1.0, |
| | "sugar": 1.0 |
| | }, |
| | "price": 5500, |
| | "category": "湯品", |
| | "available": True |
| | } |
| | ] |
| |
|
| |
|
| | def get_menu_items() -> List[Dict[str, Any]]: |
| | """Return the complete list of menu items.""" |
| | return MENU_ITEMS |
| |
|
| |
|
| | def get_menu_item_by_id(item_id: int) -> Dict[str, Any]: |
| | """Get a specific menu item by ID.""" |
| | for item in MENU_ITEMS: |
| | if item["id"] == item_id: |
| | return item |
| | raise ValueError(f"Menu item with ID {item_id} not found") |
| |
|
| |
|
| | def filter_menu_by_dietary_tag(tag: str) -> List[Dict[str, Any]]: |
| | """Filter menu items by dietary tag.""" |
| | return [item for item in MENU_ITEMS if tag in item["suitable_for"]] |
| |
|
| |
|
| | def get_menu_items_by_category(category: str) -> List[Dict[str, Any]]: |
| | """Filter menu items by category.""" |
| | return [item for item in MENU_ITEMS if item["category"] == category] |