生成AI を用いたトレーニングメニューの提案
年末年始、運動不足や食べすぎが気になる季節ですね!
この記事では、運動量・身長・体重から 最適なカロリー と PFCバランス(タンパク質・脂質・炭水化物)を考慮し、年末年始の12日間の食事メニュー を自動生成するPythonコードを紹介します。このコードを使って脱メタボ!!
この記事でできること
・基礎代謝量 と 運動レベル に応じた最適な1日分のカロリーを計算
・カロリーから PFCバランス(タンパク質20%、脂質25%、炭水化物55%)を計算
・OpenAI API を利用して朝食・昼食・夕食の具体的な食事メニューを生成
・12日間分 の食事提案をアドベントカレンダー風に表示
必要な準備
1.Python環境
2.Gemini APIキー(Gemini API から取得)
3.必要なライブラリをインストールします:
pip install google-generativeai
提案コード
import google.generativeai as genai
import datetime
# APIキー設定
genai.configure(api_key="Your_API_Key") # Google Cloudで取得したAPIキーを設定
def calculate_calories(height, weight, activity_level):
""" 身長、体重、運動量からカロリーを計算 """
bmr = 10 * weight + 6.25 * height - 5 * 25 + 5
return round(bmr * activity_level)
def calculate_pfc(calories):
""" カロリーからPFCバランスを計算 """
return round((calories * 0.2) / 4), round((calories * 0.25) / 9), round((calories * 0.55) / 4)
def generate_meal_menu(day, calories, protein, fat, carbs, user_request):
""" Gemini APIを使って食事メニューを生成 """
prompt = f"""
あなたは栄養士です。以下の要件に基づき、{day}日目の食事メニューを提案してください。
- 総カロリー: {calories} kcal
- タンパク質: {protein} g, 脂質: {fat} g, 炭水化物: {carbs} g
- 要望: {user_request}
- 朝食、昼食、夕食を具体的に提案し、料理名、材料、分量を含めてください。
"""
try:
model = genai.GenerativeModel("gemini-1.5-pro")
response = model.generate_content(prompt)
return response.text
except Exception as e:
return f"エラー: {e}"
def advent_calendar_meals():
""" 12日間の食事メニューを生成し表示 """
print("\n🎄 **12日間のPFCバランス食事メニュー** 🎄\n")
try:
# ユーザー入力
height = float(input("📏 身長 (cm): "))
weight = float(input("⚖️ 体重 (kg): "))
activity_choice = int(input("🏃 運動レベル (1:低い, 2:中, 3:高): "))
activity_level = {1: 1.2, 2: 1.55, 3: 1.9}.get(activity_choice, 1.2)
except ValueError:
print("❗ 入力エラー: 数値を入力してください。")
return
# カロリーとPFCバランス計算
total_calories = calculate_calories(height, weight, activity_level)
protein, fat, carbs = calculate_pfc(total_calories)
# ユーザーの要望を入力
print("\n🍽️ **特別な要望や希望があれば入力してください**")
user_request = input("例: '低脂質メニュー', '高タンパク質を重視', '和食中心' など: ").strip()
if not user_request:
user_request = "特になし"
# メニュー生成
print(f"\n🔍 **1日の目標栄養素**")
print(f"カロリー: {total_calories} kcal")
print(f"タンパク質: {protein}g, 脂質: {fat}g, 炭水化物: {carbs}g")
print(f"📝 要望: {user_request}\n")
# 12日間のメニュー生成
start_date = datetime.date.today()
for day in range(1, 13):
date = start_date + datetime.timedelta(days=day - 1)
print(f"🗓️ **{day}日目 ({date})**")
menu = generate_meal_menu(day, total_calories, protein, fat, carbs, user_request)
print(menu)
print("\n" + "-" * 60 + "\n")
if __name__ == "__main__":
advent_calendar_meals()
実行結果
もちえもんの結果
🎄 **12日間のPFCバランス食事メニュー** 🎄
📏 身長 (cm): 167.5
⚖️ 体重 (kg): 48.5
🏃 運動レベル (1:低い, 2:中, 3:高): 1
🍽️ **特別な要望や希望があれば入力してください**
例: '低脂質メニュー', '高タンパク質を重視', '和食中心' など: 年末は蟹食いたい
🔍 **1日の目標栄養素**
カロリー: 1694 kcal
タンパク質: 85g, 脂質: 47g, 炭水化物: 233g
📝 要望: 年末は蟹食いたい
🗓️ **1日目 (2024-12-17)**
## 1日目の食事メニュー (1694kcal)
**テーマ:年末カニづくし!ヘルシーにカニを楽しむ1日**
**(タンパク質: 85g, 脂質: 47g, 炭水化物: 233g)**
**朝食 (420kcal)**
**料理名:カニとアボカドのオープンサンド**
* 材料:
* 全粒粉パン:60g (2枚)
* カニ缶 (フレーク):50g
* アボカド:1/4個
* マヨネーズ(カロリーオフ):小さじ1
* レモン汁:少々
* ブラックペッパー:少々
* レタス:2枚
* ミニトマト:4個
* ゆで卵:1個
* 作り方:
1. アボカドをフォークで潰し、マヨネーズ、レモン汁、ブラックペッパーで和える。
2. パンにレタス、カニフレーク、アボカドペースト、ミニトマト、ゆで卵を乗せる。
**栄養価 (目安):** タンパク質 20g, 脂質 17g, 炭水化物 50g
**昼食 (574kcal)**
**料理名:カニとブロッコリーのペペロンチーノ風パスタ**
* 材料:
* 全粒粉スパゲッティ:80g (乾麺)
* カニ缶 (フレーク):50g
* ブロッコリー:100g
* ニンニク:1かけ
* オリーブオイル:大さじ1
* 赤唐辛子 (輪切り):少々
* 塩:少々
* ブラックペッパー:少々
* 作り方:
1. スパゲッティを茹でる。
2. フライパンにオリーブオイル、ニンニク、赤唐辛子を入れ、弱火で香りを出す。
3. ブロッコリーを加えて炒め、カニフレークも加える。
4. 茹で上がったスパゲッティを加え、塩、ブラックペッパーで味を調える。
**栄養価 (目安):** タンパク質 25g, 脂質 15g, 炭水化物 90g
**夕食 (700kcal)**
**料理名:カニと野菜のあんかけ丼**
* 材料:
* カニ缶 (脚):100g
* 白米:150g (炊飯後)
* 卵:1個
* 玉ねぎ:1/4個
* 人参:1/4本
* しいたけ:2個
* 水菜:30g
* だし汁:200ml
* 醤油:大さじ1
* みりん:大さじ1
* 片栗粉:小さじ2 (水大さじ2で溶く)
* 作り方:
1. 玉ねぎ、人参、しいたけを薄切りにする。
2. 鍋にだし汁、野菜を入れ、煮込む。
3. カニの脚を加え、醤油、みりんを加える。
4. 水溶き片栗粉でとろみをつける。
5. 溶き卵を回し入れ、半熟状にする。
6. 丼にご飯を盛り、あんかけをかけ、水菜を乗せる。
**栄養価 (目安):** タンパク質 40g, 脂質 15g, 炭水化物 103g
**注意点:**
* カロリー、PFCバランスは目安です。使用する材料や調理法によって変動します。
* カニ缶は種類によって塩分量に差があるため、調味料の量を調整してください。
* カニアレルギーの方は、他の食材に置き換えてください。
年末の蟹をヘルシーに楽しんでいただけるように、野菜をたっぷり使い、全粒粉のパンやパスタを取り入れました。 このメニューを参考に、素敵な年末をお過ごしください。
蟹を食いたいという要望をこれでもかとかなえてくれました!!
みなさんも自分の要望を自分に合った食事メニューをAIに考えてもらいましょう!!