76 lines
1.7 KiB
Bash
76 lines
1.7 KiB
Bash
#!/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 |