#!/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 "========================================"