nilotpal-sql-bot / test_api.py
nilotpaldhar2004's picture
Update test_api.py
1bdb772 unverified
Raw
History Blame Contribute Delete
2.27 kB
import urllib.request
import json
import os
API_KEY = os.getenv("GEMINI_API_KEY", "")
def try_model(model_name, version="v1beta"):
"""Tests a specific model path."""
url = f"https://generativelanguage.googleapis.com/{version}/models/{model_name}:generateContent?key={API_KEY}"
print(f"📡 Testing: {version}/models/{model_name} ...")
payload = {
"contents": [{"parts": [{"text": "Is the API active? Reply with 'YES'."}]}]
}
try:
req = urllib.request.Request(
url,
data=json.dumps(payload).encode("utf-8"),
headers={"Content-Type": "application/json"}
)
with urllib.request.urlopen(req, timeout=10) as resp:
result = json.loads(resp.read().decode())
text = result['candidates'][0]['content']['parts'][0]['text']
print(f"✅ SUCCESS! Gemini says: {text.strip()}")
return True, model_name, version
except Exception as e:
print(f"❌ Failed: {e}")
return False, None, None
def run_test():
print("🚀 Starting Final Connectivity Test...")
if not API_KEY or len(API_KEY) < 10:
print("❌ ERROR: GEMINI_API_KEY is missing or too short! Check Secrets.")
return
# ✅ Updated configs — all confirmed present in your models list
configs = [
("gemini-2.0-flash", "v1beta"),
("gemini-2.0-flash-001", "v1beta"),
("gemini-2.5-flash", "v1beta"),
("gemini-2.0-flash-lite", "v1beta"),
]
for model, ver in configs:
success, final_model, final_ver = try_model(model, ver)
if success:
print("\n" + "="*40)
print(f"🏆 WORKING CONFIGURATION FOUND!")
print(f"MODEL : {final_model}")
print(f"VERSION: {final_ver}")
print(f"URL : https://generativelanguage.googleapis.com/{final_ver}/models/{final_model}:generateContent?key=...")
print("="*40)
return
print("\n🛑 ALL ATTEMPTS FAILED.")
print("Tip: Visit https://generativelanguage.googleapis.com/v1beta/models?key=YOUR_KEY")
print(" to see the exact models available for your API key.")
if __name__ == "__main__":
run_test()