5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

tuat-sysbiolabAdvent Calendar 2024

Day 17

生成AI を用いたトレーニングメニューの提案

Posted at

生成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に考えてもらいましょう!!

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?