apts-chatbot / app.py
Amrita09's picture
Update app.py
5901016 verified
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}