实现前后端分离的agent
This commit is contained in:
134
test_multi_model.py
Normal file
134
test_multi_model.py
Normal file
@@ -0,0 +1,134 @@
|
||||
"""
|
||||
多模型切换功能测试脚本
|
||||
用于验证后端是否正确支持多模型动态切换
|
||||
"""
|
||||
|
||||
import requests
|
||||
import json
|
||||
|
||||
API_URL = "http://localhost:8001/chat"
|
||||
|
||||
|
||||
def test_model_switching():
|
||||
"""测试模型切换功能"""
|
||||
|
||||
print("=" * 60)
|
||||
print("测试多模型切换功能")
|
||||
print("=" * 60)
|
||||
|
||||
# 测试消息
|
||||
test_message = "你好,请简单介绍一下自己"
|
||||
|
||||
# 测试不同的模型
|
||||
models_to_test = ["zhipu", "local"]
|
||||
|
||||
for model in models_to_test:
|
||||
print(f"\n📤 测试模型: {model}")
|
||||
print("-" * 60)
|
||||
|
||||
try:
|
||||
response = requests.post(
|
||||
API_URL,
|
||||
json={
|
||||
"message": test_message,
|
||||
"model": model
|
||||
},
|
||||
timeout=30
|
||||
)
|
||||
|
||||
if response.status_code == 200:
|
||||
data = response.json()
|
||||
print(f"✅ 成功!")
|
||||
print(f" 使用的模型: {data['model_used']}")
|
||||
print(f" 会话 ID: {data['thread_id'][:8]}...")
|
||||
print(f" 回复预览: {data['reply'][:100]}...")
|
||||
else:
|
||||
print(f"❌ 失败! 状态码: {response.status_code}")
|
||||
print(f" 错误信息: {response.text}")
|
||||
|
||||
except requests.exceptions.Timeout:
|
||||
print(f"⏰ 超时! 模型 '{model}' 响应时间过长")
|
||||
except requests.exceptions.ConnectionError:
|
||||
print(f"🔌 连接失败! 请确认后端服务正在运行 (python backend.py)")
|
||||
except Exception as e:
|
||||
print(f"💥 异常: {str(e)}")
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
print("测试完成!")
|
||||
print("=" * 60)
|
||||
|
||||
|
||||
def test_conversation_memory():
|
||||
"""测试跨模型的会话记忆"""
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
print("测试跨模型会话记忆")
|
||||
print("=" * 60)
|
||||
|
||||
import uuid
|
||||
thread_id = str(uuid.uuid4())
|
||||
|
||||
print(f"\n📝 使用固定会话 ID: {thread_id[:8]}...")
|
||||
|
||||
# 第一轮对话 - 使用 zhipu 模型
|
||||
print("\n📤 第1轮 - 使用 zhipu 模型")
|
||||
try:
|
||||
response1 = requests.post(
|
||||
API_URL,
|
||||
json={
|
||||
"message": "我叫小明,记住我的名字",
|
||||
"thread_id": thread_id,
|
||||
"model": "zhipu"
|
||||
},
|
||||
timeout=30
|
||||
)
|
||||
if response1.status_code == 200:
|
||||
data1 = response1.json()
|
||||
print(f" ✅ 回复: {data1['reply'][:100]}...")
|
||||
print(f" 🤖 使用模型: {data1['model_used']}")
|
||||
except Exception as e:
|
||||
print(f" ❌ 失败: {e}")
|
||||
return
|
||||
|
||||
# 第二轮对话 - 切换到 local 模型,测试是否记得名字
|
||||
print("\n📤 第2轮 - 切换到 local 模型")
|
||||
try:
|
||||
response2 = requests.post(
|
||||
API_URL,
|
||||
json={
|
||||
"message": "我叫什么名字?",
|
||||
"thread_id": thread_id,
|
||||
"model": "local"
|
||||
},
|
||||
timeout=30
|
||||
)
|
||||
if response2.status_code == 200:
|
||||
data2 = response2.json()
|
||||
print(f" ✅ 回复: {data2['reply'][:100]}...")
|
||||
print(f" 🤖 使用模型: {data2['model_used']}")
|
||||
|
||||
# 检查是否记得名字
|
||||
if "小明" in data2['reply']:
|
||||
print(" 🎉 成功!跨模型记忆功能正常")
|
||||
else:
|
||||
print(" ⚠️ 注意:模型可能没有正确回忆上下文")
|
||||
except Exception as e:
|
||||
print(f" ❌ 失败: {e}")
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
print("会话记忆测试完成!")
|
||||
print("=" * 60)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("\n⚠️ 请确保后端服务正在运行 (python backend.py)\n")
|
||||
|
||||
# 运行基本测试
|
||||
test_model_switching()
|
||||
|
||||
# 询问是否运行记忆测试
|
||||
choice = input("\n是否运行会话记忆测试?(y/n): ").strip().lower()
|
||||
if choice == 'y':
|
||||
test_conversation_memory()
|
||||
|
||||
print("\n✨ 所有测试完成!")
|
||||
Reference in New Issue
Block a user