Как подключить Ollama к n8n: локальная модель
Настраиваем n8n и Ollama: адрес сервера, Docker, HTTP Request и Ollama Chat Model. Тестовый запрос и диагностика ошибок соединения.
Подключить Ollama к n8n можно двумя способами: через Ollama Chat Model в AI-цепочке или через HTTP Request к Ollama API. Сначала проверим второй вариант: он показывает адрес, тело запроса и ответ без дополнительных настроек агента.
Соберём workflow, который получает текст и делает короткую выжимку локальной моделью. Он пригодится для черновиков заметок, классификации и подготовки данных для следующего шага автоматизации.
На выходе — один проверяемый вызов локальной модели. Конфигурация основана на документации. Локальная генерация при подготовке статьи не выполнялась, поэтому скорость и качество модели здесь не измерялись. Комплект примеров содержит JSON запроса и чеклист проверки.
1. Запусти Ollama и модель
Установи Ollama по официальной инструкции, запусти приложение или сервис. В терминале проверь:
ollama --version
ollama pull llama3.2:3b
ollama list
curl --fail-with-body http://127.0.0.1:11434/api/tags
Загрузка модели требует сети и места на диске. В примере используется существующий тег llama3.2:3b; это небольшая модель для проверки соединения, а не рекомендация лучшей модели для русского текста. Для рабочего сценария сравни несколько моделей на своих примерах.
Если /api/tags не отвечает на том же компьютере, сначала исправь запуск Ollama. Настройки n8n пока не участвуют в проблеме. Если приложение Ollama уже подняло сервер, второй ollama serve может сообщить, что порт занят: это не обязательно ошибка первого сервера.
2. Выбери адрес для n8n
Главный вопрос — где запущен процесс n8n относительно Ollama:
| Размещение | Адрес со стороны n8n |
|---|---|
| Оба процесса напрямую на одном компьютере | http://127.0.0.1:11434 |
| n8n в Docker Desktop, Ollama на хосте | Обычно http://host.docker.internal:11434 |
| Оба сервиса в одной Docker-сети | Например, http://ollama:11434, где ollama — имя сервиса |
| n8n Cloud, Ollama на домашнем компьютере | localhost не подойдёт: требуется отдельное защищённое сетевое соединение |
localhost внутри контейнера указывает на сам контейнер. Он не означает ноутбук и не означает другой контейнер. На обычном Docker Engine для Linux имя host.docker.internal может потребовать явной настройки host gateway; настройки Docker Desktop нельзя автоматически переносить туда.
Ollama по умолчанию слушает локальный интерфейс. Если запрос приходит из контейнера или с другой машины, одного изменения URL недостаточно: сервис должен слушать доступный этому клиенту интерфейс. Настрой OLLAMA_HOST для нужного окружения и перезапусти сервис. Не открывай незащищённый порт 11434 в интернет; для удалённого доступа нужен приватный маршрут или аутентифицирующий прокси. Сетевые настройки разобраны в FAQ Ollama.
В первом упражнении проще запустить оба процесса непосредственно на одном компьютере либо оба в одной закрытой контейнерной сети.
3. Сделай запрос из workflow
Собери Manual Trigger → HTTP Request. В HTTP Request задай POST и URL вида http://127.0.0.1:11434/api/chat, заменив хост по таблице выше. Включи отправку тела JSON и вставь:
{
"model": "llama3.2:3b",
"stream": false,
"messages": [
{
"role": "system",
"content": "Сделай краткую выжимку текста. Сохрани даты и числа. Не добавляй отсутствующие факты."
},
{
"role": "user",
"content": "Учебная заметка: пилот запускаем 20 сентября. Участвуют 12 человек. За обратную связь отвечает Анна. Бюджет пока не утверждён."
}
]
}
stream: false просит единый JSON-ответ. При включённом streaming обработчик должен разбирать поток, что для нашего первого шага излишне. Структура сообщений и параметр описаны в Ollama Chat API.
В Options → Response выбери JSON. Для первой загрузки модели установи разумный Timeout, например 120000 миллисекунд: это предел ожидания теста, а не обещанное время работы. Оставь режим возврата только тела ответа, без HTTP-заголовков. Настройки запроса доступны в справке HTTP Request.
После выполнения открой Output. Текст обычно находится в message.content. Следующий Edit Fields может сохранить его в поле summary выражением:
{{ $json.message.content }}
Если ты включил возврат полного HTTP-ответа, тело будет вложено глубже: сначала посмотри фактический JSON, затем выбери путь. Не исправляй наугад промпт, когда проблема в чтении поля.
4. Подключи Ollama Chat Model
Когда прямой API-вызов работает, создай вторую цепочку: Manual Trigger → Edit Fields → Basic LLM Chain. В Edit Fields добавь строку text с учебной заметкой. В цепочке выбери ручной Prompt Сделай краткую выжимку: {{ $json.text }}.
К порту Model подключи Ollama Chat Model. В credential укажи Base URL сервера без /api/chat. В поле модели выбери llama3.2:3b или точный тег из ollama list. Для обычного локального Ollama API Key не нужен; аутентифицирующий прокси может требовать его. См. credentials Ollama и узел Ollama Chat Model.
Если позже подключишь модель к AI Agent, отдельно проверь поддержку вызовов инструментов и их фактическое выполнение. Успешное суммирование текста не доказывает, что эта модель справится с агентным сценарием.
5. Проверь качество и время
Учебная выжимка должна сохранить дату 20 сентября, число 12 и имя Анна; не должна придумывать сумму бюджета. В комплекте есть ещё два теста: текст без даты и текст с противоречием. Для каждого сохрани исходник, модель, результат и длительность.
Сравни первый запуск после загрузки и повторный запрос: время может отличаться из-за загрузки модели в память. Затем увеличь текст. Если длинный документ обрабатывается плохо, проверь контекст и необходимость деления на части; увеличение таймаута не исправляет потерянные факты.
Локальная модель уменьшает зависимость от облачного API, но весь workflow не становится автоматически локальным: n8n Cloud, Google Sheets, внешние узлы и журнал выполнений могут хранить или передавать данные отдельно. Схему потока данных оценивай целиком.
Частые ошибки
| Ошибка | Что проверить |
|---|---|
| Connection refused | Ollama запущен; верный адрес; интерфейс доступен n8n |
| Model not found | Тег загружен именно на сервере, к которому обращается n8n |
| Timeout | Модель загружается, хватает памяти, время запроса измерено отдельно |
| Вместо объекта пришли строки JSON | В запросе забыли stream: false |
| Пустая выжимка | Путь к message.content, режим полного ответа, входной текст |
| Работает в терминале, не работает в Docker | Терминал и n8n обращаются из разных сетевых окружений |
Следующий шаг — обработать отзывы из Google Sheets этой моделью. Если задача требует ответов по большой базе источников, перейди к RAG в n8n.
Собери своего ИИ-агента и проверь результат
«AI Agents: от vibe coding к AI-команде»: desktop agents, MCP, skills, evals и harness. Отдельные воркшопы — от подключения инструментов до контроля качества.
7 практических воркшопов · записи · вопросы автору в чате
Посмотреть программу курса ↗