PhysicsCorrection/test.sh

126 lines
3.5 KiB
Bash

#!/bin/bash
# 快速测试脚本
echo "=========================================="
echo "数学作业批改系统 - 快速测试"
echo "=========================================="
echo ""
# 检查容器是否运行
if ! docker ps | grep -q math-grading; then
echo "❌ 容器未运行,请先启动容器"
echo "运行: docker start math-grading"
exit 1
fi
echo "✅ 容器正在运行"
echo ""
# 测试 1: 健康检查
echo "测试 1: 健康检查"
echo "----------------------------------------"
response=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8000/health)
if [ "$response" = "200" ]; then
echo "✅ 健康检查通过 (200 OK)"
else
echo "❌ 健康检查失败 (HTTP $response)"
fi
echo ""
# 测试 2: 环境变量检查
echo "测试 2: 环境变量检查"
echo "----------------------------------------"
echo "检查关键环境变量..."
# COZE_API_KEY
if docker exec math-grading env | grep -q "COZE_API_KEY=Bearer"; then
echo "✅ COZE_API_KEY 已设置"
else
echo "❌ COZE_API_KEY 未设置"
fi
# COZE_WORKSPACE_ID
if docker exec math-grading env | grep -q "COZE_WORKSPACE_ID=7622238752642957347"; then
echo "✅ COZE_WORKSPACE_ID 已设置 (7622238752642957347)"
else
echo "❌ COZE_WORKSPACE_ID 未设置或值不正确"
fi
# API 端点
if docker exec math-grading env | grep -q "COZE_INTEGRATION_BASE_URL=https://api.coze.cn/v1"; then
echo "✅ API 端点已配置 (https://api.coze.cn/v1)"
else
echo "❌ API 端点未配置或缺少 /v1 前缀"
fi
# LLM 模型
if docker exec math-grading env | grep -q "LLM_MODEL_NAME=doubao-seed-2-0-pro-260215"; then
echo "✅ LLM 模型已配置 (doubao-seed-2-0-pro-260215)"
else
echo "❌ LLM 模型未配置"
fi
echo ""
# 测试 3: LLM 调用测试
echo "测试 3: LLM 调用测试"
echo "----------------------------------------"
echo "发送测试请求..."
response=$(curl -s -X POST http://localhost:8000/stream_run \
-H "Content-Type: application/json" \
-d '{
"student_homework": [
{
"student_id": 1,
"student_name": "测试学生",
"homework_images": [
"https://dpcclass.oss-cn-beijing.aliyuncs.com/umsupload/2026/03/18/69baa4f5-4826-4901-00e1-c6e66f02947f.jpg?x-oss-process=image/resize,w_1000"
]
}
],
"answer_doc_url": "",
"comment_max_length": 50,
"max_concurrent": 1
}' \
--max-time 120)
if [ $? -eq 0 ]; then
echo "✅ 请求发送成功"
echo ""
echo "响应预览:"
echo "$response" | head -c 500
echo "..."
else
echo "❌ 请求失败"
fi
echo ""
# 测试 4: 日志检查
echo "测试 4: 日志检查"
echo "----------------------------------------"
echo "检查最近日志中的错误..."
errors=$(docker logs --tail 100 math-grading 2>&1 | grep -i "401\|404\|authentication is invalid" | wc -l)
if [ "$errors" -eq 0 ]; then
echo "✅ 未发现认证错误或端点错误"
else
echo "❌ 发现 $errors 个错误"
echo "最近的错误:"
docker logs --tail 50 math-grading 2>&1 | grep -i "401\|404\|authentication is invalid" | tail -5
fi
echo ""
# 总结
echo "=========================================="
echo "测试总结"
echo "=========================================="
echo ""
echo "如果所有测试都通过,说明部署成功!"
echo ""
echo "下一步:"
echo " 1. 查看详细日志: docker logs -f math-grading"
echo " 2. 测试完整功能: 使用上面的测试请求"
echo " 3. 部署到生产环境: 参考 DOCKER_DEPLOY.md"
echo ""