PokerGameDesigner / test_api.py
Estazz's picture
Upload folder using huggingface_hub
ee7234a verified
#!/usr/bin/env python3
"""
DeepSeek V3 API 连接测试脚本
用于验证API配置是否正确
"""
from openai import OpenAI
from config import API_KEY, API_BASE_URL, MODEL_NAME
def test_connection():
"""测试API连接"""
print("=" * 60)
print("🧪 DeepSeek V3 API 连接测试")
print("=" * 60)
print(f"📍 API Base URL: {API_BASE_URL}")
print(f"🔑 API Key: {API_KEY[:10]}...{API_KEY[-4:]}" if len(API_KEY) > 14 else f"🔑 API Key: {API_KEY}")
print(f"🤖 Model Name: {MODEL_NAME}")
print("=" * 60)
try:
# 初始化客户端
print("\n⏳ 初始化OpenAI客户端...")
client = OpenAI(
api_key=API_KEY,
base_url=API_BASE_URL
)
print("✅ 客户端初始化成功")
# 测试简单请求
print("\n⏳ 发送测试请求...")
response = client.chat.completions.create(
model=MODEL_NAME,
messages=[
{"role": "system", "content": "你是一个友好的助手。"},
{"role": "user", "content": "请用一句话介绍自己。"}
],
max_tokens=100,
temperature=0.7
)
# 输出响应
print("✅ API调用成功!")
print("\n" + "=" * 60)
print("📤 响应内容:")
print("=" * 60)
print(response.choices[0].message.content)
print("=" * 60)
# 测试流式输出
print("\n⏳ 测试流式输出...")
print("=" * 60)
print("📤 流式响应内容:")
print("=" * 60)
stream = client.chat.completions.create(
model=MODEL_NAME,
messages=[
{"role": "user", "content": "数到5"}
],
max_tokens=50,
stream=True
)
for chunk in stream:
# 安全地提取内容,避免IndexError
if chunk.choices and len(chunk.choices) > 0:
delta_content = chunk.choices[0].delta.content
if delta_content:
print(delta_content, end='', flush=True)
print("\n" + "=" * 60)
print("\n✅ 流式输出测试成功!")
# 总结
print("\n" + "=" * 60)
print("🎉 所有测试通过!API配置正确!")
print("=" * 60)
print("\n💡 下一步:运行 'python app.py' 启动应用")
return True
except Exception as e:
print(f"\n❌ 测试失败:{type(e).__name__}")
print(f"📝 错误详情:{str(e)}")
print("\n" + "=" * 60)
print("🔍 故障排查建议:")
print("=" * 60)
print("1. 检查 config.py 中的 API_KEY 是否正确")
print("2. 检查 config.py 中的 API_BASE_URL 是否正确")
print("3. 检查 config.py 中的 MODEL_NAME 是否正确")
print("4. 确认网络连接正常,能访问API服务器")
print("5. 确认已安装 openai 包:pip install openai")
print("=" * 60)
return False
if __name__ == "__main__":
test_connection()