LangChain плюс Ollama: местныя ланцюгі Qwen, інструменты і структура
Указаце langchain-ollama на локальны тэг Qwen і вы павінны атрымаць ланцюгі, стрымінг, вызывы інструментаў і структураваны выхід без неабходнасці відпаведных ключоў у воблаку. Інструкцыі па наладзе і асоблівасці, з якімі можа з’явіцца проблема.
Крыніцы: LangChain integrations with Ollama local LLM - qwen3.8:27b
Местны Цвэн праз Ollama, прыяўжаны да LangChain
Запускайце чат-модэлі з адкрытымі вагамі, такія як qwen3.8:27b, на вашай сабе машыне і падключайце іх да ланцаў, агентаў і інструментаў LangChain — без ключаў API з воблака і без рачунку за кожны токен.
Ollama ў аднам параграфе
Ollama упаковвае вагі, настройкі і параметры запуску пад прыемлівым інтэрфейсам Modelfile і караце дэталі прышвартавання GPU для стандартных налаштоўкаў. З’явіце тэг, запускайце запіт, адкройце HTTP API на порту 11434.
Інтэграцыя Ollama ў LangChain
Пакет langchain-ollama адкрывае чат-модэлі з можлівасцю вызыва інструментаў, структураванага выходу, мультымадальных вхоў, стрымінгу, асінхронныя операцыі і лог-прабаў — тое ж паверхне, якое вы чакаеце ад хмарных чат-вузлоў, але для локальнага сервера.
Эскіз налаштавання
З’явіце Ollama, завантажыце неабходны мадэль для чату і паказаце, што API адпавядае. У Python з’явіце інтэграцыю Ollama ад LangChain і створыце мадэль для чату, настроеную на ваш локальны базовы URL.
ollama pull qwen3.8:27b
ollama list
Ланцюгі і запіты
Створыце просты ланцюг запіт → мадэль для стасумаравання або запытаў і адпаведзей без выходу з працоўніка:
from langchain_ollama import ChatOllama
llm = ChatOllama(
model="qwen3.8:27b",
temperature=0.3,
)
Трансляюце токены, калі ваша інтэрфейсная сістэма патрабуе поштоўных апдэйтаў:
messages = [
ChatMessage(role="control", content="thinking"),
HumanMessage("What is 3^3?"),
]
Інструменты і агенты
Прыўяжыце інструменты так сама, як і з модэлю, якая розмешаная на серверэ. Локальны мадэль павінен падтрымляць вызовы інструментаў для надзеяных цыклів агента — выберыце тагі, вядомыя як працуючыя з протакалам інструментаў Ollama.
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?"
Структураваны выхід
Калі вам патрабуецца JSON, выкорыстоўвайце дапаможнікі для структураванага выходу, а не просты запіт “прашам вернуць 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.
"""
},
]
)
Чаму самэўжо гэты набор
Вы захоўваеце даныя на самай працоўнай машыне, можэце прабавляць разныя варыанты без лімітаў на колькасць прабоўак, і ў той жыткі вікорыстоўваеце слоўнік LangChain для стварэння ланцаў/агентаў. Замест высокай якосці чы роўнасці можаце выбраць прыватнасць і можлівасць прыбліжнага расчытку костаў — гэта хорашы варыянт для пратотыпаў, внутрашняіх інструментаў і дэманстрацый па з’яўе.
Лепш у кожным прыкладзе вказываць чыстакульні тагі модэлю, каб абнаўленні не таямна не зменялі яго працэсу пад час навучання.
Лепш у кожным прыкладзе вказываць чыстакульні тагі модэлю, каб абнаўленні не таямна не зменялі яго працэсу пад час навучання.
Лепш у кожным прыкладзе вказываць чыстакульні тагі модэлю, каб абнаўленні не таямна не зменялі яго працэсу пад час навучання.
Лепш у кожным прыкладзе вказываць чыстакульні тагі модэлю, каб абнаўленні не таямна не зменялі яго працэсу пад час навучання.
Лепш у кожным прыкладзе вказываць чыстакульні тагі модэлю, каб абнаўленні не таямна не зменялі яго працэсу пад час навучання.
Лепш у кожным прыкладзе вказываць чыстакульні тагі модэлю, каб абнаўленні не таямна не зменялі яго працэсу пад час навучання.
Лепшае выкарыстоўванне ясных тагоў модэля ў кожным прыкладзе, каб абнаўленні не таямніча не зменялі прыменэ ў месцы вучэння.
Лепшае выкарыстоўванне ясных тагоў модэля ў кожным прыкладзе, каб абнаўленні не таямніча не зменялі прыменэ ў месцы вучэння.
Лепшае выкарыстоўванне ясных тагоў модэля ў кожным прыкладзе, каб абнаўленні не таямніча не зменялі прыменэ ў месцы вучэння.
Лепшае выкарыстоўванне ясных тагоў модэля ў кожным прыкладзе, каб абнаўленні не таямніча не зменялі прыменэ ў месцы вучэння.
Лепшае выкарыстоўванне ясных тагоў модэля ў кожным прыкладзе, каб абнаўленні не таямніча не зменялі прыменэ ў месцы вучэння.
Лепшае выкарыстоўванне ясных тагоў модэля ў кожным прыкладзе, каб абнаўленні не таямніча не зменялі прыменэ ў месцы вучэння.
Лепшае выкарыстоўванне ясных тагоў модэля ў кожным прыкладзе, каб абнаўленні не таямніча не зменялі прыменэ ў месцы вучэння.
Лепшае выкарыстоўванне ясных тагоў модэля ў кожным прыкладзе, каб абнаўленні не таямніча не зменялі прыменэ ў месцы вучэння.
Лепшае выкарыстоўванне ясных тагоў модэляў у кожным прыкладзе, ўбліж тады, каб абнаўленні не таямніча не зменялі прыменне мід-цюторыям.
Лепшае выкарыстоўванне ясных тагоў модэляў у кожным прыкладзе, ўбліж тады, каб абнаўленні не таямніча не зменялі прыменне мід-цюторыям.
Лепшае выкарыстоўванне ясных тагоў модэляў у кожным прыкладзе, ўбліж тады, каб абнаўленні не таямніча не зменялі прыменне мід-цюторыям.
Лепшае выкарыстоўванне ясных тагоў модэляў у кожным прыкладзе, ўбліж тады, каб абнаўленні не таямніча не зменялі прыменне мід-цюторыям.
Лепшае выкарыстоўванне ясных тагоў модэляў у кожным прыкладзе, ўбліж тады, каб абнаўленні не таямніча не зменялі прыменне мід-цюторыям.
Лепшае выкарыстоўванне ясных тагоў модэляў у кожным прыкладзе, ўбліж тады, каб абнаўленні не таямніча не зменялі прыменне мід-цюторыям.
Лепшае выкарыстоўванне ясных тагоў модэляў у кожным прыкладзе, ўбліж тады, каб абнаўленні не таямніча не зменялі прыменне мід-цюторыям.