Einstieg in lokale Artificial Intelligence (AI) mit Ollama (Teil 5)

Dr.-Ing. Erhard Henkes, Stand: 23.09.2025

Zurück

 

Ollama in eigenen Programmen nutzen – die API

Was bedeutet „API“?

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:


Wie funktioniert das technisch?


Beispiel: Eine erste Anfrage mit curl

Um zu sehen, wie das aussieht, kannst du in PowerShell folgendes ausprobieren:


		
curl http://localhost:11434/api/generate -d '{ "model": "gemma3:1b", "prompt": "Sag hallo auf Deutsch", "stream": false }'

		
		

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

 

Was ist curl?

curl ist ein kleines, aber sehr mächtiges Programm, mit dem man Anfragen übers Internet (oder auch lokal) verschicken kann.

Mit curl kann man zum Beispiel:


Warum können wir
curl für Ollama nutzen?

Ollama läuft nach der Installation als lokaler Server auf dem eigenen PC.

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);
        }
    }
}

Was passiert hier?

  1. Wir bauen ein JSON-Objekt mit model, prompt, stream.

  2. Wir schicken es per HTTP POST an http://localhost:11434/api/generate.

  3. Wir bekommen ein JSON zurück (wie bei dem Beispiel mit curl).

  4. Mit System.Text.Json filtern wir das Feld "response" heraus – das ist der eigentliche Antworttext des Modells.


Hier geht es weiter