#!/usr/bin/env python3 """ 诊断脚本:检查智谱AI API Key配置 """ import os import sys from pathlib import Path # 添加项目路径 sys.path.insert(0, str(Path(__file__).parent / 'backend')) from app.config import get_settings def main(): print("=" * 60) print("智谱AI API Key 诊断") print("=" * 60) # 检查当前工作目录 print(f"\n当前工作目录: {Path.cwd()}") # 检查.env文件 env_files = [ Path.cwd() / ".env", Path.cwd().parent / ".env", Path(__file__).parent / ".env" ] print("\n检查.env文件:") for env_file in env_files: if env_file.exists(): print(f" ✓ 找到: {env_file}") else: print(f" ✗ 不存在: {env_file}") # 加载配置 print("\n加载配置...") try: settings = get_settings() print(" ✓ 配置加载成功") except Exception as e: print(f" ✗ 配置加载失败: {e}") return # 检查API Key print("\nAPI Key 检查:") api_key = settings.zhipuai_api_key if not api_key: print(" ✗ API Key 为空") return print(f" ✓ API Key 已设置") print(f" - 长度: {len(api_key)}") print(f" - 前10位: {api_key[:10]}...") print(f" - 后10位: ...{api_key[-10:]}") # 检查格式 if '.' in api_key: parts = api_key.split('.') print(f" ✓ 包含'.'分隔符,分为{len(parts)}部分") for i, part in enumerate(parts): print(f" 部分{i+1}: {len(part)}字符") else: print(" ✗ 缺少'.'分隔符(智谱AI Key应该包含'.')") # 尝试初始化客户端 print("\n尝试初始化智谱AI客户端...") try: from zhipuai import ZhipuAI client = ZhipuAI(api_key=api_key) print(" ✓ 客户端初始化成功") except Exception as e: print(f" ✗ 客户端初始化失败: {type(e).__name__}: {e}") import traceback print("\n详细错误:") print(traceback.format_exc()) print("\n" + "=" * 60) if __name__ == "__main__": main()