80 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
| #!/usr/bin/env python3
 | |
| # -*- coding: utf-8 -*-
 | |
| """
 | |
| Test script for a single model from OpenRouter
 | |
| """
 | |
| 
 | |
| import asyncio
 | |
| import aiohttp
 | |
| import os
 | |
| import json
 | |
| 
 | |
| # Get API key from environment or .env file
 | |
| api_key = os.getenv('OPENROUTER_API_KEY')
 | |
| if not api_key:
 | |
|     with open(".env", "r") as f:
 | |
|         for line in f:
 | |
|             line = line.strip()
 | |
|             if line.startswith("sk-or-v1-"):
 | |
|                 api_key = line
 | |
|                 break
 | |
| 
 | |
| if not api_key:
 | |
|     print("❌ No API key found")
 | |
|     exit(1)
 | |
| 
 | |
| async def test_model(model_name):
 | |
|     """Test a single model"""
 | |
|     # Remove :free tag for API call
 | |
|     clean_model = model_name.split(":")[0]
 | |
|     
 | |
|     print(f"🚀 Testing model: {model_name}")
 | |
|     print(f"   Clean name: {clean_model}")
 | |
|     
 | |
|     url = "https://openrouter.ai/api/v1/chat/completions"
 | |
|     headers = {
 | |
|         "Authorization": f"Bearer {api_key}",
 | |
|         "Content-Type": "application/json"
 | |
|     }
 | |
|     payload = {
 | |
|         "model": clean_model,
 | |
|         "messages": [
 | |
|             {"role": "user", "content": "Explain the concept of 'working hard' in one short sentence."}
 | |
|         ],
 | |
|         "max_tokens": 100
 | |
|     }
 | |
|     
 | |
|     print(f"   Payload: {json.dumps(payload, indent=2)}")
 | |
|     
 | |
|     try:
 | |
|         async with aiohttp.ClientSession() as session:
 | |
|             async with session.post(url, headers=headers, json=payload, timeout=30) as response:
 | |
|                 print(f"   Status: {response.status}")
 | |
|                 
 | |
|                 # Print response headers
 | |
|                 print("   Response Headers:")
 | |
|                 for key, value in response.headers.items():
 | |
|                     print(f"     {key}: {value}")
 | |
|                 
 | |
|                 if response.status == 200:
 | |
|                     result = await response.json()
 | |
|                     print(f"   Full response: {json.dumps(result, indent=2)}")
 | |
|                     
 | |
|                     content = result.get('choices', [{}])[0].get('message', {}).get('content', '')
 | |
|                     print(f"✅ Success - Content: '{content}'")
 | |
|                     return True
 | |
|                 else:
 | |
|                     error_text = await response.text()
 | |
|                     print(f"❌ Status {response.status}: {error_text}")
 | |
|                     return False
 | |
|     except Exception as e:
 | |
|         print(f"💥 Exception: {str(e)}")
 | |
|         return False
 | |
| 
 | |
| async def main():
 | |
|     """Main function"""
 | |
|     model_to_test = "mistralai/mistral-small-3.1-24b-instruct:free"
 | |
|     await test_model(model_to_test)
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     asyncio.run(main()) |