完成世界书、骰子、apiconfig页面处理
This commit is contained in:
151
test.py
Normal file
151
test.py
Normal file
@@ -0,0 +1,151 @@
|
||||
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 Key 状态"""
|
||||
print("\n" + "=" * 60)
|
||||
print("API Key 检测 (LangChain)")
|
||||
print("=" * 60)
|
||||
|
||||
# 从环境变量读取配置
|
||||
API_KEY = os.getenv("MAIN_LLM_API_KEY", "")
|
||||
BASE_URL = os.getenv("MAIN_LLM_BASE_URL", "")
|
||||
MODEL = os.getenv("MAIN_LLM_MODEL", "gpt-3.5-turbo")
|
||||
|
||||
print(f"\n配置信息:")
|
||||
print(f" 模型: {MODEL}")
|
||||
if BASE_URL:
|
||||
print(f" API地址: {BASE_URL}")
|
||||
|
||||
if not API_KEY:
|
||||
print("\n❌ 未找到 API Key!")
|
||||
print("\n请在 .env 文件中设置 MAIN_LLM_API_KEY")
|
||||
return False
|
||||
|
||||
print(f" API密钥: {'*' * 8}{API_KEY[-4:]}")
|
||||
print(f"\n正在测试...")
|
||||
|
||||
# 执行测试
|
||||
result = test_api_key(API_KEY, BASE_URL if BASE_URL else None, MODEL)
|
||||
|
||||
print(f"\n{result['message']}")
|
||||
|
||||
if result["valid"]:
|
||||
print(f" 响应时间: {result['response_time']:.2f}秒")
|
||||
print(f"\n💡 API Key 可以正常使用!")
|
||||
return True
|
||||
else:
|
||||
print(f"\n💡 请检查:")
|
||||
print(" 1. API Key 是否正确")
|
||||
print(" 2. API 端点地址是否正确")
|
||||
print(" 3. 网络连接是否正常")
|
||||
return False
|
||||
|
||||
|
||||
def quick_test():
|
||||
"""快速测试"""
|
||||
API_KEY = os.getenv("MAIN_LLM_API_KEY", "")
|
||||
BASE_URL = os.getenv("MAIN_LLM_BASE_URL", "")
|
||||
MODEL = os.getenv("MAIN_LLM_MODEL", "gpt-3.5-turbo")
|
||||
|
||||
if not API_KEY:
|
||||
print("❌ 未配置 API Key")
|
||||
return False
|
||||
|
||||
result = test_api_key(API_KEY, BASE_URL if BASE_URL else None, MODEL)
|
||||
print(result['message'])
|
||||
return result['valid']
|
||||
|
||||
|
||||
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()
|
||||
Reference in New Issue
Block a user