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 с аккаунтом в нескольких организациях; при работе через совместимый шлюз поле обычно оставляют пустым.
Несколько практических правил:
- Ключ хранится только в учётных данных, не в узлах Code, Set или JSON процесса.
- Название учётных данных должно объяснять назначение, например «шлюз-производство-суммаризация», а не «тест1».
- После сохранения нажмите проверку; при ошибке сначала проверьте Base URL и сетевой выход.
- В командном экземпляре создавайте учётные данные по проектам, не используйте один ключ на всех.
- При самостоятельном хостинге берегите
N8N_ENCRYPTION_KEY: после его замены существующие учётные данные могут не расшифроваться.
5. Запуск первого процесса
Пример: «после отправки формы создать черновик ответа».
- Создайте процесс и добавьте Form Trigger или Manual Trigger.
- Добавьте узел OpenAI, в Resource выберите Text.
- В Operation выберите Generate a Chat Completion; в старых версиях операция называлась Message a Model.
- Выберите созданные учётные данные и модель, передайте поля формы выражением, например
{{ $json.message }}. - В промпте задайте роль, формат вывода и длину, чтобы убрать лишнее.
- Добавьте узел Set и оставьте только поля, нужные дальше.
- Добавьте узел Gmail, Slack или таблицы и запишите результат в нужное место.
- Сначала запустите вручную, проверьте вход и выход каждого узла, затем включайте.
Если шлюз не поддерживает 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, а затем возвращайтесь к процессу — это экономит много времени. В автоматических процессах сбой нужно считать нормой:
- В настройках узла включите Retry On Fail и повторяйте 2–3 раза при 429, 5xx и тайм-ауте.
- Задайте интервал повторов, чтобы не усиливать давление при лимите.
- Выберите On Error по задаче: остановиться, продолжить или направить ошибку в отдельную ветку.
- Задайте тайм-аут HTTP-запроса; для длинной генерации его можно увеличить, но ждать бесконечно нельзя.
- Настройте процесс обработки ошибок: отправляйте ID выполнения, имя узла и краткий вход в Slack или на почту.
- Перед повтором проверяйте идемпотентность, чтобы не отправить сообщение или не записать строку дважды.
| Симптом | Частая причина | Действие |
|---|---|---|
| 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; модели и цены — на странице цены на модели.
Полезное чтение:
