from fastapi import FastAPI import google.generativeai as genai from pydantic import BaseModel import os from dotenv import load_dotenv # Load API Key load_dotenv() API_KEY = os.getenv("GEMINI_API_KEY") if not API_KEY: raise ValueError("GEMINI_API_KEY is missing. Set it in your .env file.") genai.configure(api_key=API_KEY) app = FastAPI() # Request model class InjuryInput(BaseModel): injury_type: str age: int past_injuries: str sport: str mobility: int pressure: int weight_bearing: int @app.get("/") def home(): return {"message": "API is running!"} @app.post("/analyze-injury") def analyze_injury(data: InjuryInput): severity_level = max(data.mobility, data.pressure, data.weight_bearing) recovery_prompt = f""" Generate a **personalized recovery plan** for an athlete with the following details: - **Injury Type**: {data.injury_type} - **Age**: {data.age} years - **Sport**: {data.sport} - **Past Injuries**: {data.past_injuries} - **Injury Severity Level**: {severity_level} (1 = Low, 2 = Medium, 3 = High) Provide: 1️⃣ **Rehabilitation Plan** 2️⃣ **Estimated Recovery Time** 3️⃣ **Diet & Supplements** 4️⃣ **Precautions** """ # Call Gemini API response = genai.GenerativeModel("gemini-1.5-pro").generate_content(recovery_prompt) # Extract response safely response = genai.GenerativeModel("gemini-1.5-pro").generate_content(recovery_prompt) recovery_plan = response.text if response and hasattr(response, 'text') else "No response received." #recovery_plan = response.candidates[0].content if response.candidates else "No response received." return {"recovery_plan": recovery_plan}