File size: 1,512 Bytes
356e05f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import os
from dotenv import load_dotenv
from agents import AsyncOpenAI, OpenAIChatCompletionsModel, set_tracing_disabled

set_tracing_disabled(True)
load_dotenv()

# Get Gemini API key from environment variables
gemini_api_key = os.getenv("GEMINI_API_KEY")

# Remove quotes if present (sometimes .env files have quotes)
if gemini_api_key:
    gemini_api_key = gemini_api_key.strip().strip('"').strip("'")

# Check if Gemini API key is set
if not gemini_api_key:
    raise ValueError(
        "GEMINI_API_KEY is not set. Please add it to your .env file: GEMINI_API_KEY=your_key_here"
    )

# Validate API key format (Gemini keys typically start with AIza)
if not gemini_api_key.startswith("AIza"):
    print(f"Warning: GEMINI_API_KEY format may be incorrect. Keys usually start with 'AIza'. Got: {gemini_api_key[:10]}...")

# Configure Gemini using AsyncOpenAI with Gemini's OpenAI-compatible endpoint
client_provider = AsyncOpenAI(
    api_key=gemini_api_key,
    base_url="https://generativelanguage.googleapis.com/v1beta/openai/",
)

# Use Gemini model - gemini-1.5-pro or gemini-1.5-flash are good options
# gemini-1.5-flash is faster, gemini-1.5-pro is more capable
model = OpenAIChatCompletionsModel(
    model="gemini-1.5-flash",  # Using Gemini 1.5 Flash for fast responses
    openai_client=client_provider
)

print("Setup complete! Model ready with Google Gemini 1.5 Flash")
print(f"API Key status: {'Loaded' if gemini_api_key else 'Missing'} (length: {len(gemini_api_key) if gemini_api_key else 0})")