import sys import google.generativeai as genai import openai import os from dotenv import load_dotenv load_dotenv() def check_gemini_api_key(): """检测 Gemini API Key 是否可用""" try: genai.configure(api_key=os.getenv("GEMINI_API_KEY")) model = genai.GenerativeModel("gemini-2.5-flash") response = model.generate_content("hi") print("✅ Gemini API Key 可用") print(f" 响应: {response.text[:50]}...") return True except Exception as e: print(f"❌ Gemini API Key 不可用: {e}") return False def check_openai_api_key(): """检测 OpenAI API Key 是否可用""" try: client = openai.OpenAI(api_key=os.getenv("OPENAI_API_KEY")) response = client.chat.completions.create( model="gpt-3.5-turbo", # 使用最便宜的模型进行测试 messages=[{"role": "user", "content": "hi"}], max_tokens=10 ) print("✅ OpenAI API Key 可用") print(f" 响应: {response.choices[0].message.content[:50]}...") return True except openai.AuthenticationError: print("❌ OpenAI API Key 无效或已过期") return False except openai.APIError as e: print(f"❌ OpenAI API 错误: {e}") return False except Exception as e: print(f"❌ OpenAI API Key 检测失败: {e}") return False def check_deepseek_api_key(): """检测 DeepSeek API Key 是否可用""" try: client = openai.OpenAI( api_key=os.getenv("DEEPSEEK_API_KEY"), base_url=os.getenv("DEEPSEEK_BASE_URL", "https://api.deepseek.com/v1"), ) model_name = os.getenv("DEEPSEEK_MODEL_NAME", "deepseek-chat") response = client.chat.completions.create( model=model_name, messages=[{"role": "user", "content": "hi"}], max_tokens=10 ) print("✅ DeepSeek API Key 可用") print(f" 响应: {response.choices[0].message.content[:50]}...") return True except openai.AuthenticationError: print("❌ DeepSeek API Key 无效或已过期") return False except openai.APIError as e: print(f"❌ DeepSeek API 错误: {e}") return False except Exception as e: print(f"❌ DeepSeek API Key 检测失败: {e}") return False def check_both_keys(): """同时检测两个 API Key""" print("=" * 40) print("开始检测 API Keys...") print("=" * 40) gemini_valid = check_gemini_api_key() print() openai_valid = check_openai_api_key() print("\n" + "=" * 40) print("检测结果汇总:") print(f" Gemini: {'✅ 可用' if gemini_valid else '❌ 不可用'}") print(f" OpenAI: {'✅ 可用' if openai_valid else '❌ 不可用'}") print("=" * 40) return gemini_valid, openai_valid if __name__ == "__main__": target = (sys.argv[1] if len(sys.argv) > 1 else "all").strip().lower() if target == "gemini": check_gemini_api_key() elif target == "openai": check_openai_api_key() elif target == "deepseek": check_deepseek_api_key() else: check_both_keys()