Files
test_item_gen/test_qianwen_api.py
2026-02-04 14:38:52 +08:00

100 lines
3.4 KiB
Python
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""通义千问API连接测试脚本"""
import sys
from pathlib import Path
# 添加项目路径到sys.path
project_root = Path(__file__).parent
sys.path.insert(0, str(project_root))
from modules.api_client import APIClient
def test_qianwen_api():
"""测试通义千问API连接"""
print("=" * 50)
print("通义千问API连接测试")
print("=" * 50)
try:
# 创建API客户端
print("\n1⃣ 正在初始化API客户端...")
client = APIClient()
# 设置为qianwen提供商
print("2⃣ 切换到通义千问提供商...")
client.set_provider('qianwen')
# 获取配置信息
config = client.get_provider_config()
print(f"\n📋 当前配置:")
print(f" - 提供商: qianwen")
print(f" - 模型: {config.get('model', 'N/A')}")
print(f" - API地址: {config.get('base_url', 'N/A')}")
print(f" - API密钥: {'已配置' if config.get('api_key') else '未配置'}")
print(f" - 最大tokens: {config.get('max_tokens', 'N/A')}")
print(f" - 温度参数: {config.get('temperature', 'N/A')}")
# 检查API密钥
if not config.get('api_key'):
print("\n❌ 错误: API密钥未配置")
print(" 请在 config/api_config.yaml 中配置 qianwen.api_key")
return False
# 发送测试请求
print("\n3⃣ 发送测试请求...")
test_prompt = "请用一句话介绍你自己。"
print(f" 测试Prompt: {test_prompt}")
print("\n⏳ 等待API响应...")
response = client.call_api(test_prompt)
# 显示响应
print("\n✅ API连接成功!")
print(f"\n📤 API响应:")
print("-" * 50)
print(response)
print("-" * 50)
# 响应统计
print(f"\n📊 响应统计:")
print(f" - 响应长度: {len(response)} 字符")
print(f" - 响应行数: {response.count(chr(10)) + 1}")
print("\n" + "=" * 50)
print("✅ 通义千问API连接测试成功!")
print("=" * 50)
return True
except Exception as e:
print("\n" + "=" * 50)
print("❌ API连接测试失败!")
print("=" * 50)
print(f"\n错误类型: {type(e).__name__}")
print(f"错误信息: {str(e)}")
# 常见错误提示
print("\n💡 可能的解决方案:")
if "api_key" in str(e).lower() or "unauthorized" in str(e).lower():
print(" - 检查API密钥是否正确")
print(" - 确认API密钥是否有效且未过期")
elif "timeout" in str(e).lower() or "connect" in str(e).lower():
print(" - 检查网络连接")
print(" - 确认API地址是否正确")
print(" - 尝试使用VPN或代理")
elif "max_tokens" in str(e).lower():
print(" - 调整max_tokens参数")
else:
print(" - 查看详细错误信息")
print(" - 检查API配置文件格式")
import traceback
print(f"\n📝 详细错误堆栈:")
print("-" * 50)
traceback.print_exc()
print("-" * 50)
return False
if __name__ == "__main__":
success = test_qianwen_api()
sys.exit(0 if success else 1)