125 lines
3.3 KiB
Python
125 lines
3.3 KiB
Python
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()
|