import os

import requests

from dotenv import load_dotenv

load_dotenv()

GEMINI_API_KEY = os.getenv('GEMINI_API_KEY')
GEMINI_API_URL = "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent"
GEMINI_API_URL_PRO = "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-pro:generateContent"
GEMINI_API_URL_2_5_FLASH = "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent"
GEMINI_API_URL_2_5_PRO = "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-pro:generateContent"

def generate_gemini_response(prompt):
    """
    Generate a response using the Gemini API.
    
    Args:
        prompt (str): The text prompt to send to the API
        
    Returns:
        str: The generated response or error message
    """
    try:
        headers = {
            'Content-Type': 'application/json'
        }
        
        data = {
            "contents": [
                {
                    "parts": [
                        {
                            "text": prompt
                        }
                    ]
                }
            ]
        }
        
        response = requests.post(
            f"{GEMINI_API_URL}?key={GEMINI_API_KEY}",
            headers=headers,
            json=data
        )
        
        if response.status_code == 200:
            result = response.json()
            if 'candidates' in result and len(result['candidates']) > 0:
                return result['candidates'][0]['content']['parts'][0]['text']
            return "No response generated"
        else:
            return f"Error: {response.status_code} - {response.text}"
            
    except Exception as e:
        return f"Error making API request: {str(e)}"

if __name__ == "__main__":
    test_prompt = "Explain how AI works in a few words"
    response = generate_gemini_response(test_prompt)
    print(f"Prompt: {test_prompt}")
    print(f"Response: {response}") 