File size: 3,192 Bytes
ee7234a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/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()