liurenchaxin/tests/test_single_model2.py

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