Spaces:
Sleeping
Sleeping
File size: 1,985 Bytes
8a3099e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | #!/usr/bin/env bash
# Deploy CodeBERT inference Space to Hugging Face.
# Usage: ./scripts/deploy_inference_space.sh [YOUR_USERNAME/space-name]
set -euo pipefail
SPACE_SUFFIX="${1:-sql-error-classifier}"
MODEL_REPO="${2:-nishu08/sql-codebert-classifier}"
TOKEN="${HF_TOKEN:-${HUGGING_FACE_HUB_TOKEN:-}}"
if [[ -z "${TOKEN}" ]]; then
echo "Set HF_TOKEN before deploying."
exit 1
fi
if [[ "${SPACE_SUFFIX}" == */* ]]; then
SPACE_ID="${SPACE_SUFFIX}"
else
USERNAME=$(python - <<PY
from huggingface_hub import HfApi
api = HfApi(token="${TOKEN}")
print(api.whoami()["name"])
PY
)
SPACE_ID="${USERNAME}/${SPACE_SUFFIX}"
fi
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
WORKDIR=$(mktemp -d)
trap 'rm -rf "${WORKDIR}"' EXIT
echo "==> Preparing inference Space files..."
rsync -a \
--exclude '.venv' \
--exclude 'models' \
--exclude 'data' \
--exclude '__pycache__' \
--exclude '.git' \
"${ROOT}/" "${WORKDIR}/"
cp "${ROOT}/README_INFERENCE_SPACE.md" "${WORKDIR}/README.md"
cp "${ROOT}/Dockerfile.inference" "${WORKDIR}/Dockerfile"
# Bake default model id into Dockerfile
sed -i.bak "s|ENV SPACE_MODEL_ID=.*|ENV SPACE_MODEL_ID=${MODEL_REPO}|" "${WORKDIR}/Dockerfile"
rm -f "${WORKDIR}/Dockerfile.bak"
echo "==> Verifying model repo exists: ${MODEL_REPO}"
python - <<PY
from huggingface_hub import HfApi
api = HfApi(token="${TOKEN}")
api.model_info("${MODEL_REPO}")
print("Model found.")
PY
echo "==> Creating Space: ${SPACE_ID}"
python - <<PY
from huggingface_hub import HfApi
api = HfApi(token="${TOKEN}")
api.create_repo("${SPACE_ID}", repo_type="space", space_sdk="docker", exist_ok=True)
PY
echo "==> Uploading..."
python - <<PY
from huggingface_hub import HfApi
api = HfApi(token="${TOKEN}")
api.upload_folder(
folder_path="${WORKDIR}",
repo_id="${SPACE_ID}",
repo_type="space",
commit_message="Deploy CodeBERT inference Space",
)
PY
echo ""
echo "Done: https://huggingface.co/spaces/${SPACE_ID}"
echo "CPU hardware is sufficient for inference."
|