#!/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()