import sys from pathlib import Path import os import time # 添加项目根目录到 Python 路径 project_root = Path(__file__).parent sys.path.insert(0, str(project_root)) from backend.core.models.chat_history import ChatHistory # 导入 LangChain try: from langchain_openai import ChatOpenAI from langchain_core.messages import HumanMessage except ImportError: print("⚠️ 未安装 langchain 库,请先运行: pip install langchain-openai langchain-core") sys.exit(1) def test_api_key(api_key: str, base_url: str = None, model: str = "gpt-3.5-turbo") -> dict: """ 使用 LangChain 测试 API Key Args: api_key: API密钥 base_url: API基础URL(可选) model: 模型名称 Returns: dict: 测试结果 """ try: # 创建 LLM 实例 llm_kwargs = { "model": model, "api_key": api_key, "temperature": 0, "max_tokens": 5 } if base_url: llm_kwargs["base_url"] = base_url llm = ChatOpenAI(**llm_kwargs) # 发送测试消息 start_time = time.time() response = llm.invoke([HumanMessage(content="Hi")]) end_time = time.time() return { "valid": True, "message": f"✅ API Key 有效!响应时间: {end_time - start_time:.2f}秒", "response_time": end_time - start_time, "content": response.content } except Exception as e: return { "valid": False, "message": f"❌ API Key 无效: {str(e)}", "error": str(e) } def check_api_status(): """ 检查 API 配置状态 ⚠️ 注意:此函数已废弃,API Key 现在存储在配置文件中 请使用 API 配置页面进行测试 """ print("\n" + "=" * 60) print("⚠️ 此测试功能已废弃") print("=" * 60) print("\nAPI Key 现在存储在配置文件中(data/apiconfig/*.json)") print("请使用以下方式测试 API 连接:") print(" 1. 打开应用") print(" 2. 进入左侧边栏 → API 配置") print(" 3. 点击 '测试连接' 按钮") print("\n或者直接在聊天中发送消息进行测试") return False def quick_test(): """ 快速测试 ⚠️ 注意:此函数已废弃 """ print("❌ 此测试功能已废弃,请使用 API 配置页面进行测试") return False def test_list_all_chats(): """测试聊天历史""" try: result = ChatHistory.list_all_chats() print(f"\n获取到 {len(result.get('chat', []))} 个聊天") return result except Exception as e: print(f"错误: {str(e)}") import traceback traceback.print_exc() return None # 运行测试 if __name__ == "__main__": if len(sys.argv) > 1: if sys.argv[1] == "--check": check_api_status() elif sys.argv[1] == "--quick": quick_test() elif sys.argv[1] == "--chat": test_list_all_chats() else: print("用法:") print(" python test.py --check # 检查 API Key") print(" python test.py --quick # 快速验证") print(" python test.py --chat # 测试聊天历史") else: check_api_status()