n8n — визуальная платформа автоматизации, которая соединяет триггеры, обрабатывающие узлы и узлы вывода в рабочий процесс. Сама платформа не предоставляет моделей: они приходят из настроенного вами API-сервиса. Для команд из Китая обычный подход — подготовить OpenAI-совместимый шлюз, затем указать в n8n собственный Base URL и встроить диалог, суммаризацию и классификацию в бизнес-процессы.

Ниже материал идёт в порядке реальной сборки: установка, подготовка параметров, настройка учётных данных, запуск процесса, обработка ошибок и командное развёртывание. Названия интерфейса меняются от версии к версии — ориентируйтесь на ту, что у вас установлена.

Примечание: n8n — товарный знак n8n GmbH, OpenAI — товарный знак OpenAI, Inc. Материал носит технический характер и не означает подчинения или сотрудничества с указанными компаниями. Состав моделей и цены — на странице цены на модели.

1. Облако или самостоятельный хостинг

n8n предлагается в облачном и самостоятельном вариантах. Облако избавляет от обслуживания сервера и подходит для быстрой проверки; самостоятельный хостинг даёт контроль над путём данных, сетевым выходом и темпом обновлений, что важно при требованиях соответствия или доступе из внутренней сети. Далее речь в основном о самостоятельном варианте: настройка собственного Base URL, переменных окружения и командных прав чаще встречается именно там.

У самостоятельного хостинга есть цена: сервер, база данных, резервные копии, HTTPS, обновления и безопасность — на вас. Сначала определите, кто будет этим заниматься, и только потом решайте, нужен ли он.

2. Установка и инициализация

Официально рекомендуемый производственный способ — Docker Compose; для одиночной проверки достаточно одной команды docker run. Образ называется n8nio/n8n, порт по умолчанию — 5678, том данных подключается к /home/node/.n8n. В этом каталоге находится не только база SQLite, но и ключи шифрования, поэтому его обязательно нужно сделать постоянным.

docker volume create n8n_data

docker run -it --rm --name n8n \
  -p 5678:5678 \
  -e GENERIC_TIMEZONE="Asia/Shanghai" \
  -e TZ="Asia/Shanghai" \
  -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
  -v n8n_data:/home/node/.n8n \
  n8nio/n8n

После запуска откройте http://localhost:5678 и создайте аккаунт владельца по подсказкам. В производстве не стоит долго работать на одиночном SQLite: настройте DB_TYPE=postgresdb и DB_POSTGRESDB_* для подключения PostgreSQL и включите базу в резервное копирование. Способ через npm (npx n8n или глобальная установка) подходит для локальных тестов; официальная документация указывает, что установка через npm устарела начиная с n8n 3.0, а в производстве следует использовать Docker. Требования к версии Node.js — по официальной документации; текущий диапазон — от 20.19 до 24.x.

3. Подготовьте ключ, Base URL и идентификатор модели

Для подключения любого OpenAI-совместимого сервиса нужны три параметра:

Параметр Как заполнить Частая ошибка
API Key Создать в консоли шлюза, назвать по проекту Пробел или перевод строки при копировании
Base URL https://ai.zhongshangqihang.com/v1 Указан полный путь /chat/completions
ID модели API-идентификатор со страницы цен Использовано отображаемое имя или старый суффикс версии

Ключ создаётся после регистрации в ZSQH AI Gateway. Рекомендуется один ключ на среду, отдельно для теста и производства, чтобы при утечке можно было отозвать только его. Идентификатор модели копируйте со страницы цены на модели, следя за регистром и суффиксом версии. Доступные модели и тарификация меняются; ориентируйтесь на консоль и страницу цен.

4. Настройка учётных данных OpenAI

В левом меню n8n откройте Credentials и создайте учётные данные типа OpenAI. В текущей версии есть поля API Key, Organization ID (необязательно) и Base URL. При использовании шлюза замените Base URL на адрес шлюза, обычно до /v1, без /chat/completions. Organization ID нужен только при подключении к официальному OpenAI с аккаунтом в нескольких организациях; при работе через совместимый шлюз поле обычно оставляют пустым.

Несколько практических правил:

  1. Ключ хранится только в учётных данных, не в узлах Code, Set или JSON процесса.
  2. Название учётных данных должно объяснять назначение, например «шлюз-производство-суммаризация», а не «тест1».
  3. После сохранения нажмите проверку; при ошибке сначала проверьте Base URL и сетевой выход.
  4. В командном экземпляре создавайте учётные данные по проектам, не используйте один ключ на всех.
  5. При самостоятельном хостинге берегите N8N_ENCRYPTION_KEY: после его замены существующие учётные данные могут не расшифроваться.

5. Запуск первого процесса

Пример: «после отправки формы создать черновик ответа».

  1. Создайте процесс и добавьте Form Trigger или Manual Trigger.
  2. Добавьте узел OpenAI, в Resource выберите Text.
  3. В Operation выберите Generate a Chat Completion; в старых версиях операция называлась Message a Model.
  4. Выберите созданные учётные данные и модель, передайте поля формы выражением, например {{ $json.message }}.
  5. В промпте задайте роль, формат вывода и длину, чтобы убрать лишнее.
  6. Добавьте узел Set и оставьте только поля, нужные дальше.
  7. Добавьте узел Gmail, Slack или таблицы и запишите результат в нужное место.
  8. Сначала запустите вручную, проверьте вход и выход каждого узла, затем включайте.

Если шлюз не поддерживает Responses API, не выбирайте Generate a Model Response — используйте операцию Chat Completions. Набор поддерживаемых параметров зависит от вашей версии n8n и документации шлюза.

6. Вызов совместимого интерфейса через HTTP Request

Параметры, которые узел не показывает, пакетные запросы или особые поля можно передать напрямую через узел HTTP Request на /v1/chat/completions. Method — POST, URL — полный адрес интерфейса, Authentication — Predefined Credential Type с выбранными учётными данными OpenAI либо Bearer Auth в Generic Credential Type. Body — JSON с моделью, сообщениями и параметрами.

Тело запроса не должно содержать ключ: аутентификацию подставляет механизм учётных данных. Ответ разбирается по формату OpenAI Chat Completions, обычно берётся choices[0].message.content. Если возвращаются потоковые данные, на стороне n8n нужно сначала отключить потоковую передачу или использовать способ, умеющий обрабатывать SSE, иначе разбор легко падает.

7. Тестирование и обработка ошибок

Сначала проверьте адрес, ключ и модель через curl вне n8n, а затем возвращайтесь к процессу — это экономит много времени. В автоматических процессах сбой нужно считать нормой:

  1. В настройках узла включите Retry On Fail и повторяйте 2–3 раза при 429, 5xx и тайм-ауте.
  2. Задайте интервал повторов, чтобы не усиливать давление при лимите.
  3. Выберите On Error по задаче: остановиться, продолжить или направить ошибку в отдельную ветку.
  4. Задайте тайм-аут HTTP-запроса; для длинной генерации его можно увеличить, но ждать бесконечно нельзя.
  5. Настройте процесс обработки ошибок: отправляйте ID выполнения, имя узла и краткий вход в Slack или на почту.
  6. Перед повтором проверяйте идемпотентность, чтобы не отправить сообщение или не записать строку дважды.
Симптом Частая причина Действие
401 Неверный или просроченный ключ, учётные данные не выбраны Выбрать учётные данные заново, проверить пробелы и статус
403 Модель не подключена или недостаточно прав Проверить права на модель и лимит проекта
404 Неверный Base URL или путь Указать только /v1, без полного пути
429 Высокий параллелизм или превышена квота Снизить параллелизм, включить задержку повторов
400 Параметр не поддерживается шлюзом Убрать несовместимое поле, сверить ID модели
Тайм-аут Медленный сетевой выход или поставщик Проверить прокси, DNS и настройки тайм-аута

8. Ключевые моменты командного развёртывания

При командном использовании n8n главное — не создать больше аккаунтов, а разграничить учётные данные, проекты и эксплуатацию:

  • Используйте Projects для изоляции бизнес-линий; процессы и учётные данные принадлежат проекту.
  • Выдавайте ключи по людям и проектам, чтобы при увольнении или утечке отозвать только нужный.
  • Производственный экземпляр должен работать по HTTPS; настройте N8N_WEBHOOK_URL на внешне доступный адрес (в старых версиях переменная называлась WEBHOOK_URL).
  • В режиме очереди все worker должны использовать один N8N_ENCRYPTION_KEY, иначе учётные данные не расшифруются.
  • В производстве используйте внешний task runner и не запускайте узлы Code в основном процессе.
  • Делайте резервные копии базы и ключа шифрования, храните их отдельно и ограничивайте доступ.
  • Настройте срок хранения данных выполнения, чтобы история не росла бесконечно и не увеличивала поверхность утечки чувствительных данных.

Самостоятельный хостинг не означает автоматическое соответствие. Сохраняет ли вышестоящая модель запросы и использует ли их для обучения, нужно уточнять отдельно; в процессах с клиентской приватностью добавьте маскирование и узел ручной проверки.

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

Поддерживает ли узел OpenAI в n8n собственный Base URL?

Да. В текущих учётных данных OpenAI есть поле Base URL со значением по умолчанию https://api.openai.com/v1; замените его на адрес шлюза. Если в вашей версии поля нет, вызов работает через узел HTTP Request с Bearer Auth.

До какого уровня указывать Base URL?

Обычно до /v1, например https://ai.zhongshangqihang.com/v1. Не указывайте /v1/chat/completions: узел добавит путь сам. Самое частое проявление ошибки уровня — 404.

Почему проверка учётных данных проходит, а при выполнении модель не найдена?

Проверка обычно подтверждает только ключ и адрес и не означает, что каждая модель доступна вашему проекту. Проверьте, совпадает ли ID модели со страницей цен, есть ли у проекта право на модель и не перенаправлен ли запрос на другой Base URL.

Обязателен ли PostgreSQL для самостоятельного n8n?

Нет, SQLite подходит для тестов и небольшого трафика. В производстве обычно переходят на PostgreSQL ради резервного копирования, параллелизма и масштабирования; точные рекомендации — в официальной документации Docker Compose. При любой базе каталог /home/node/.n8n должен быть постоянным.

На что обратить внимание при командном использовании?

Разделяйте учётные данные по проектам и людям, не используйте долгоживущий общий ключ; управляйте доступом к процессам и учётным данным через роли проектов; в производстве включите HTTPS, MFA и внешний task runner; резервируйте ключ шифрования и ограничивайте доступ. Для единой точки входа и учёта расхода можно использовать виртуальные ключи и лимиты шлюза.

Дальше

Сложность подключения собственного API к n8n не в перетаскивании узлов, а в согласовании трёх вещей: Base URL, ключа и ID модели. Сначала проверьте через curl, затем настройте учётные данные OpenAI и только потом добавляйте повторы, ветки ошибок и командные права. Для единой точки входа можно зарегистрироваться в ZSQH AI Gateway; модели и цены — на странице цены на модели.

Полезное чтение: