聊天工具优化

This commit is contained in:
2025-12-26 13:39:58 +08:00
parent f1c7639ec1
commit a4e2542b23
9 changed files with 1381 additions and 327 deletions
+151
View File
@@ -0,0 +1,151 @@
#!/usr/bin/env python3
"""
测试api后端连接
@author huazm
"""
import os
import sys
import requests
import json
# 配置
API_BASE_URL = os.environ.get('API_BASE_URL', 'http://localhost:8080')
API_PREFIX = '/api/ai-assistant'
def test_health():
"""测试健康检查"""
print("=" * 60)
print("测试1: 健康检查")
print("=" * 60)
try:
url = f'{API_BASE_URL}/actuator/health'
print(f"请求: GET {url}")
response = requests.get(url, timeout=5)
print(f"状态码: {response.status_code}")
print(f"响应: {response.text}")
return response.status_code == 200
except Exception as e:
print(f"❌ 错误: {e}")
return False
def test_get_applications():
"""测试获取应用列表"""
print("\n" + "=" * 60)
print("测试2: 获取应用列表")
print("=" * 60)
try:
url = f'{API_BASE_URL}{API_PREFIX}/chatapp'
print(f"请求: GET {url}")
response = requests.get(url, timeout=10)
print(f"状态码: {response.status_code}")
if response.status_code == 200:
data = response.json()
print(f"响应数据结构: {json.dumps(data, ensure_ascii=False, indent=2)[:500]}...")
if data.get('code') == 200 and data.get('data'):
apps = data['data']
print(f"\n✅ 成功获取 {len(apps)} 个应用")
if apps:
print(f"\n第一个应用示例:")
print(json.dumps(apps[0], ensure_ascii=False, indent=2))
return True
else:
print(f"❌ 响应格式不正确")
return False
else:
print(f"❌ 请求失败: {response.text}")
return False
except Exception as e:
print(f"❌ 错误: {e}")
return False
def test_get_recommend_questions(app_id):
"""测试获取推荐问题"""
print("\n" + "=" * 60)
print("测试3: 获取推荐问题")
print("=" * 60)
try:
url = f'{API_BASE_URL}{API_PREFIX}/chatapp/{app_id}/getRecommendQuestion'
params = {'pageSize': 3, 'current': 1}
print(f"请求: GET {url}")
print(f"参数: {params}")
response = requests.get(url, params=params, timeout=10)
print(f"状态码: {response.status_code}")
if response.status_code == 200:
data = response.json()
print(f"响应: {json.dumps(data, ensure_ascii=False, indent=2)[:500]}...")
if data.get('code') == 200:
records = data.get('data', {}).get('records', [])
print(f"\n✅ 成功获取 {len(records)} 个推荐问题")
for i, q in enumerate(records, 1):
print(f" {i}. {q.get('question', 'N/A')}")
return True
else:
print(f"⚠️ 响应code不为200")
return False
else:
print(f"❌ 请求失败: {response.text}")
return False
except Exception as e:
print(f"❌ 错误: {e}")
return False
def main():
"""主函数"""
print("\n" + "🔍 " * 20)
print("AI助手Web客户端 - API连接测试")
print("🔍 " * 20)
print(f"\n后端地址: {API_BASE_URL}")
print(f"API前缀: {API_PREFIX}\n")
results = []
# 测试1: 健康检查
results.append(("健康检查", test_health()))
# 测试2: 获取应用列表
apps_ok = test_get_applications()
results.append(("获取应用列表", apps_ok))
# 测试3: 获取推荐问题(使用第一个应用)
if apps_ok:
# 尝试获取第一个应用的ID
try:
url = f'{API_BASE_URL}{API_PREFIX}/chatapp'
response = requests.get(url, timeout=10)
data = response.json()
if data.get('code') == 200 and data.get('data'):
first_app_id = data['data'][0]['id']
results.append(("获取推荐问题", test_get_recommend_questions(first_app_id)))
else:
results.append(("获取推荐问题", False))
except:
results.append(("获取推荐问题", False))
else:
results.append(("获取推荐问题", False))
# 打印测试结果
print("\n" + "=" * 60)
print("测试结果汇总")
print("=" * 60)
for name, success in results:
status = "✅ 通过" if success else "❌ 失败"
print(f"{name:20s} {status}")
all_passed = all(result[1] for result in results)
print("\n" + "=" * 60)
if all_passed:
print("🎉 所有测试通过!Web客户端可以正常使用。")
else:
print("⚠️ 部分测试失败,请检查后端服务配置。")
print("=" * 60 + "\n")
return 0 if all_passed else 1
if __name__ == '__main__':
sys.exit(main())