OCR Worker: add check and systemd install scripts.

This commit is contained in:
dekun
2026-06-28 14:39:38 +08:00
parent ff0c103dc5
commit 9713c640b4
5 changed files with 211 additions and 24 deletions
+44 -16
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# 在带 NVIDIA 显卡(如 RTX 3060 Ti的 Linux 机器上安装 OCR Worker
# 在带 NVIDIA 显卡的 Linux 机器上安装 OCR Worker
set -euo pipefail
ROOT="$(cd "$(dirname "$0")" && pwd)"
@@ -9,37 +9,65 @@ PORT="${OCR_PORT:-23567}"
echo "==> OCR Worker 安装目录: ${ROOT}"
if ! command -v python3 >/dev/null; then
echo "请先安装 python3"
echo "错误: 请先安装 python3"
exit 1
fi
python3 -m venv "${VENV}"
if [[ -d "${VENV}" ]]; then
echo "==> 已有虚拟环境,跳过 python3 -m venv"
else
python3 -m venv "${VENV}"
fi
# shellcheck disable=SC1091
source "${VENV}/bin/activate"
pip install -U pip wheel
# Paddle GPUCUDA 11.8,适配多数 3060 Ti 驱动)
pip install paddlepaddle-gpu==2.6.2 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
install_paddle() {
if command -v nvidia-smi >/dev/null 2>&1; then
local cuda_major
cuda_major="$(nvidia-smi 2>/dev/null | sed -n 's/.*CUDA Version: \([0-9]*\)\.[0-9]*/\1/p' | head -1)"
cuda_major="${cuda_major:-11}"
echo "==> 检测到 NVIDIA GPUCUDA 主版本: ${cuda_major}"
if [[ "${cuda_major}" -ge 12 ]]; then
echo "==> 安装 paddlepaddle-gpu (CUDA 12.x)…"
pip install paddlepaddle-gpu==2.6.2 -i https://www.paddlepaddle.org.cn/packages/stable/cu123/ \
|| pip install paddlepaddle-gpu==2.6.2 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
else
echo "==> 安装 paddlepaddle-gpu (CUDA 11.x)…"
pip install paddlepaddle-gpu==2.6.2 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
fi
else
echo "==> 未检测到 GPU,安装 CPU 版 paddlepaddle…"
pip install paddlepaddle==2.6.2
fi
}
install_paddle
pip install -r "${ROOT}/requirements.txt"
echo ""
echo "==> 验证依赖…"
python3 -c "import fastapi, uvicorn, paddle; print('paddle', paddle.__version__, 'OK')"
cat <<EOF
安装完成。
启动(前台测试):
【重要】你已经在目录 ${ROOT} 时,不要再 cd deploy/ocr-worker,直接:
cd ${ROOT}
OCR_USE_GPU=true OCR_PORT=${PORT} bash start.sh
OCR_USE_GPU=true bash start.sh
局域网地址示例:
http://192.168.x.x:${PORT}
另开终端测试(服务启动后):
curl -s http://127.0.0.1:${PORT}/health
在成绩档案「系统设置 → AI 模型」里填写 OCR 服务地址:
http://192.168.x.x:${PORT}
应返回: {"status":"ok","gpu":true}
可选环境变量:
OCR_USE_GPU=true # 使用显卡(默认 true)
OCR_API_KEY=随机字符串 # 局域网鉴权(可选)
OCR_MAX_SIDE=1280 # 识别长边上限
OCR_PORT=${PORT} # 监听端口
注册为 systemd 服务(推荐,后台常驻):
sudo bash ${ROOT}/install-service.sh
诊断:
bash ${ROOT}/check.sh
EOF