| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #!/bin/bash
- #ident "@(#)$Format:LocalFoodAI_lanfr144:manage_models.sh:%an:%ae:%ad:%cn:%ce:%cd:%H:%D:%N$"
- # Load LLM_MODEL from .env
- ENV_FILE=".env"
- if [ -f "$ENV_FILE" ]; then
- LLM_MODEL=$(grep '^[ \t]*LLM_MODEL[ \t]*=' "$ENV_FILE" | sed 's/^.*=//' | tr -d '\r\n ')
- elif [ -f "../.env" ]; then
- ENV_FILE="../.env"
- LLM_MODEL=$(grep '^[ \t]*LLM_MODEL[ \t]*=' "$ENV_FILE" | sed 's/^.*=//' | tr -d '\r\n ')
- fi
- if [ -z "$LLM_MODEL" ]; then
- echo "LLM_MODEL not found in .env, defaulting to llama3.2:3b"
- LLM_MODEL="llama3.2:3b"
- fi
- # Detect Ollama container dynamically
- OLLAMA_CONTAINER=$(docker ps --format '{{.Names}}' | grep "ollama" | head -n 1)
- if [ -z "$OLLAMA_CONTAINER" ]; then
- echo "No running Ollama container found. Defaulting to localfoodai_lanfr144-ollama-1"
- OLLAMA_CONTAINER="localfoodai_lanfr144-ollama-1"
- fi
- echo "Active Ollama container: $OLLAMA_CONTAINER"
- echo "Target LLM Model from .env: $LLM_MODEL"
- echo "Pulling model ($LLM_MODEL)..."
- docker exec "$OLLAMA_CONTAINER" ollama pull "$LLM_MODEL"
- echo "Cleaning up unused models from container..."
- # List all running models, skip header, extract names, and remove those not matching target LLM_MODEL
- docker exec "$OLLAMA_CONTAINER" ollama list | tail -n +2 | awk '{print $1}' | while read -r model; do
- if [ ! -z "$model" ] && [ "$model" != "$LLM_MODEL" ] && [ "$model" != "${LLM_MODEL}:latest" ] && [ "${model}:latest" != "$LLM_MODEL" ]; then
- echo "Removing unused model: $model"
- docker exec "$OLLAMA_CONTAINER" ollama rm "$model"
- fi
- done
- echo "Currently installed models inside container:"
- docker exec "$OLLAMA_CONTAINER" ollama list
- echo "Model management complete!"
|