#!/usr/bin/env bash set -Eeuo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" if [ -n "${OPENPI_PYTHON:-}" ]; then PY="$OPENPI_PYTHON" elif [ -x "$ROOT/.venv/bin/python" ]; then PY="$ROOT/.venv/bin/python" else PY="$(command -v python3 || true)" fi if [ -z "$PY" ] || [ ! -x "$PY" ]; then echo "ERROR: no usable Python interpreter found" exit 1 fi CHECKPOINT="${POLICY_CHECKPOINT:-$ROOT/checkpoints/29999}" HOST="${POLICY_HOST:-0.0.0.0}" PORT="${POLICY_PORT:-8000}" DEFAULT_PROMPT="${POLICY_DEFAULT_PROMPT:-}" export PYTHONDONTWRITEBYTECODE=1 export PYTHONPATH="$ROOT:$ROOT/src:$ROOT/packages/openpi-client/src" export OPENPI_REAL_PIPER_X_ASSETS="$CHECKPOINT/assets" export XLA_PYTHON_CLIENT_PREALLOCATE="${XLA_PYTHON_CLIENT_PREALLOCATE:-false}" if [ -n "${POLICY_GPU:-}" ]; then export CUDA_VISIBLE_DEVICES="$POLICY_GPU" fi ARGS=( --checkpoint "$CHECKPOINT" --host "$HOST" --port "$PORT" ) if [ -n "$DEFAULT_PROMPT" ]; then ARGS+=(--default-prompt "$DEFAULT_PROMPT") fi echo "Repository: $ROOT" echo "Python: $PY" echo "Checkpoint: $CHECKPOINT" echo "Server: ws://$HOST:$PORT" echo "CUDA_VISIBLE_DEVICES=${CUDA_VISIBLE_DEVICES:-unchanged}" cd "$ROOT" exec "$PY" -u deployment/serve_piperx.py "${ARGS[@]}" "$@"