Spaces:
Sleeping
Sleeping
| # Nutrition calculation tools (MuscleGrowthAI) | |
| Deterministic fitness/nutrition math for advisor responses. LLM personas receive pre-computed values instead of doing arithmetic themselves. | |
| ## Tools in use | |
| | Source | Cost | Status | Purpose | | |
| |--------|------|--------|---------| | |
| | **Local Python formulas** | Free | **Active** | lbs↔kg, protein g/kg (1.6–2.2), meal splits | | |
| | **USDA FoodData Central** | Free (API key) | Planned | Food nutrient lookup by name/barcode | | |
| | **Open Food Facts** | Free (no key) | Planned | Product/barcode nutrient data | | |
| ## Core formulas (local) | |
| - **Weight:** `kg = lbs × 0.45359237` | |
| - **Protein (hypertrophy):** `protein_g_min = round(weight_kg × 1.6)`, `protein_g_mid = round(weight_kg × 1.9)`, `protein_g_max = round(weight_kg × 2.2)` | |
| - **Meal split:** even distribution with remainder assigned to first meals | |
| Example: **230 lb** → **104.33 kg** → **167–230 g protein/day**; midpoint at **1.9 g/kg** ≈ **~198 g/day** (4 meals ≈ 50/50/49/49 g at the midpoint). | |
| ## How calculations reach advisors | |
| 1. **Context injection (primary):** When chat history mentions protein and a body weight is present, `compute_protein_advisory_context()` runs in `_build_enhanced_context_for_persona()` and adds a `PRE-COMPUTED NUTRITION VALUES` JSON block to each persona system prompt. | |
| 2. **LLM tool calling (optional):** `calculate_protein_target` is registered in `app/tools/nutrition_calculator.py` and enabled via `muscle_growth_config.yaml` → `tools.nutrition_calculator.enabled: true`. The orchestrator may call it for direct tool responses when appropriate. | |
| ## Files | |
| - `multi_llm_chatbot_backend/app/tools/nutrition_calculator.py` — formulas + tool definition | |
| - `multi_llm_chatbot_backend/app/core/improved_orchestrator.py` — injects computed context into persona prompts | |
| - `muscle_growth_config.yaml` — enables `nutrition_calculator` tool | |
| ## USDA / Open Food Facts (later) | |
| - USDA: register at [https://fdc.nal.usda.gov/api-key-signup](https://fdc.nal.usda.gov/api-key-signup), set `USDA_API_KEY` env var. | |
| - Open Food Facts: `https://world.openfoodfacts.org/api/v2/product/{barcode}` — no key required. | |