Эта статья поможет решить, нужна ли вам локальная языковая модель, и запустить её рядом с n8n. Мы используем Ollama: она скачивает открытые модели и отдаёт их по API на вашем сервере.
Когда локальная модель оправдана
Облачные YandexGPT и GigaChat проще и обычно умнее небольших открытых моделей. Локальная модель имеет смысл в трёх случаях:
- Чувствительные данные. Медицинские записи, переписка с клиентами, внутренние документы. Текст не уходит за пределы вашего сервера, поэтому не нужно согласовывать передачу данных стороннему сервису.
- Простые массовые задачи. Классификация обращений, извлечение полей, короткие резюме. С ними справляются и небольшие модели.
- Нет доступа в интернет. Например, сервер стоит во внутренней сети компании.
Если задача сложная, например длинные договоры или многошаговые рассуждения, сначала сравните результат с облачной моделью. Как выбирать, мы разобрали в статье YandexGPT, GigaChat или локальная модель.
Что понадобится
- Сервер с Docker и n8n, например установленный по этой инструкции.
- Достаточно памяти под модель. Сервера на 2 vCPU и 4 ГБ, которого хватает для n8n, для модели мало.
- Для быстрой работы видеокарта NVIDIA с драйверами и NVIDIA Container Toolkit. GPU-серверы есть у российских облаков.
Требования к железу
Точных цифр для всех случаев нет. Есть общие правила:
- Модель должна целиком помещаться в память. На видеокарте это видеопамять, без видеокарты оперативная память.
- Ориентир по объёму даёт размер файла модели в библиотеке Ollama. Например,
qwen3:8bзанимает 5,2 ГБ,qwen3:14b9,3 ГБ,qwen3:32b20 ГБ. Нужен запас сверх этого. - Длинный контекст и параллельные запросы увеличивают расход памяти. По документации 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. Внутри контейнера n8nlocalhostозначает сам контейнер n8n. Используйте имя сервисаollama. - model not found. Модель не скачана или имя указано с другим тегом. Список скачанных моделей покажет команда
docker compose exec ollama ollama list. - Ответ обрезан или модель «забыла» начало текста. Текст не поместился в контекст. Увеличьте
num_ctx. - Сервер завис или контейнер перезапускается. Модели не хватило памяти. Возьмите модель меньше или сервер с большей памятью.
Локальная модель снимает вопрос передачи данных стороннему сервису, но данные остаются персональными. Если часть текстов всё же уходит в облачную модель, сначала замаскируйте персональные данные.
Частые вопросы
Можно ли запустить Ollama без видеокарты?
Можно, Ollama работает и на процессоре. Ответы при этом генерируются заметно медленнее, поэтому без видеокарты подходят небольшие модели и задачи, где ответ не нужен сразу.
Какая локальная модель лучше понимает русский язык?
Универсального ответа нет. Начните с Qwen3 и T-lite от Т-Банка, затем сравните их на 50–100 ваших реальных примерах и выберите ту, что ошибается реже.
Если модель работает на нашем сервере, 152-ФЗ можно не учитывать?
Нет. Данные остаются персональными, и все требования закона к их обработке и защите сохраняются. Локальная модель убирает только передачу данных стороннему сервису.