feat: consolidate backend and docker-compose setup
This commit is contained in:
commit
ff3753a745
306 files changed
+35450
No files matched your search
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$ROOT"
|
||||
|
||||
unset VIRTUAL_ENV
|
||||
|
||||
if [[ -f .env ]]; then
|
||||
set -a
|
||||
# shellcheck disable=SC1091
|
||||
source .env
|
||||
set +a
|
||||
fi
|
||||
|
||||
PIPELINE_CONFIG="${PIPELINE_CONFIG:-config/pipeline_config_vllm.yaml}"
|
||||
PIPELINE_HOST="${PIPELINE_HOST:-0.0.0.0}"
|
||||
PIPELINE_PORT="${PIPELINE_PORT:-8090}"
|
||||
PIPELINE_DEVICE="${PIPELINE_DEVICE:-gpu:0}"
|
||||
VENV=".venv-api"
|
||||
|
||||
# Check if VLLM_SERVER_URL is provided to override the url in the config
|
||||
if [[ -n "${VLLM_SERVER_URL:-}" ]]; then
|
||||
echo "==> Overriding VLLM server URL with ${VLLM_SERVER_URL}"
|
||||
TEMP_CONFIG=$(mktemp /tmp/pipeline_config_XXXXXX.yaml)
|
||||
cp "${PIPELINE_CONFIG}" "${TEMP_CONFIG}"
|
||||
sed -i "s|server_url:.*|server_url: ${VLLM_SERVER_URL}|g" "${TEMP_CONFIG}"
|
||||
PIPELINE_CONFIG="${TEMP_CONFIG}"
|
||||
trap 'rm -f "${TEMP_CONFIG}"' EXIT
|
||||
fi
|
||||
|
||||
if [[ ! -d "${VENV}" ]]; then
|
||||
echo "Missing ${VENV}. Run ./scripts/install-pipeline.sh first." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -f "${PIPELINE_CONFIG}" ]]; then
|
||||
echo "Missing pipeline config: ${PIPELINE_CONFIG}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "==> Starting PaddleOCR-VL pipeline API"
|
||||
echo " config: ${PIPELINE_CONFIG}"
|
||||
echo " device: ${PIPELINE_DEVICE}"
|
||||
echo " url: http://${PIPELINE_HOST}:${PIPELINE_PORT}/layout-parsing"
|
||||
echo " vllm: ${VLLM_SERVER_URL:-http://127.0.0.1:8118/v1}"
|
||||
|
||||
echo "==> Starting secondary PFM classifier & OCR server"
|
||||
"${ROOT}/${VENV}/bin/python" "${ROOT}/config/classify_ocr_server.py" &
|
||||
# Patch default max_new_tokens in paddlex to avoid context length overflow in vllm
|
||||
PIPELINE_PY="${ROOT}/${VENV}/lib/python3.12/site-packages/paddlex/inference/pipelines/paddleocr_vl/pipeline.py"
|
||||
if [[ -f "${PIPELINE_PY}" ]]; then
|
||||
echo "==> Patching default max_new_tokens in paddlex to 1024"
|
||||
sed -i 's/vlm_kwargs\["max_new_tokens"\] = 4096/vlm_kwargs\["max_new_tokens"\] = 1024/g' "${PIPELINE_PY}"
|
||||
fi
|
||||
|
||||
exec "${ROOT}/${VENV}/bin/paddlex" --serve \
|
||||
--pipeline "${PIPELINE_CONFIG}" \
|
||||
--host "${PIPELINE_HOST}" \
|
||||
--port "${PIPELINE_PORT}" \
|
||||
--device "${PIPELINE_DEVICE}"
|
||||
Reference in new issue
Block a user