Startseite / Artikel

LangChain plus Ollama: Lokale Qwen-Ketten, Werkzeuge und Struktur

Richten Sie langchain-ollama auf eine lokale Qwen-Tag-Datei aus, um Ketten, Streaming, Toolaufrufe sowie strukturierte Ausgaben ohne Cloud-Schlüssel zu erhalten. Einrichtung sowie typische Besonderheiten, mit denen zu rechnen ist.

Verlag: REACTAPP.TOP4 Min. Lesezeit931 Wörter

Quellen: LangChain integrations with Ollama local LLM - qwen3.8:27b

Lokales Qwen über Ollama, an LangChain angebunden

Führen Sie offene Chat-Modelle wie qwen3.8:27b auf Ihrem eigenen Rechner aus und integrieren Sie sie in LangChain-Chains, Agenten und Tools – ohne Cloud-API-Schlüssel und ohne Abrechnung pro Token.

Ollama in einem Absatz

Ollama packt Gewichte, Konfigurationen und den Laufzeitbetrieb hinter einer für Modelfile geeigneten Benutzeroberfläche zusammen und kümmert sich um die Details der GPU-Verarbeitung für gängige Einrichtungen. Laden Sie ein Tag herunter, geben Sie einen Prompt ein, und eine HTTP-API wird auf Port 11434 bereitgestellt.

LangChains Integration von Ollama

Das langchain-ollama-Paket stellt Chat-Modelle mit Toolaufrufen, strukturierten Ausgaben, multimodalen Eingaben, Streaming, Asynchronität und Logprobs bereit – genau die Funktionalität, die man von Cloud-Chat-Wrappern erwartet, nur für den lokalen Betrieb.

Kurzer Einrichtungsskizzen

Installieren Sie Ollama, holen Sie sich das gewünschte Chat-Modell herunter und überprüfen Sie, ob die API korrekt antwortet. In Python installieren Sie die Ollama-Integration von LangChain und erstellen Sie ein Chat-Modell, das auf Ihre lokale Basis-URL verweist.

ollama pull qwen3.8:27b
ollama list

Ketten und Anfragen

Bauen Sie eine einfache Kette aus Anfrage und Modell für Zusammenfassungen oder Fragen & Antworten auf, ohne den Rechner verlassen zu müssen:

from langchain_ollama import ChatOllama

llm = ChatOllama(
    model="qwen3.8:27b",
    temperature=0.3,
)

Streuen Sie Tokens aus, falls Ihre Benutzeroberfläche schrittweise Aktualisierungen benötigt:

messages = [
    ChatMessage(role="control", content="thinking"),
    HumanMessage("What is 3^3?"),
]

Werkzeuge und Agenten

Binden Sie Werkzeuge auf dieselbe Weise an wie bei einem gehosteten Modell. Das lokale Modell muss die Aufrufmöglichkeit von Werkzeugen unterstützen, um zuverlässige Agentenschleifen zu ermöglichen – wählen Sie Tags, die bekanntermaßen mit Ollamas Werkzeugprotokoll funktionieren.

messages = [
    SystemMessage(
        content="""
You are an expert at reading screenshots and technical documentation.

Rules:
- Extract information only from the image.
- Do not hallucinate missing values.
- Return concise answers.
- Preserve commands exactly as shown.
"""
    ),
    HumanMessage(
        content=[
            {
                "type": "image_url",
                "image_url": f"data:image/png;base64,{image_b64}",
            },
            {
                "type": "text",
                "text": "What is the download command for the Gemma 7B model?",
            },
        ],
    ),
]
SystemMessage
    ↓
"You are a technical documentation analyst.
 Extract information only from the image.
 Do not guess.
 Return concise answers."

HumanMessage #1
    ↓
"What is the download command?"

HumanMessage #2
    ↓
"What version of the model is shown?"

HumanMessage #3
    ↓
"What is the model's parameter count?"

Gestrukturierte Ausgabe

Falls Sie JSON benötigen, verwenden Sie Hilfsmittel für gestrukturierte Ausgabe anstelle von einfachen Anfragen wie „Bitte geben Sie JSON zurück“:

HumanMessage(
    content=[
        {
            "type": "image_url",
            "image_url": f"data:image/png;base64,{image_b64}",
        },
        {
            "type": "text",
            "text": """
The image is a screenshot from an Ollama model page.

Task:
1. Find the section containing model download instructions.
2. Locate the Gemma 7B model.
3. Return only the exact Ollama pull command.

Output format:
Return JSON only:

{
    "model_name": "",
    "download_command": "",
    "confidence": ""
}

Do not include explanations.
"""
        },
    ]
)

Warum genau dieser Stack

Die Daten bleiben lokal gespeichert, Sie können unbeschränkt iterieren und verwenden weiterhin das Vokabular von LangChain für Chains und Agents. Geben Sie Qualität oder Geschwindigkeit zugunsten von Privatsphäre und kalkulierbaren Kosten auf – ein guter Kompromiss für Prototypen, interne Tools und Offline-Demos.

Wählen Sie in jedem Beispiel ausdrückliche Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Wählen Sie in jedem Beispiel ausdrückliche Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Wählen Sie in jedem Beispiel ausdrückliche Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Wählen Sie in jedem Beispiel ausdrückliche Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Wählen Sie in jedem Beispiel ausdrückliche Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Wählen Sie in jedem Beispiel ausdrückliche Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Verwenden Sie in jedem Beispiel explizite Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Verwenden Sie in jedem Beispiel explizite Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Verwenden Sie in jedem Beispiel explizite Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Verwenden Sie in jedem Beispiel explizite Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Verwenden Sie in jedem Beispiel explizite Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Verwenden Sie in jedem Beispiel explizite Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Verwenden Sie in jedem Beispiel explizite Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Verwenden Sie in jedem Beispiel explizite Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Verwenden Sie in jedem Beispiel explizite Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Verwenden Sie in jedem Beispiel explizite Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Verwenden Sie in jedem Beispiel explizite Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Verwenden Sie in jedem Beispiel explizite Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Verwenden Sie in jedem Beispiel explizite Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Verwenden Sie in jedem Beispiel explizite Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.

Verwenden Sie in jedem Beispiel explizite Modelltags, damit Updates das Verhalten während des Tutorials nicht heimlich ändern.