#!/usr/bin/env bash # 在带 NVIDIA 显卡的 Linux 机器上安装 OCR Worker set -euo pipefail ROOT="$(cd "$(dirname "$0")" && pwd)" VENV="${ROOT}/.venv" PORT="${OCR_PORT:-23567}" echo "==> OCR Worker 安装目录: ${ROOT}" if ! command -v python3 >/dev/null; then echo "错误: 请先安装 python3" exit 1 fi 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 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 GPU,CUDA 主版本: ${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 <