| #!/bin/bash |
| |
| |
|
|
| set -e |
|
|
| SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" |
| cd "$SCRIPT_DIR" |
|
|
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" |
| echo "β HF Spaces Auto-Deployment Script β" |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ" |
| echo "" |
|
|
| |
| check_precompute() { |
| if [ -f "precomputed_data/models_v1.parquet" ] && [ -f "precomputed_data/chunk_index_v1.parquet" ]; then |
| echo "β
Precomputed data files found" |
| return 0 |
| else |
| echo "β³ Precomputed data not ready yet" |
| return 1 |
| fi |
| } |
|
|
| |
| upload_data() { |
| echo "" |
| echo "π€ Uploading chunked data to Hugging Face Dataset..." |
| echo "" |
| |
| cd backend |
| source venv/bin/activate 2>/dev/null || python3 -m venv venv && source venv/bin/activate |
| pip install -q huggingface-hub tqdm 2>/dev/null |
| |
| cd .. |
| python upload_to_hf_dataset.py --dataset-id modelbiome/hf-viz-precomputed --version v1 |
| |
| echo "" |
| echo "β
Data upload complete!" |
| } |
|
|
| |
| prepare_space() { |
| SPACE_DIR="${1:-hf-viz-space}" |
| |
| echo "" |
| echo "π¦ Preparing files for HF Space..." |
| echo "" |
| |
| mkdir -p "$SPACE_DIR" |
| |
| |
| cp app.py "$SPACE_DIR/" |
| cp requirements.txt "$SPACE_DIR/" |
| cp Dockerfile "$SPACE_DIR/" |
| cp README_SPACE.md "$SPACE_DIR/README.md" |
| cp -r backend "$SPACE_DIR/" |
| cp -r frontend "$SPACE_DIR/" |
| mkdir -p "$SPACE_DIR/precomputed_data" |
| touch "$SPACE_DIR/precomputed_data/.gitkeep" |
| |
| echo "β
Files prepared in: $SPACE_DIR" |
| echo "" |
| echo "Next steps:" |
| echo " 1. cd $SPACE_DIR" |
| echo " 2. git init" |
| echo " 3. git remote add origin https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME" |
| echo " 4. git add ." |
| echo " 5. git commit -m 'Deploy HF Model Ecosystem Visualizer'" |
| echo " 6. git push" |
| } |
|
|
| |
| main() { |
| if check_precompute; then |
| echo "" |
| read -p "Precompute complete! Upload data to HF Dataset? (y/n) " -n 1 -r |
| echo "" |
| if [[ $REPLY =~ ^[Yy]$ ]]; then |
| upload_data |
| fi |
| |
| echo "" |
| read -p "Prepare files for HF Space deployment? (y/n) " -n 1 -r |
| echo "" |
| if [[ $REPLY =~ ^[Yy]$ ]]; then |
| prepare_space |
| fi |
| else |
| echo "" |
| echo "β³ Waiting for precompute to complete..." |
| echo " Check progress: tail -f precompute_full.log" |
| echo " Or run this script again when precompute is done" |
| echo "" |
| echo "Current status:" |
| ps aux | grep "[p]recompute_data.py" && echo " Precompute is running" || echo " Precompute not running" |
| fi |
| } |
|
|
| main "$@" |
|
|
|
|
|
|