| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- #!/bin/bash
- # NER 服务端到端测试脚本
- # 测试流程:NER 服务健康检查 -> 实体提取 -> 关系抽取 -> 文档 NER
- set -e
- # 配置
- NER_SERVICE_URL="${NER_SERVICE_URL:-http://localhost:8001}"
- JAVA_SERVICE_URL="${JAVA_SERVICE_URL:-http://localhost:5232}"
- echo "=========================================="
- echo "NER 服务端到端测试"
- echo "=========================================="
- echo "NER 服务地址: $NER_SERVICE_URL"
- echo "Java 服务地址: $JAVA_SERVICE_URL"
- echo ""
- # 测试 1: Python NER 服务健康检查
- echo ">> 测试 1: Python NER 服务健康检查"
- response=$(curl -s -X GET "$NER_SERVICE_URL/health")
- echo "响应: $response"
- if echo "$response" | grep -q '"status":"ok"'; then
- echo "✅ Python NER 服务健康检查通过"
- else
- echo "❌ Python NER 服务健康检查失败"
- exit 1
- fi
- echo ""
- # 测试 2: 实体提取
- echo ">> 测试 2: 实体提取"
- response=$(curl -s -X POST "$NER_SERVICE_URL/ner/extract" \
- -H "Content-Type: application/json" \
- -d '{
- "documentId": "test-doc-001",
- "text": "2024年5月15日,成都检测公司在成都市高新区完成了环境监测项目的检测工作,项目负责人张经理使用了噪音检测设备进行测量,测量结果显示噪音值为50分贝。",
- "extractRelations": true
- }')
- echo "响应: $response"
- if echo "$response" | grep -q '"success":true'; then
- entity_count=$(echo "$response" | grep -o '"entityCount":[0-9]*' | grep -o '[0-9]*')
- relation_count=$(echo "$response" | grep -o '"relationCount":[0-9]*' | grep -o '[0-9]*')
- echo "✅ 实体提取成功: entityCount=$entity_count, relationCount=$relation_count"
- else
- echo "❌ 实体提取失败"
- exit 1
- fi
- echo ""
- # 测试 3: 关系抽取
- echo ">> 测试 3: 关系抽取"
- response=$(curl -s -X POST "$NER_SERVICE_URL/ner/relations" \
- -H "Content-Type: application/json" \
- -d '{
- "documentId": "test-doc-002",
- "text": "成都检测公司负责环境监测项目",
- "entities": [
- {
- "name": "成都检测公司",
- "type": "ORG",
- "value": "成都检测公司",
- "position": {"charStart": 0, "charEnd": 6, "line": 1},
- "tempId": "e1"
- },
- {
- "name": "环境监测项目",
- "type": "PROJECT",
- "value": "环境监测项目",
- "position": {"charStart": 8, "charEnd": 14, "line": 1},
- "tempId": "e2"
- }
- ]
- }')
- echo "响应: $response"
- if echo "$response" | grep -q '"success":true'; then
- echo "✅ 关系抽取成功"
- else
- echo "❌ 关系抽取失败"
- exit 1
- fi
- echo ""
- # 测试 4: Java NER 服务健康检查(如果 Java 服务已启动)
- echo ">> 测试 4: Java 服务健康检查"
- if curl -s -f "$JAVA_SERVICE_URL/actuator/health" > /dev/null 2>&1; then
- response=$(curl -s "$JAVA_SERVICE_URL/actuator/health")
- echo "响应: $response"
- echo "✅ Java 服务健康检查通过"
-
- # 测试 5: 通过 Java 服务调用 NER
- echo ""
- echo ">> 测试 5: 通过 Java 服务调用 NER"
- response=$(curl -s -X POST "$JAVA_SERVICE_URL/api/ner/extract" \
- -H "Content-Type: application/json" \
- -d '{
- "documentId": "test-doc-003",
- "text": "2024年6月1日,湖北环保局在武汉市武昌区开展了水质检测工作。"
- }')
- echo "响应: $response"
- if echo "$response" | grep -q '"code":200'; then
- echo "✅ 通过 Java 服务调用 NER 成功"
- else
- echo "⚠️ 通过 Java 服务调用 NER 可能失败(请检查日志)"
- fi
- else
- echo "⚠️ Java 服务未启动,跳过 Java 服务测试"
- fi
- echo ""
- echo "=========================================="
- echo "测试完成!"
- echo "=========================================="
|