Strona główna / Artykuły

LangChain plus Ollama: lokalne łańcuchy Qwen, narzędzia i struktura

Skieruj langchain-ollama na lokalny tag Qwen, aby uzyskać łańcuchy, transmisję w czasie rzeczywistym, wywołania narzędzi oraz strukturyzowany wynik bez potrzeby kluczy chmurowych. Informacje o konfiguracji oraz specyficznych aspektach, z którymi należy się liczyć.

Wydawca: REACTAPP.TOP4 min czytania931 słów

Źródła: LangChain integrations with Ollama local LLM - qwen3.8:27b

Lokalny Qwen za pomocą Ollamy, połączony z LangChain

Zapewnij działanie modeli do rozmów o otwartych wagach, takich jak qwen3.8:27b, na swoim własnym komputerze i połącz je z łańcuchami, agentami oraz narzędziami LangChain — bez kluczy API chmurowych i bez rachunków za każdy token.

Ollama w jednym akapicie

Ollama pakuje wagę modelu, konfigurację oraz elementy niezbędne do jego uruchomienia w przyjaznym interfejsie Modelfile i zajmuje się detalami związanymi z przyspieszeniem za pomocą GPU w typowych konfiguracjach. Wystarczy pobrać odpowiedni tag, wpisać prompt i uruchomić API HTTP na porcie 11434.

Integracja Ollamy z LangChain

Pakiet langchain-ollama umożliwia korzystanie z modeli do rozmów wraz z możliwością wywoływania narzędzi, strukturyzowanego wyjścia, wielomodalnych danych wejściowych, transmisji strumieniowej, obsługi zadań asynchronicznych oraz logowania prawdopodobieństw — to ta sama funkcjonalność, jaką oczekujemy od narzędzi do rozmów w chmurze, dostępna lokalnie.

Skrócony opis konfiguracji

Zainstaluj Ollamę, pobierz model do czatowania, którego potrzebujesz, i sprawdź, czy API odpowiada. W Pythonie zainstaluj integrację Ollamy dostępną w LangChain i utwórz model do czatowania skierowany na twoją lokalną adresację bazową.

ollama pull qwen3.8:27b
ollama list

Łańcuchy i prompty

Stwórz prosty łańcuch prompt → model do streszczania lub pytań i odpowiedzi bez opuszczania komputera:

from langchain_ollama import ChatOllama

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

Przesyłaj tokeny strumieniowo, jeśli twoje interfejs użytkownika wymaga stopniowych aktualizacji:

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

Narzędzia i agenci

Połącz narzędzia w taki sam sposób, jak robisz to z modelem hostowanym. Model lokalny musi obsługiwać wywoływanie narzędzi, aby zapewnić niezawodne pętle agenta — wybieraj tagi, o których wiadomo, że działają z protokołem narzędzi Ollamy.

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?"

Strukturyzowany wynik

Gdy potrzebujesz formatu JSON, użyj narzędzi do generowania strukturyzowanych wyników zamiast polegać wyłącznie na prostej instrukcji „proszę o zwrócenie JSON”:

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.
"""
        },
    ]
)

Dlaczego właśnie ta kombinacja

Zachowujesz dane wewnątrz systemu, możesz je modyfikować bez ograniczeń szybkości, a jednocześnie korzystasz z słownictwa typu chain/agent dostępnego w LangChain. Oddaj maksymalną jakość lub szybkość w zamian za prywatność i przewidywalność kosztów – to dobra opcja dla prototypów, narzędzi wewnętrznych oraz demonstracji offline.

Zaleca się używanie wyraźnych tagów modeli we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania systemu w trakcie tutoriali.

Zaleca się używanie wyraźnych tagów modeli we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania systemu w trakcie tutoriali.

Zaleca się używanie wyraźnych tagów modeli we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania systemu w trakcie tutoriali.

Zaleca się używanie wyraźnych tagów modeli we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania systemu w trakcie tutoriali.

Zaleca się używanie wyraźnych tagów modeli we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania systemu w trakcie tutoriali.

Zaleca się używanie wyraźnych tagów modeli we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania systemu w trakcie tutoriali.

Należy używać wyraźnych tagów modelu we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania podczas tutorialu.

Należy używać wyraźnych tagów modelu we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania podczas tutorialu.

Należy używać wyraźnych tagów modelu we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania podczas tutorialu.

Należy używać wyraźnych tagów modelu we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania podczas tutorialu.

Należy używać wyraźnych tagów modelu we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania podczas tutorialu.

Należy używać wyraźnych tagów modelu we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania podczas tutorialu.

Należy używać wyraźnych tagów modelu we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania podczas tutorialu.

Należy używać wyraźnych tagów modelu we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania podczas tutorialu.

Należy używać wyraźnych tagów modelu we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania podczas tutorialu.

Należy używać wyraźnych tagów modelu we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania podczas tutorialu.

Należy używać wyraźnych tagów modelu we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania podczas tutorialu.

Należy używać wyraźnych tagów modelu we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania podczas tutorialu.

Należy używać wyraźnych tagów modelu we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania podczas tutorialu.

Należy używać wyraźnych tagów modelu we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania podczas tutorialu.

Należy używać wyraźnych tagów modelu we wszystkich przykładach, aby aktualizacje nie zmieniały w tajemnicy zachowania podczas tutorialu.

Literatura pokrewna