117 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Python
		
	
	
	
| #!/usr/bin/env python3
 | ||
| # -*- coding: utf-8 -*-
 | ||
| """
 | ||
| 测试LiteLLM自定义API端点
 | ||
| """
 | ||
| 
 | ||
| import requests
 | ||
| import json
 | ||
| import os
 | ||
| 
 | ||
| def test_litellm_api():
 | ||
|     """测试LiteLLM API端点"""
 | ||
|     api_url = "http://master.tailnet-68f9.ts.net:40012"
 | ||
|     
 | ||
|     print(f"🔍 测试LiteLLM API端点: {api_url}")
 | ||
|     
 | ||
|     # 获取用户的API密钥
 | ||
|     gemini_key = os.getenv('GEMINI_API_KEY', '')
 | ||
|     
 | ||
|     # 尝试不同的API密钥格式
 | ||
|     test_keys = [
 | ||
|         f"sk-{gemini_key}",  # 添加sk-前缀
 | ||
|         gemini_key,  # 原始密钥
 | ||
|         "sk-test",  # 测试密钥
 | ||
|         "test-key",  # 简单测试
 | ||
|     ]
 | ||
|     
 | ||
|     for api_key in test_keys:
 | ||
|         if not api_key or api_key == "sk-":
 | ||
|             continue
 | ||
|             
 | ||
|         print(f"\n🔑 测试API密钥: {api_key[:10]}...")
 | ||
|         
 | ||
|         # 测试模型列表
 | ||
|         try:
 | ||
|             headers = {"x-litellm-api-key": api_key}
 | ||
|             response = requests.get(f"{api_url}/v1/models", headers=headers, timeout=10)
 | ||
|             print(f"模型列表状态码: {response.status_code}")
 | ||
|             
 | ||
|             if response.status_code == 200:
 | ||
|                 models = response.json()
 | ||
|                 print(f"✅ 找到 {len(models.get('data', []))} 个可用模型")
 | ||
|                 for model in models.get('data', [])[:3]:  # 显示前3个模型
 | ||
|                     print(f"  - {model.get('id', 'unknown')}")
 | ||
|                     
 | ||
|                 # 测试聊天完成
 | ||
|                 test_payload = {
 | ||
|                     "model": "gemini-2.5-flash",
 | ||
|                     "messages": [
 | ||
|                         {"role": "user", "content": "Hello, this is a test message. Please respond briefly."}
 | ||
|                     ],
 | ||
|                     "max_tokens": 50
 | ||
|                 }
 | ||
|                 
 | ||
|                 chat_response = requests.post(
 | ||
|                     f"{api_url}/v1/chat/completions", 
 | ||
|                     json=test_payload, 
 | ||
|                     headers=headers, 
 | ||
|                     timeout=30
 | ||
|                 )
 | ||
|                 
 | ||
|                 print(f"聊天完成状态码: {chat_response.status_code}")
 | ||
|                 
 | ||
|                 if chat_response.status_code == 200:
 | ||
|                     result = chat_response.json()
 | ||
|                     content = result.get('choices', [{}])[0].get('message', {}).get('content', '')
 | ||
|                     print(f"✅ API测试成功!响应: {content[:100]}...")
 | ||
|                     print(f"\n🎉 可用的API配置:")
 | ||
|                     print(f"  - 端点: {api_url}/v1/chat/completions")
 | ||
|                     print(f"  - 头部: x-litellm-api-key: {api_key}")
 | ||
|                     print(f"  - 模型: gemini-2.5-flash")
 | ||
|                     return True
 | ||
|                 else:
 | ||
|                     print(f"❌ 聊天测试失败: {chat_response.text[:200]}...")
 | ||
|                     
 | ||
|             elif response.status_code == 401:
 | ||
|                 print(f"❌ 认证失败: {response.text[:100]}...")
 | ||
|             else:
 | ||
|                 print(f"❌ 请求失败: {response.text[:100]}...")
 | ||
|                 
 | ||
|         except requests.exceptions.RequestException as e:
 | ||
|             print(f"❌ 连接失败: {e}")
 | ||
|             
 | ||
|     return False
 | ||
| 
 | ||
| def test_environment_setup():
 | ||
|     """测试环境变量设置"""
 | ||
|     print("\n🔧 当前环境变量:")
 | ||
|     gemini_key = os.getenv('GEMINI_API_KEY', '')
 | ||
|     google_key = os.getenv('GOOGLE_API_KEY', '')
 | ||
|     
 | ||
|     print(f"GEMINI_API_KEY: {'已设置' if gemini_key else '未设置'} ({gemini_key[:10]}... 如果已设置)")
 | ||
|     print(f"GOOGLE_API_KEY: {'已设置' if google_key else '未设置'} ({google_key[:10]}... 如果已设置)")
 | ||
|     
 | ||
|     return gemini_key
 | ||
| 
 | ||
| if __name__ == "__main__":
 | ||
|     print("🚀 开始测试LiteLLM自定义API端点...")
 | ||
|     
 | ||
|     # 检查环境
 | ||
|     api_key = test_environment_setup()
 | ||
|     
 | ||
|     if not api_key:
 | ||
|         print("\n⚠️  警告: 未找到GEMINI_API_KEY环境变量")
 | ||
|     
 | ||
|     # 测试API
 | ||
|     success = test_litellm_api()
 | ||
|     
 | ||
|     if success:
 | ||
|         print("\n✅ LiteLLM API端点测试成功!")
 | ||
|         print("\n💡 建议: 可以使用这个端点替代Google官方API")
 | ||
|     else:
 | ||
|         print("\n❌ LiteLLM API端点测试失败")
 | ||
|         print("\n🔍 可能的解决方案:")
 | ||
|         print("  1. 检查LiteLLM服务器配置")
 | ||
|         print("  2. 确认API密钥格式")
 | ||
|         print("  3. 检查网络连接") |