AI.Product ClubБлог Михаила Карпова
← Все материалы
HOW-TOПамять и локальный ИИ6 мин чтения

Как подключить 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.

Todo: попробуй на своей задачеПрогресс сохраняется в этом браузере.
ПРАКТИКА НА КУРСЕ / AI PRODUCT CLUB

Собери своего ИИ-агента и проверь результат

«AI Agents: от vibe coding к AI-команде»: desktop agents, MCP, skills, evals и harness. Отдельные воркшопы — от подключения инструментов до контроля качества.

7 практических воркшопов · записи · вопросы автору в чате

Посмотреть программу курса ↗

Автор: — практик автоматизации и автор курсов AI Product Club.