RU ▾
Получить API-ключ

Open WebUI и n8n: подключение чата к API без цензуры

Open WebUI предоставляет окно чата, n8n — автоматизацию, и оба могут использовать один и тот же OpenAI-совместимый эндпоинт. Ниже показано, как настроить каждый инструмент и как отправлять запросы из рабочего процесса n8n.

Обновлено

Окно чата и доска рабочих процессов, соединенные кабелем с одним API-сервером, демонстрирующие использование Open WebUI и n8n через один эндпоинт

Ключевые моменты

  1. В Open WebUI добавьте базовый URL и ключ в разделе «Настройки администратора» → «Подключения» или задайте две переменные окружения в Docker.
  2. В n8n либо переопределите базовый URL в учетных данных OpenAI, либо используйте узел HTTP Request.
  3. Используйте идентификатор модели uncensored в обоих инструментах.
  4. Держите количество параллельных запросов в циклах n8n ниже 8 и включите повторную отправку при ответе 429.

Что вы настраиваете

Если вы попали сюда, введя openwebui how to chat n8n, вы, вероятно, хотите решить две связанные задачи: общаться с моделью в Open WebUI и вызывать ту же модель из рабочих процессов n8n. Оба инструмента могут обращаться к любому серверу, поддерживающему формат завершения чата OpenAI, поэтому одного аккаунта хватит для обоих.

Open WebUI — это интерфейс чата, который разворачивается на вашем сервере. n8n — инструмент автоматизации рабочих процессов, где вы соединяете узлы. API, стоящий за ними в обоих случаях, одинаков:

  • Базовый URL: https://api.nofilteraichat.com/v1
  • Идентификатор модели: uncensored
  • Аутентификация: заголовок Authorization: Bearer с вашим ключом

Сначала вам нужен ключ. На странице API-ключ описаны регистрация и получение пробного кредита на $0,50 в один клик, которого достаточно, чтобы протестировать всё, что описано ниже.

Часть первая: Open WebUI

Вариант A: панель администратора

Если Open WebUI уже запущен, войдите как администратор и откройте «Настройки администратора», затем «Подключения». Добавьте новое подключение OpenAI API со следующими значениями:

  1. URL: https://api.nofilteraichat.com/v1
  2. Ключ: ваш API-ключ
  3. Сохраните и нажмите кнопку проверки, если она есть в вашей версии.

Названия меню немного меняются от версии к версии, поэтому ищите раздел, где перечисляются подключения в стиле OpenAI. После сохранения начните новый чат и откройте выбор модели. Модель uncensored должна появиться, так как Open WebUI загружает список из GET /v1/models.

Вариант B: переменные окружения в Docker

Если вы запускаете систему с нуля, передайте настройки при запуске контейнера:

docker run -d --name open-webui -p 3000:8080 \
  -e OPENAI_API_BASE_URL="https://api.nofilteraichat.com/v1" \
  -e OPENAI_API_KEY="$NOFILTER_API_KEY" \
  -v open-webui:/app/backend/data \
  ghcr.io/open-webui/open-webui:main

Откройте http://localhost:3000, создайте первую локальную учётную запись, и модель будет в списке выбора. Обратите внимание, что Open WebUI сохраняет настройки подключения в своей базе данных после первого запуска. Если вы измените переменные позже, а ничего не произойдёт, отредактируйте подключение в панели администратора.

Настройка чата

В настройках чата можно задать температуру, top_p, стоп-последовательность и системный промпт. Эти параметры передаются модели. Для художественной литературы и ролевых игр температура от 0,7 до 1,0 даёт более живой текст. Для фактических вопросов лучше выбрать меньшее значение. Если модель начинает повторять фразы, немного повысьте штраф за частоту.

Часть вторая: n8n с узлом OpenAI

В n8n есть встроенные учётные данные OpenAI. Их конфигурация включает поле Base URL, которое по умолчанию указывает на официальный сервер. Измените его, и узел будет обращаться к вашему эндпоинту:

  1. В n8n создайте новые учетные данные типа OpenAI.
  2. Вставьте ваш API-ключ.
  3. Установите базовый URL в https://api.nofilteraichat.com/v1.
  4. Сохраните и привяжите учетные данные к узлу Chat Model или рабочему процессу AI Agent.

Подвох в поле модели. Некоторые узлы показывают выпадающий список, заполненный из списка моделей, а некоторые ограничивают выбор известными именами. Если вы не можете выбрать uncensored, переключите поле в режим выражения и введите ID вручную. Если ваша версия n8n всё ещё отказывается, используйте подход HTTP Request в следующем разделе, который не имеет таких ограничений.

Когда учётные данные работают, вы можете подключить модель чата к узлу AI Agent и дать ей инструменты. Вызов функций поддерживается API (tools, tool_choice и результаты в виде role: "tool"). Как и с любой моделью с открытыми весами, тестируйте агента на реальных данных и делайте описания инструментов короткими и дословными.

Часть третья: чат через узел HTTP Request

Самый предсказуемый вариант — обычный узел HTTP Request. Он показывает, что именно отправляется, и работает во всех версиях n8n. Настройте узел следующим образом:

  • Метод: POST
  • URL: https://api.nofilteraichat.com/v1/chat/completions
  • Аутентификация: Header Auth, с именем Authorization и значением Bearer YOUR_KEY (сохраните их как учётные данные, а не в узле)
  • Отправлять тело: вкл, тип содержимого JSON

Установите тело запроса следующим образом, используя выражение для текста пользователя:

{
  "model": "uncensored",
  "messages": [
    { "role": "system", "content": "You are a concise story assistant for adult fiction writers." },
    { "role": "user", "content": "{{ $json.prompt }}" }
  ],
  "temperature": 0.8,
  "max_tokens": 600
}

Текст ответа находится по пути choices[0].message.content. В следующем узле прочитайте его с помощью выражения {{ $json.choices[0].message.content }}. Тот же ответ также содержит блок usage, поэтому вы можете записывать количество токенов в таблицу или базу данных.

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

curl https://api.nofilteraichat.com/v1/chat/completions \
  -H "Authorization: Bearer $NOFILTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"Say hello in five words."}]}'

Лимиты, повторные попытки и пакетная обработка в n8n

Полный ключ позволяет 8 параллельных запросов и 300 запросов в минуту; пробный ключ — 2 и 60 соответственно. n8n легко превысит эти лимиты, так как узел обрабатывает каждый входящий элемент и может отправлять их быстро.

В узле HTTP Request откройте Options и используйте Batching: установите размер пакета 4 или 6 и интервал в одну или две секунды. В настройках узла включите Retry On Fail с 3 попытками и задержкой 5000 мс. Это соответствует поведению API: при кратковременной перегрузке он возвращает HTTP 429 с заголовком Retry-After: 5. Другие коды 429 сообщают, какой лимит вы превысили: rate_limited означает слишком много запросов в минуту, concurrency — слишком много одновременно.

Потоковая передача заслуживает отдельного внимания. Потоковый запрос удерживает слот параллельности до завершения потока. В n8n оставьте потоковую передачу выключенной в HTTP-узле, так как рабочий процесс все равно ждет полный ответ. В Open WebUI потоковая передача включена по умолчанию, что подходит для окна чата.

Стоимость рабочего процесса

Предположим, что рабочий процесс обрабатывает 500 строк, отправляя 800 входных токенов и получая 250 выходных токенов для каждой. Вход: 500 × 800 = 400 000 токенов, что стоит 400 000 × $0,15 / 1 000 000 = $0,06. Выход: 500 × 250 = 125 000 токенов, что стоит 125 000 × $0,50 / 1 000 000 = $0,0625. Итого за запуск $0,1225, примерно 12 центов. См. страницу цен для пополнения.

Устранение неполадок

СимптомВероятная причинаИсправление
Open WebUI не показывает моделиНеверный URL или ключИспользуйте базовый URL, заканчивающийся на /v1; протестируйте GET /v1/models с помощью curl
Переменные окружения Docker игнорируютсяНастройки уже сохраненыОтредактируйте подключение в «Настройках администратора»
Ошибка 401 от n8nВ значении заголовка отсутствует слово BearerЗначение должно быть Bearer, пробел, затем ключ
Open WebUI в Docker не может подключиться к локальному проксиlocalhost указывает на контейнерИспользуйте адрес хоста, а не localhost
Ошибка 429 в середине циклаСлишком много параллельных элементовВключите пакетную отправку в узле HTTP и повторные попытки
Модель не найденаИмя введено неверноЕдинственный идентификатор — uncensored

Помните об ограничениях продукта при проектировании потока: только текстовый чат, контекстное окно на 100 000 токенов, разделяемое промптом и ответом, и тело запроса до 8 МБ. Эндпоинта эмбеддингов нет, поэтому оставьте любой векторный поиск на другом сервисе. В быстром старте есть полная справочная информация по запросам, а в руководстве по интеграции — больше фронтендов. Промпты, отправленные через API, не используются для обучения.

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

Вопросы и ответы

Как добавить пользовательский эндпоинт OpenAI в Open WebUI?

Перейдите в Настройки администратора → Подключения, добавьте подключение к API OpenAI с базовым URL и вашим ключом. Или установите переменные OPENAI_API_BASE_URL и OPENAI_API_KEY при запуске контейнера Docker.

Может ли n8n использовать другой базовый URL для узлов OpenAI?

Да. В учетных данных OpenAI есть поле Base URL. Если выпадающий список моделей не принимает uncensored, введите его в режиме выражений или используйте узел HTTP Request.

Почему мой цикл n8n возвращает ошибки 429?

Вы отправляете более 8 параллельных запросов или более 300 в минуту с полным ключом. Добавьте пакетную обработку в узле HTTP и включите Retry On Fail.

Можно ли использовать один и тот же ключ в Open WebUI и n8n одновременно?

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

Ваш ключ — в одном шаге от вас

Создайте учётную запись, скопируйте ключ, измените базовый URL. Вот и вся настройка.

Получить API-ключ