cnesst-chatbot / deploy.sh
CNESST Deploy
v2: Enhanced metadata, re-ranker, 4646 docs
8dc4e6e
Raw History Blame Contribute Delete
2.44 kB
#!/bin/bash
# Deploy CNESST chatbot to HuggingFace Spaces
# Usage: HF_TOKEN=hf_xxx HF_USERNAME=yourusername bash deploy.sh
set -e
HF_TOKEN="${HF_TOKEN:-$1}"
HF_USERNAME="${HF_USERNAME:-$2}"
SPACE_NAME="${SPACE_NAME:-cnesst-chatbot}"
if [ -z "$HF_TOKEN" ] || [ -z "$HF_USERNAME" ]; then
echo "Usage: HF_TOKEN=hf_xxx HF_USERNAME=yourusername bash deploy.sh"
echo " or: bash deploy.sh hf_xxx yourusername"
exit 1
fi
SPACE_URL="https://huggingface.co/spaces/${HF_USERNAME}/${SPACE_NAME}"
REPO_URL="https://${HF_USERNAME}:${HF_TOKEN}@huggingface.co/spaces/${HF_USERNAME}/${SPACE_NAME}"
echo "🚀 Deploying CNESST chatbot to HuggingFace Spaces..."
echo " Space: ${SPACE_URL}"
# Create the space via API
echo "📦 Creating space..."
CREATE_RESPONSE=$(curl -s -X POST \
"https://huggingface.co/api/repos/create" \
-H "Authorization: Bearer ${HF_TOKEN}" \
-H "Content-Type: application/json" \
-d "{
\"type\": \"space\",
\"name\": \"${SPACE_NAME}\",
\"private\": false,
\"sdk\": \"docker\"
}")
echo "Create response: $CREATE_RESPONSE"
# Add secrets (GROQ_API_KEY)
echo "🔐 Setting GROQ_API_KEY secret..."
curl -s -X POST \
"https://huggingface.co/api/spaces/${HF_USERNAME}/${SPACE_NAME}/secrets" \
-H "Authorization: Bearer ${HF_TOKEN}" \
-H "Content-Type: application/json" \
-d "{\"key\": \"GROQ_API_KEY\", \"value\": \"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\"}"
echo ""
echo "🔐 Setting LLM_BACKEND secret..."
curl -s -X POST \
"https://huggingface.co/api/spaces/${HF_USERNAME}/${SPACE_NAME}/secrets" \
-H "Authorization: Bearer ${HF_TOKEN}" \
-H "Content-Type: application/json" \
-d "{\"key\": \"LLM_BACKEND\", \"value\": \"groq\"}"
echo ""
# Push git repo
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
echo "📤 Pushing to HuggingFace..."
GIT_DIR="${SCRIPT_DIR}/.git" GIT_WORK_TREE="${SCRIPT_DIR}" git remote add hf "$REPO_URL" 2>/dev/null || \
GIT_DIR="${SCRIPT_DIR}/.git" GIT_WORK_TREE="${SCRIPT_DIR}" git remote set-url hf "$REPO_URL"
GIT_DIR="${SCRIPT_DIR}/.git" GIT_WORK_TREE="${SCRIPT_DIR}" git push hf master:main --force
echo ""
echo "✅ Deployment complete!"
echo " Space URL: ${SPACE_URL}"
echo " Build status: ${SPACE_URL}/logs"
echo ""
echo "⏳ Wait 3-5 minutes for the Docker container to build..."
echo " The app will be available at: ${SPACE_URL}"