forked from lukaszett/Knack-Scraper
35 lines
1.1 KiB
Bash
35 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
if [ -d "$GLINER_MODEL_PATH" ] && [ -f "$GLINER_MODEL_PATH/config.json" ]; then
|
|
echo "GLiNER model already present at $GLINER_MODEL_PATH"
|
|
exit 0
|
|
fi
|
|
|
|
echo "Downloading GLiNER model $GLINER_MODEL_ID to $GLINER_MODEL_PATH"
|
|
mkdir -p "$GLINER_MODEL_PATH"
|
|
|
|
# Use Python with huggingface_hub for reliable model downloading
|
|
python3 << 'EOF'
|
|
import os
|
|
from huggingface_hub import snapshot_download
|
|
|
|
model_id = os.environ.get('GLINER_MODEL_ID')
|
|
model_path = os.environ.get('GLINER_MODEL_PATH')
|
|
|
|
if not model_id or not model_path:
|
|
raise ValueError(f"GLINER_MODEL_ID and GLINER_MODEL_PATH environment variables must be set")
|
|
|
|
try:
|
|
print(f"Downloading model {model_id} to {model_path}")
|
|
snapshot_download(
|
|
repo_id=model_id,
|
|
cache_dir=None, # Don't use cache, download directly
|
|
local_dir=model_path,
|
|
local_dir_use_symlinks=False # Don't use symlinks, copy files
|
|
)
|
|
print(f"Successfully downloaded GLiNER model to {model_path}")
|
|
except Exception as e:
|
|
print(f"Error downloading GLiNER model: {e}")
|
|
exit(1)
|
|
EOF
|