АвтопилотЛабстудия автоматизацииОбсудить задачу
Навигация по базе знаний

База знаний · Нейросети

Локальная нейросеть для n8n: Ollama на своём сервере

Как запустить локальную нейросеть Ollama рядом с n8n в Docker. Когда она оправдана, какое нужно железо и какие модели справляются с русским языком.

Опубликовано 5 мин чтения

Эта статья поможет решить, нужна ли вам локальная языковая модель, и запустить её рядом с n8n. Мы используем Ollama: она скачивает открытые модели и отдаёт их по API на вашем сервере.

Когда локальная модель оправдана

Облачные YandexGPT и GigaChat проще и обычно умнее небольших открытых моделей. Локальная модель имеет смысл в трёх случаях:

  • Чувствительные данные. Медицинские записи, переписка с клиентами, внутренние документы. Текст не уходит за пределы вашего сервера, поэтому не нужно согласовывать передачу данных стороннему сервису.
  • Простые массовые задачи. Классификация обращений, извлечение полей, короткие резюме. С ними справляются и небольшие модели.
  • Нет доступа в интернет. Например, сервер стоит во внутренней сети компании.

Если задача сложная, например длинные договоры или многошаговые рассуждения, сначала сравните результат с облачной моделью. Как выбирать, мы разобрали в статье YandexGPT, GigaChat или локальная модель.

Что понадобится

  • Сервер с Docker и n8n, например установленный по этой инструкции.
  • Достаточно памяти под модель. Сервера на 2 vCPU и 4 ГБ, которого хватает для n8n, для модели мало.
  • Для быстрой работы видеокарта NVIDIA с драйверами и NVIDIA Container Toolkit. GPU-серверы есть у российских облаков.

Требования к железу

Точных цифр для всех случаев нет. Есть общие правила:

  • Модель должна целиком помещаться в память. На видеокарте это видеопамять, без видеокарты оперативная память.
  • Ориентир по объёму даёт размер файла модели в библиотеке Ollama. Например, qwen3:8b занимает 5,2 ГБ, qwen3:14b 9,3 ГБ, qwen3:32b 20 ГБ. Нужен запас сверх этого.
  • Длинный контекст и параллельные запросы увеличивают расход памяти. По документации Ollama он растёт пропорционально произведению числа параллельных запросов на длину контекста.
  • На процессоре модель работает заметно медленнее, чем на видеокарте. Если модель не поместилась в видеопамять целиком, Ollama разделит её между видеокартой и процессором, и скорость тоже упадёт.

Проверить, где работает модель, можно командой ollama ps. Значение 100% GPU в колонке PROCESSOR означает, что модель целиком в видеопамяти.

Шаг 1. Запустить Ollama рядом с n8n

Добавьте сервис в docker-compose.yml, где уже описан n8n:

  ollama:
    image: ollama/ollama
    restart: unless-stopped
    volumes:
      - ./ollama_data:/root/.ollama

Порт 11434 наружу не публикуем. Локальный API Ollama не требует ключа, поэтому открывать его в интернет нельзя. n8n в той же сети Docker Compose обратится к нему по адресу http://ollama:11434.

Для видеокарты NVIDIA добавьте в сервис ollama резервирование GPU:

    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

Запустите сервис командой docker compose up -d ollama. Если образ не скачивается с Docker Hub, настройте зеркало реестра, как описано в инструкции по установке n8n. Как и для n8n, лучше закрепить конкретную версию образа вместо последней.

Шаг 2. Скачать модель

docker compose exec ollama ollama pull qwen3:8b
docker compose exec ollama ollama pull t-tech/T-lite-it-2.1:q4_K_M
docker compose exec ollama ollama ps

Модели для русского языка, с которых стоит начать:

  • Qwen3 из официальной библиотеки Ollama. Заявлена поддержка более 100 языков, есть размеры от 0,6B до 235B. Лицензия Apache 2.0.
  • T-lite-it-2.1 от Т-Банка, опубликована на ollama.com. Это дообученная на русском языке модель на основе Qwen3 8B. Лицензия Apache 2.0.
  • Gemma 3 из библиотеки Ollama. Заявлена поддержка более 140 языков. Распространяется по собственным условиям Google Gemma Terms of Use.

Лицензии у открытых моделей разные. Перед коммерческим использованием прочитайте условия конкретной модели. Сбер тоже публикует открытые версии GigaChat на Hugging Face под лицензией MIT. Запускается ли нужная версия в Ollama, уточните в описании модели.

Шаг 3. Подключить модель в n8n

В n8n создайте доступ типа Ollama и укажите Base URL http://ollama:11434. Его используют три узла:

  • Ollama Chat Model подключается к узлам AI Agent и Basic LLM Chain. Подходит для большинства задач.
  • Ollama Model работает только с Basic LLM Chain. Инструменты он не поддерживает, поэтому к AI Agent его не подключить.
  • Embeddings Ollama превращает текст в векторы для поиска по базе знаний.

Если нужен полный контроль над параметрами, подойдёт обычный HTTP Request:

  • Method: POST
  • URL: http://ollama:11434/api/chat
  • Send Body: JSON
{
  "model": "qwen3:8b",
  "stream": false,
  "think": false,
  "messages": [
    { "role": "system", "content": "Определи тему обращения. Ответь одним словом: заказ, возврат, жалоба или другое." },
    { "role": "user", "content": {{ JSON.stringify($json.text) }} }
  ],
  "options": { "temperature": 0.2, "num_ctx": 8192 }
}

Ответ модели лежит в поле {{ $json.message.content }}. Параметр think: false отключает режим рассуждений у моделей, которые его поддерживают, и ускоряет ответ. Параметр format со значением json или JSON-схемой просит модель вернуть структурированный ответ.

Ограничения

  • Качество. Как правило, модели на 7–14 миллиардов параметров хуже облачных справляются со сложными инструкциями и длинными текстами. Они чаще путают факты и ломают формат ответа. Проверяйте результат на своих данных.
  • Контекст. По умолчанию Ollama использует контекст 4096 токенов. Для длинных расшифровок звонков или документов увеличьте его параметром num_ctx или переменной OLLAMA_CONTEXT_LENGTH. Памяти понадобится больше.
  • Скорость и очередь. По умолчанию модель обрабатывает один запрос за раз. Большие пачки ставьте в очередь с паузами.
  • Холодный старт. Модель выгружается из памяти через 5 минут простоя. Первый запрос после паузы идёт дольше. Время хранения задаёт параметр keep_alive.
  • Обслуживание. Обновления Ollama и моделей, мониторинг памяти и диска остаются на вас или подрядчике.

Частые ошибки

  • Connection refused. n8n и Ollama в разных сетях Docker или в Base URL указан localhost. Внутри контейнера n8n localhost означает сам контейнер n8n. Используйте имя сервиса ollama.
  • model not found. Модель не скачана или имя указано с другим тегом. Список скачанных моделей покажет команда docker compose exec ollama ollama list.
  • Ответ обрезан или модель «забыла» начало текста. Текст не поместился в контекст. Увеличьте num_ctx.
  • Сервер завис или контейнер перезапускается. Модели не хватило памяти. Возьмите модель меньше или сервер с большей памятью.

Локальная модель снимает вопрос передачи данных стороннему сервису, но данные остаются персональными. Если часть текстов всё же уходит в облачную модель, сначала замаскируйте персональные данные.

Частые вопросы

Можно ли запустить Ollama без видеокарты?

Можно, Ollama работает и на процессоре. Ответы при этом генерируются заметно медленнее, поэтому без видеокарты подходят небольшие модели и задачи, где ответ не нужен сразу.

Какая локальная модель лучше понимает русский язык?

Универсального ответа нет. Начните с Qwen3 и T-lite от Т-Банка, затем сравните их на 50–100 ваших реальных примерах и выберите ту, что ошибается реже.

Если модель работает на нашем сервере, 152-ФЗ можно не учитывать?

Нет. Данные остаются персональными, и все требования закона к их обработке и защите сохраняются. Локальная модель убирает только передачу данных стороннему сервису.

Готовые модули по теме