Files
weiyu/modules/ai/test_chat_models.sh
2025-07-17 16:06:11 +08:00

96 lines
2.7 KiB
Bash
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.
#!/bin/bash
# ChatModel 信息查询 API 测试脚本
# 使用方法: ./test_chat_models.sh [base_url]
# 默认 base_url: http://127.0.0.1:9003
BASE_URL=${1:-"http://127.0.0.1:9003"}
API_BASE="/spring/ai/api/v1/chat-models"
echo "=== ChatModel 信息查询 API 测试 ==="
echo "Base URL: $BASE_URL"
echo "API Base: $API_BASE"
echo ""
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 测试函数
test_api() {
local endpoint=$1
local description=$2
echo -e "${BLUE}测试: $description${NC}"
echo "URL: $BASE_URL$API_BASE$endpoint"
response=$(curl -s -w "\nHTTP_STATUS:%{http_code}" "$BASE_URL$API_BASE$endpoint")
# 分离响应体和状态码
http_status=$(echo "$response" | grep "HTTP_STATUS:" | cut -d: -f2)
response_body=$(echo "$response" | sed '/HTTP_STATUS:/d')
if [ "$http_status" = "200" ]; then
echo -e "${GREEN}✓ 成功 (HTTP $http_status)${NC}"
echo "响应:"
echo "$response_body" | jq '.' 2>/dev/null || echo "$response_body"
else
echo -e "${RED}✗ 失败 (HTTP $http_status)${NC}"
echo "响应:"
echo "$response_body"
fi
echo ""
}
# 检查 jq 是否安装
if ! command -v jq &> /dev/null; then
echo -e "${YELLOW}警告: jq 未安装JSON 响应将不会格式化${NC}"
echo "安装 jq: brew install jq (macOS) 或 apt-get install jq (Ubuntu)"
echo ""
fi
# 检查 curl 是否安装
if ! command -v curl &> /dev/null; then
echo -e "${RED}错误: curl 未安装${NC}"
exit 1
fi
echo "开始测试..."
echo ""
# 1. 获取所有ChatModel信息
test_api "/info" "获取所有ChatModel信息"
# 2. 获取Primary ChatModel信息
test_api "/primary" "获取Primary ChatModel信息"
# 3. 获取RAG使用的ChatModel信息
test_api "/rag" "获取RAG使用的ChatModel信息"
# 4. 测试指定的ChatModel (zhipuai)
test_api "/test/zhipuai" "测试智谱AI ChatModel"
# 5. 测试指定的ChatModel (ollama)
test_api "/test/ollama" "测试Ollama ChatModel"
# 6. 测试指定的ChatModel (dashscope)
test_api "/test/dashscope" "测试Dashscope ChatModel"
# 7. 测试所有可用的ChatModel
test_api "/test-all" "测试所有可用的ChatModel"
echo "=== 测试完成 ==="
echo ""
echo "注意事项:"
echo "1. 确保应用正在运行且调试模式已启用 (bytedesk.debug=true)"
echo "2. 确保至少有一个ChatModel提供商已配置并启用"
echo "3. 测试API会实际调用ChatModel可能产生费用"
echo ""
echo "如果测试失败,请检查:"
echo "- 应用是否正在运行"
echo "- 调试模式是否启用"
echo "- ChatModel配置是否正确"
echo "- 网络连接是否正常"