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. 检查网络连接") |