#!/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 ""