Files
LLM_Engineering_OLD/community-contributions/fitness-nutrition-planner-agent

Fitness & Nutrition Planner Agent (Community Contribution)

A tool-using agent that generates a 7day vegetarian-friendly meal plan with calorie/macro targets and a consolidated grocery list. It supports targeted swaps (e.g., "swap Tuesday lunch") while honoring dietary patterns, allergies, and dislikes.

Disclaimer: This project is for educational purposes and is not medical advice. Consult a licensed professional for medical or specialized dietary needs.


Features

  • Calculates TDEE and macro targets via MifflinSt Jeor + activity factors.
  • Builds a 7day plan (breakfast/lunch/dinner) respecting dietary constraints.
  • Produces an aggregated grocery list for the week.
  • Supports swap of any single meal while keeping macros reasonable.
  • Minimal Streamlit UI for demos.
  • Extensible tool-based architecture to plug real recipe APIs/DBs.

🧱 Architecture

  • Agent core: OpenAI function-calling (tools) with a simple orchestration loop.
  • Tools:
    1. calc_calories_and_macros computes targets.
    2. compose_meal_plan creates the 7day plan.
    3. grocery_list_from_plan consolidates ingredients/quantities.
    4. swap_meal replaces one meal (by kcal proximity and constraints).
  • Recipe source: a tiny in-memory recipe DB for demo; replace with a real API or your own dataset.

🚀 Quickstart

1) Install

pip install openai streamlit pydantic python-dotenv

2) Configure

Create a .env file in this folder:

OPENAI_API_KEY=your_key_here
OPENAI_MODEL=gpt-4o-mini

3) Run CLI (example)

python agent.py

4) Run UI

streamlit run app.py

🧪 Sample Profile (from issue author)

See sample_profile.json for the exact values used to produce demo_output.md.

  • Sex: female
  • Age: 45
  • Height: 152 cm (~5 ft)
  • Weight: 62 kg
  • Activity: light
  • Goal: maintain
  • Diet: vegetarian

🔧 Extend

  • Replace the in-memory recipes with:
    • A real recipe API (e.g., Spoonacular) or
    • Your own dataset (CSV/DB) + filters/tags
  • Add price lookups to produce a budget-aware grocery list.
  • Add adherence tracking and charts.
  • Integrate wearables or daily steps to refine TDEE dynamically.
  • Add snacks for days slightly under target kcals.

🛡️ Safety Notes

  • The agent warns for extreme deficits but does not diagnose conditions.
  • For calorie targets below commonly recommended minimums (e.g., ~1200 kcal/day for many adults), advise consulting a professional.

📁 Project Layout

fitness-nutrition-planner-agent/
├─ README.md
├─ agent.py
├─ app.py
├─ sample_profile.json
└─ demo_output.md

🤝 How to contribute

  • Keep notebooks (if any) with cleared outputs.
  • Follow the course repos contribution guidelines.
  • Include screenshots or a short Loom/YT demo link in your PR description.