Zugriff auf ein lokales Modell per Shell-Skript

Für die Verwaltung lokaler Modelle kann Ollama genutzt werden, dass wohl am meisten verbreitete Programm für diese Aufgabe. Die Verwendung von Ollama wurde bereits in diesem Blogbeitrag erklärt. Nun geht es darum ein einfaches Shell-Skript zu erstellen, das es uns ermöglicht, eine Frage an ein lokales Sprachmodell zu übermitteln. Dafür werden wir Ollamas HTTP-Endpunkt und curl nutzen.

Nach der Shebang-Zeile (#!/bin/bash) beginnen wir damit, den Nutzer um die Eingabe eines Textes zu bitten:

#!/bin/bash

# Benutzer zur Eingabe eines Textes auffordern
read -p "Bitte geben Sie den Text ein: " input_text

Der HTTP-Endpunkt ist über Port 11434 erreichbar. Die komplette URL wird der Variable url zugewiesen:

url="http://localhost:11434/api/generate"

Die Frage, gespeichert in der Variable input_text, das zu verwendende Modell (gemma4) sowie die Temperatur (0.7) sollen verpackt im JSON-Format an Ollama übergeben werden. Die Nutzung von JSON im Shell-Skript wird mithilfe von jq ermöglicht, ein Tool, mit dem JSON-Daten gelesen werden können. Auf einem Mac kann jq mit Homebrew installiert werden:

brew install jq

Auf einem auf Debian basierenden Linux-System funktioniert folgender Befehl:

sudo apt install jq

Und unter Fedora kann jq mit yum oder dnf installiert werden:

sudo dnf install jq

Die Anfrage im JSON-Format sieht nun wie folgt aus:

json_data=$(jq -n \
  --arg prompt "$input_text" \
  --arg model "gemma4:e2b" \
  '{
    prompt: $prompt,
    model: $model,
    stream: false,
    options: {
      temperature: 0.7
    }
  }')

Mit dem Befehl curl wird die Anfrage an Ollama übermittelt:

# Anfrage übermitteln
response=$(curl -s -X POST "$url" -H "Content-Type: application/json" -d "$json_data")

# Nur das eigentliche Antwortfeld extrahieren
answer=$(echo "$response" | jq -r '.response')

In diesem Beispiel soll die Antwort auf dem Desktop in einer Datei mit der Bezeichnung „ollama_response.md“ gespeichert werden:

cd ~/Desktop

printf "# Ask Ollama\n\n## Frage\n\n%s\n\n## Antwort\n\n%s\n" "$input_text" "$answer" > ollama_response.md

echo "Die Antwort wurde in der Datei 'ollama_response.md' gespeichert."

Das Skript, dem ich den Namen „ask_ollama.sh“ gegeben habe, muss ausführbar gemacht werden:

chmod u+x ask_ollama.sh

Nun kann es im Terminal aufgerufen werden:

./ask_ollama.sh

Damit dies funktioniert, muss auf dem Rechner selbstverständlich Ollama laufen.

Weiterführende Links