Files
SillyTavern_replica/test.py

125 lines
3.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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()