scam / scripts /test_groq_api.py
Gankit12's picture
Upload 129 files
31f0e50 verified
Raw
History Blame Contribute Delete
4.64 kB
#!/usr/bin/env python
"""
Test Groq API Connectivity.
This script verifies that the Groq API key is configured correctly
and that we can make successful API calls.
Usage:
python scripts/test_groq_api.py
"""
import os
import sys
import time
# Add project root to path
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
def test_groq_api():
"""Test Groq API connectivity as specified in TASKS.md."""
print("=" * 60)
print("Task 2.2 Verification - Groq API Connectivity")
print("=" * 60)
print()
# Step 1: Load environment
print("Step 1: Loading environment variables...")
try:
from dotenv import load_dotenv
load_dotenv()
print(" [OK] Environment loaded")
except ImportError:
print(" [ERROR] python-dotenv not installed")
print(" Run: pip install python-dotenv")
return False
# Step 2: Check API key
print("\nStep 2: Checking GROQ_API_KEY...")
api_key = os.getenv("GROQ_API_KEY")
if not api_key:
print(" [ERROR] GROQ_API_KEY not set in environment")
print(" Add to .env file: GROQ_API_KEY=your_key_here")
return False
if api_key.startswith("gsk_"):
print(f" [OK] API key found: {api_key[:15]}...")
else:
print(" [WARN] API key format unexpected (should start with 'gsk_')")
print(f" Key: {api_key[:10]}...")
# Step 3: Initialize Groq client
print("\nStep 3: Initializing Groq client...")
try:
from groq import Groq
client = Groq(api_key=api_key)
print(" [OK] Groq client initialized")
except ImportError:
print(" [ERROR] groq library not installed")
print(" Run: pip install groq")
return False
except Exception as e:
print(f" [ERROR] Failed to initialize client: {e}")
return False
# Step 4: Test API call
print("\nStep 4: Testing API call...")
model = os.getenv("GROQ_MODEL", "llama-3.3-70b-versatile")
print(f" Model: {model}")
try:
start = time.time()
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": "Hello!"}],
max_tokens=50
)
response_time = time.time() - start
# Extract response
content = response.choices[0].message.content
print(f" [OK] API call successful ({response_time:.2f}s)")
print(f" Response: {content[:100]}...")
except Exception as e:
error_msg = str(e)
print(f" [ERROR] API call failed: {error_msg}")
if "401" in error_msg or "invalid" in error_msg.lower():
print("\n Authentication Error:")
print(" 1. Check your API key is correct")
print(" 2. Get a new key from: https://console.groq.com/")
elif "rate" in error_msg.lower():
print("\n Rate Limit Error:")
print(" 1. Wait a moment and try again")
print(" 2. Check your Groq usage limits")
return False
# Step 5: Test with LangChain integration
print("\nStep 5: Testing LangChain-Groq integration...")
try:
from langchain_groq import ChatGroq
llm = ChatGroq(
api_key=api_key,
model_name=model,
temperature=0.7,
max_tokens=50
)
start = time.time()
response = llm.invoke("Say 'Hello from LangChain!'")
response_time = time.time() - start
print(f" [OK] LangChain integration working ({response_time:.2f}s)")
print(f" Response: {response.content[:100]}...")
except ImportError:
print(" [SKIP] langchain-groq not installed (optional)")
except Exception as e:
print(f" [WARN] LangChain integration test failed: {e}")
print(" (This is optional - basic Groq API works)")
# Summary
print("\n" + "=" * 60)
print("Task 2.2 Status Summary")
print("=" * 60)
print("[OK] Groq API key obtained")
print("[OK] .env file configured")
print("[OK] Test API call successful")
print("\nTask 2.2: COMPLETE")
print("=" * 60)
return True
def main():
"""Main entry point."""
success = test_groq_api()
return 0 if success else 1
if __name__ == "__main__":
exit_code = main()
sys.exit(exit_code)