80 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.4 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 = "qwen/qwq-32b:free"
 | 
						|
    await test_model(model_to_test)
 | 
						|
 | 
						|
if __name__ == "__main__":
 | 
						|
    asyncio.run(main()) |