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ć.
Ź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
- LangChain 1.x w praktyce: łańcuchy, RAG, narzędzia i agenci lokalnie — Naucz się budować łańcuchy, systemy generacji wzbogaconej o dane z zewnętrznych źródeł, narzędzia oraz agenty RAG przy użyciu LangChain 1.x dzięki darmowej lokalnej konfiguracji Ollamy, bez potrzeby kluczy API.
- Pełnie lokalny RAG dla plików PDF z LangChain, Ollamą i Chromą — Przetwarzaj pliki PDF lokalnie, integruj je za pomocą Ollamy, przechowuj w Chromie i odpowiadaj offline — po pobraniu modeli nie są potrzebne żadne klucze API chmurowe.
- Narzędzia Vision MCP z MiniCPM-V na Ollamie — Udostępnij funkcje opisu, OCR oraz porównywania obrazów poprzez MCP, aby Cursor i Claude Desktop mogły analizować zrzuty ekranu lokalnie.