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()