Dr.-Ing. Erhard Henkes, Stand: 23.09.2025
API steht
für Application Programming
Interface – also eine Schnittstelle, über die Programme
miteinander kommunizieren können.
Ollama stellt eine solche Schnittstelle
bereit: darüber kann jedes beliebige Programm (egal ob in
Python,
C#,
JavaScript usw.) Texte
an ein Modell schicken und die Antwort zurückerhalten.
Das bedeutet:
Du bist nicht mehr auf das Ollama-Fenster der Ollama App (Client) angewiesen, sondern arbeitest direkt mit dem Ollama Server.
Du kannst KI-Fähigkeiten direkt in eigene Apps einbauen: ein Lernprogramm, ein persönliches Notiz-Tool oder sogar eine komplette Webseite.
Nach der Installation läuft Ollama im Hintergrund als lokaler Server.
Standardmäßig hört/sendet dieser Server auf dieser Adresse:
http://localhost:11434
Dein Programm schickt via API eine Anfrage an diesen Server (z. B. „Schreibe eine kurze Begrüßung auf Spanisch“) und erhält die Antwort als Text zurück.
curlUm zu sehen, wie das aussieht, kannst du in PowerShell folgendes ausprobieren:
model → sagt, welches Modell
benutzt wird.
prompt → ist deine Eingabe.
Die Antwort
kommt im Format JSON zurück, also im heute üblichen Format für
strukturierte Daten:
{
"model":"gemma3:1b",
"created_at":"2025-09-23T19:27:34.0622933Z",
"response":"Hallo! 👋\n\nWie geht's dir? 😊\n\n(Hallo! 👋)\n\nIch bin
ein großes Sprachmodell, und ich freue mich, mit dir zu sprechen.
😊\n\nWas möchtest du denn wissen oder worüber möchtest du reden?\n",
"done":true,
"done_reason":
"stop",
"context"
...}
So wie oben sieht eine vollständige Antwort ohne Streaming aus
Das
Feld
"response"
enthält die eigentliche Textausgabe des Modells.
"done": true zeigt, dass die
Antwort vollständig ist.
Die
restlichen Felder (context,
eval_count,
durations
…) sind technische Details – die man für den Einstieg
ignorieren kann.
Man
muss im Programm den Wert von
"response" herausfiltern.
Alles andere ist Zusatzinfo.
curl?
curl
ist ein kleines, aber sehr mächtiges Programm, mit dem man
Anfragen übers Internet (oder
auch lokal) verschicken kann.
Name kommt von client for URL.
Man
gibt eine Internetadresse (oder eine lokale Adresse wie
http://localhost:11434) an
und
curl
holt oder sendet Daten dorthin.
Mit
curl
kann man zum Beispiel:
Webseiten abrufen (so wie ein Browser, aber ohne Fenster).
Dateien herunterladen.
Daten im JSON-Format (also strukturierter Text) an einen Server schicken und die Antwort bekommen.
curl
für Ollama nutzen?Ollama läuft nach der Installation als lokaler Server auf dem eigenen PC.
Adresse:
http://localhost:11434
Über diese Adresse kommuniziert Ollama (Befehle/Antworten).
Damit wir
Ollama also nicht nur über die App/PowerShell
chatten, sondern systematisch
ansprechen können, können wir
curl
als „Universalfernbedienung“ einsetzen.
Das gelingt natürlich auch mit anderen Programmiersprachen. Nachfolgend findet sich ein Beispiel mit einer Konsole in C#:
using
System;
using
System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
class Program
{
static async
Task Main()
{
// URL des lokalen Ollama-Servers
string url = "http://localhost:11434/api/generate";
// Anfrage-Daten (JSON) – entspricht dem
curl-Beispiel
var payload = new
{
model = "gemma3:1b",
prompt = "Sag
hallo auf Deutsch",
stream = false
};
// JSON in String umwandeln
string json =
JsonSerializer.Serialize(payload);
using var client = new HttpClient();
var content = new
StringContent(json, Encoding.UTF8, "application/json");
try
{
HttpResponseMessage response = await client.PostAsync(url, content);
string result
= await response.Content.ReadAsStringAsync();
Console.WriteLine("Antwort (roh):");
Console.WriteLine(result);
// Nur den "response"-Text herausfiltern
using var doc
= JsonDocument.Parse(result);
string answer
= doc.RootElement.GetProperty("response").GetString();
Console.WriteLine("\nNur die KI-Antwort:");
Console.WriteLine(answer);
}
catch (Exception ex)
{
Console.WriteLine("Fehler: " + ex.Message);
}
}
}
Wir
bauen ein JSON-Objekt mit
model,
prompt,
stream.
Wir
schicken es per HTTP POST
an
http://localhost:11434/api/generate.
Wir
bekommen ein JSON zurück (wie bei dem Beispiel mit
curl).
Mit
System.Text.Json
filtern wir das Feld
"response"
heraus – das ist der eigentliche Antworttext des Modells.