"""通义千问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)