Download scripts/validate-smoke.sh from dougvk/Unlimited-OCR-RDNA4: direct link, hf CLI and curl.
- Browser
- Download file 3.35 kB
-
https://huggingface.co/dougvk/Unlimited-OCR-RDNA4/resolve/main/scripts/validate-smoke.sh
- Command line
-
hf download hf://dougvk/Unlimited-OCR-RDNA4/scripts/validate-smoke.sh
-
curl -L -o validate-smoke.sh https://huggingface.co/dougvk/Unlimited-OCR-RDNA4/resolve/main/scripts/validate-smoke.sh
3.35 kB
| set -euo pipefail | |
| ROOT=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd) | |
| CLI=${CLI:-$ROOT/.venv/bin/unlimited-ocr-rdna4} | |
| PYTHON=${PYTHON:-$ROOT/.venv/bin/python} | |
| DEVICE=${UNLIMITED_OCR_DEVICE:-0} | |
| MODEL_DIR=${UNLIMITED_OCR_MODEL_DIR:-} | |
| AMD_SMI_GPU=${AMD_SMI_GPU:-} | |
| NETWORK_ISOLATED=${VALIDATION_NETWORK_ISOLATED:-0} | |
| EXPECTED_IMAGE_SHA256=${EXPECTED_IMAGE_SHA256:-13df40051aceb3bd14f75622697dda1f2a96515bb95c0483e0920cd4d41cbc01} | |
| EXPECTED_PDF_SHA256=${EXPECTED_PDF_SHA256:-fb17a6396c3e73a025e388a09f73357960ca0bf95124e38179e06a2e64442438} | |
| EVIDENCE_OUTPUT=${VALIDATION_EVIDENCE_OUTPUT:-} | |
| CACHE_BASE=${XDG_CACHE_HOME:-${HOME}/.cache}/unlimited-ocr-rdna4 | |
| FIXTURE_IMAGE="$ROOT/tests/fixtures/rdna4-smoke.png" | |
| FIXTURE_PDF="$ROOT/tests/fixtures/rdna4-smoke.pdf" | |
| mkdir -p "$CACHE_BASE" | |
| WORK_DIR=$(mktemp -d "$CACHE_BASE/validation.XXXXXX") | |
| trap 'rm -rf -- "$WORK_DIR"' EXIT | |
| printf '%s %s\n' \ | |
| 'f5099e17be868abfb4213dbdab220deac82a2db93ba87ab22f03219178246972' "$FIXTURE_IMAGE" \ | |
| 'cdd2b484d0ac90bd98b489dd97565a65eb17246f713359524cddd41d78cc10cb' "$FIXTURE_PDF" | | |
| sha256sum --check --status | |
| MODEL_ARGS=() | |
| if [[ -n $MODEL_DIR ]]; then | |
| MODEL_ARGS=(--model-dir "$MODEL_DIR") | |
| fi | |
| run_isolated() { | |
| sudo -n systemd-run \ | |
| --quiet --wait --pipe --collect \ | |
| -p PrivateNetwork=yes \ | |
| -p "User=$(id -un)" \ | |
| -p "WorkingDirectory=$ROOT" \ | |
| -p "Environment=HOME=$HOME" \ | |
| -- "$@" | |
| } | |
| run_ocr() { | |
| if [[ $NETWORK_ISOLATED == 1 ]]; then | |
| run_isolated "$@" | |
| else | |
| "$@" | |
| fi | |
| } | |
| if [[ $NETWORK_ISOLATED == 1 ]]; then | |
| if run_isolated /usr/bin/python3 -c \ | |
| 'import socket; socket.create_connection(("1.1.1.1", 80), timeout=0.25)' \ | |
| >"$WORK_DIR/network-probe.out" 2>"$WORK_DIR/network-probe.err"; then | |
| printf 'error: PrivateNetwork validation probe unexpectedly reached the network\n' >&2 | |
| exit 5 | |
| fi | |
| fi | |
| "$CLI" doctor --device "$DEVICE" --require-model --json "${MODEL_ARGS[@]}" >"$WORK_DIR/doctor.json" | |
| run_ocr "$CLI" run \ | |
| --input "$FIXTURE_IMAGE" \ | |
| --output "$WORK_DIR/smoke-image-1.md" \ | |
| --device "$DEVICE" \ | |
| --json \ | |
| "${MODEL_ARGS[@]}" >"$WORK_DIR/image-1.json" | |
| run_ocr "$CLI" run \ | |
| --input "$FIXTURE_IMAGE" \ | |
| --output "$WORK_DIR/smoke-image-2.md" \ | |
| --device "$DEVICE" \ | |
| --json \ | |
| "${MODEL_ARGS[@]}" >"$WORK_DIR/image-2.json" | |
| run_ocr "$CLI" run \ | |
| --input "$FIXTURE_PDF" \ | |
| --output "$WORK_DIR/smoke-pdf.md" \ | |
| --device "$DEVICE" \ | |
| --dpi 150 \ | |
| --max-pages 1 \ | |
| --json \ | |
| "${MODEL_ARGS[@]}" >"$WORK_DIR/pdf.json" | |
| if [[ -n $AMD_SMI_GPU ]]; then | |
| amd-smi process -g "$AMD_SMI_GPU" --json >"$WORK_DIR/gpu-processes.json" | |
| fi | |
| CHECK_ARGS=( | |
| --doctor "$WORK_DIR/doctor.json" | |
| --image-run "$WORK_DIR/image-1.json" | |
| --image-run "$WORK_DIR/image-2.json" | |
| --pdf-run "$WORK_DIR/pdf.json" | |
| --image-output "$WORK_DIR/smoke-image-1.md" | |
| --image-output "$WORK_DIR/smoke-image-2.md" | |
| --pdf-output "$WORK_DIR/smoke-pdf.md" | |
| ) | |
| CHECK_ARGS+=(--expected-image-sha256 "$EXPECTED_IMAGE_SHA256") | |
| CHECK_ARGS+=(--expected-pdf-sha256 "$EXPECTED_PDF_SHA256") | |
| if [[ $NETWORK_ISOLATED == 1 ]]; then | |
| CHECK_ARGS+=(--network-isolated) | |
| fi | |
| if [[ -n $AMD_SMI_GPU ]]; then | |
| CHECK_ARGS+=(--gpu-processes "$WORK_DIR/gpu-processes.json") | |
| fi | |
| if [[ -n $EVIDENCE_OUTPUT ]]; then | |
| CHECK_ARGS+=(--evidence-output "$EVIDENCE_OUTPUT") | |
| fi | |
| "$PYTHON" "$ROOT/scripts/check-validation.py" "${CHECK_ARGS[@]}" | |