58 lines
1.5 KiB
Bash
Executable File
58 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
# Ollama Model Setup Script
|
|
# Checks if model exists and downloads if needed
|
|
|
|
set -e
|
|
|
|
MODEL="${OLLAMA_MODEL:-phi3:latest}"
|
|
|
|
echo "========================================"
|
|
echo "Ollama Model Setup"
|
|
echo "Target model: $MODEL"
|
|
echo "========================================"
|
|
echo ""
|
|
|
|
# Wait for Ollama to be ready
|
|
echo "Waiting for Ollama service..."
|
|
sleep 3
|
|
|
|
# Check if model exists
|
|
echo "Checking if model exists..."
|
|
MODELS=$(curl -s http://ollama:11434/api/tags 2>/dev/null || echo "")
|
|
|
|
if [ -z "$MODELS" ]; then
|
|
echo "⚠ Warning: Could not connect to Ollama"
|
|
echo "Attempting to pull model anyway..."
|
|
curl -X POST http://ollama:11434/api/pull -d "{\"name\":\"$MODEL\"}"
|
|
echo ""
|
|
echo "✓ Model pull initiated: $MODEL"
|
|
exit 0
|
|
fi
|
|
|
|
# Check if our model is in the list
|
|
if echo "$MODELS" | grep -q "\"$MODEL\""; then
|
|
echo "✓ Model already exists: $MODEL"
|
|
echo "Skipping download."
|
|
echo ""
|
|
echo "Available models:"
|
|
echo "$MODELS" | grep -o '"name":"[^"]*"' | cut -d'"' -f4 | sed 's/^/ - /'
|
|
else
|
|
echo "⬇ Model not found, downloading: $MODEL"
|
|
echo "This may take 2-10 minutes depending on model size..."
|
|
echo ""
|
|
|
|
# Pull the model
|
|
curl -X POST http://ollama:11434/api/pull -d "{\"name\":\"$MODEL\"}"
|
|
|
|
echo ""
|
|
echo "✓ Model download initiated: $MODEL"
|
|
echo ""
|
|
echo "Monitor progress with:"
|
|
echo " docker-compose logs -f ollama"
|
|
fi
|
|
|
|
echo ""
|
|
echo "========================================"
|
|
echo "Setup complete!"
|
|
echo "========================================"
|