Files
AIRegulation-DocAnalysis/test_upload.sh

76 lines
1.7 KiB
Bash
Raw Normal View History

2026-04-28 11:29:33 +08:00
#!/bin/bash
# test_upload.sh - 测试文档上传(支持虚拟环境)
set -e
API_URL=${API_URL:-http://localhost:8000}
echo "========================================"
echo "测试文档上传功能"
echo "========================================"
echo ""
echo "API地址: $API_URL"
echo ""
# 检查健康状态
echo "1. 检查服务健康状态..."
curl -s $API_URL/health | python -m json.tool 2>/dev/null || curl -s $API_URL/health
echo ""
# 检查文件参数
if [ -z "$1" ]; then
echo "使用方法: ./test_upload.sh <文件路径>"
echo ""
echo "示例:"
echo " ./test_upload.sh sample.pdf"
echo " ./test_upload.sh sample.docx"
exit 1
fi
FILE_PATH=$1
if [ ! -f "$FILE_PATH" ]; then
echo "错误: 文件不存在: $FILE_PATH"
exit 1
fi
FILE_NAME=$(basename "$FILE_PATH")
FILE_EXT="${FILE_NAME##*.}"
echo "文件: $FILE_PATH"
echo "类型: $FILE_EXT"
echo ""
# 上传文档
echo "2. 上传文档..."
echo ""
RESPONSE=$(curl -s -X POST "$API_URL/api/v1/documents/upload" \
-F "file=@$FILE_PATH" \
-F "doc_name=$FILE_NAME" \
-F "regulation_type=测试法规")
echo "$RESPONSE" | python -m json.tool 2>/dev/null || echo "$RESPONSE"
echo ""
# 提取doc_id
DOC_ID=$(echo "$RESPONSE" | python -c "import sys,json; d=json.load(sys.stdin); print(d.get('doc_id',''))" 2>/dev/null)
if [ -n "$DOC_ID" ]; then
echo "文档ID: $DOC_ID"
echo ""
# 测试检索
echo "3. 测试检索..."
echo ""
SEARCH_QUERY="法规安全要求"
curl -s -X POST "$API_URL/api/v1/knowledge/search" \
-H "Content-Type: application/json" \
-d "{\"query\": \"$SEARCH_QUERY\", \"top_k\": 5}" \
| python -m json.tool 2>/dev/null || cat
else
echo "上传可能失败,请检查响应内容"
fi