GuidesOneMux

Создание в n8n рабочего процесса для вопросов и ответов по документам с подтверждением человеком и OpenAI-совместимым API

Практическая схема n8n для ответов на вопросы по документам с указанием источников, выборочным подтверждением человеком и условно совместимой с OpenAI конечной точкой модели через OneMux.

В этой статье

Решение: где должно происходить подтверждение?

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

Практичная схема в n8n:

  1. Получить вопрос.
  2. Попросить AI Agent подготовить запрос к поиску по документам.
  3. Приостановить рабочий процесс и запросить подтверждение перед запуском инструмента поиска, если корпус содержит чувствительные данные, запрос может раскрыть материалы с ограниченным доступом или поиск связан с операционными затратами.
  4. Извлечь фрагменты вместе с метаданными источников.
  5. Попросить модель отвечать только на основе этих фрагментов.
  6. Вернуть ответ со ссылками на источники или направить черновик на второй этап подтверждения перед публикацией.

Так разделяются три решения, которые часто смешивают: допустим ли сам вопрос, допустимо ли действие по извлечению данных и готов ли сгенерированный ответ к отправке.

В документации n8n описана проверка человеком для конкретных инструментов, подключенных к AI Agent. При включенной проверке рабочий процесс приостанавливается, и проверяющий может одобрить или отклонить предложенный вызов инструмента. Подробнее о поддерживаемом поведении и каналах подтверждения см. в документации n8n о human-in-the-loop.

Предварительные требования

Вам понадобятся:

  • Рабочий процесс n8n с AI Agent и подключением к модели.
  • Источник документов с возможностью поиска, например векторное хранилище, база данных или внутренний поисковый сервис. Конкретный коннектор зависит от приложения и не определяется приведенной страницей n8n.
  • Инструмент извлечения данных, который возвращает текст вместе с метаданными документа.
  • Настроенный в n8n канал подтверждения. В документации в качестве доступных каналов перечислены Chat, Slack, Discord, Telegram, Microsoft Teams, Gmail, WhatsApp Business Cloud, Google Chat и Microsoft Outlook.
  • Доступ к OpenAI-совместимой конечной точке API. OneMux предоставляет доступ к ведущим моделям ИИ через единый OpenAI-совместимый API; актуальные инструкции по конечной точке и аутентификации см. в кратком руководстве OneMux и документации API.

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

Рекомендуемая структура рабочего процесса n8n

Разделите рабочий процесс на пять логических этапов:

1. Получение и нормализация вопроса

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

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

2. Добавление инструмента поиска по документам

Подключите инструмент поиска к AI Agent. Его входные данные должны быть узкими и однозначными, например:

{
  "query": "string",
  "document_scope": "string or controlled value",
  "max_results": "integer"
}

Результат поиска должен сохранять достаточно метаданных для полезной ссылки на источник:

{
  "text": "Approved passage from the document",
  "title": "Document title",
  "url": "Document URL or stable identifier",
  "page": "Page number when available",
  "section": "Section heading when available",
  "chunk_id": "Stable passage identifier"
}

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

3. Настройка проверки человеком для выбранного инструмента

Откройте панель Tools в AI Agent, найдите раздел Human review, выберите канал подтверждения и подключите инструмент поиска по документам к этому этапу проверки. Настройте учетные данные и параметры выбранного канала в n8n.

Сообщение проверяющему может содержать предлагаемое действие и его параметры. В документации n8n для этой цели описаны переменные $tool.name и $tool.parameters. Практичное сообщение выглядит так:

The AI wants to use {{ $tool.name }} with these parameters:
{{ JSON.stringify($tool.parameters, null, 2) }}

Approve only if the query and document scope are appropriate for this request.

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

4. Подключение OpenAI-совместимой конечной точки модели

Настройте уровень модели с использованием конечной точки и учетных данных, указанных вашим поставщиком. При работе с OneMux начните с краткого руководства OneMux, выберите модель с возможностями, необходимыми вашему узлу n8n, и проверьте идентификатор модели и параметры запроса.

Общая форма запроса может выглядеть следующим образом, однако это иллюстративный пример, а не протестированный рецепт для OneMux:

curl https://api.example-provider.invalid/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_MODEL_ID",
    "messages": [
      {"role": "system", "content": "Answer only from supplied document passages."},
      {"role": "user", "content": "What does the document say about retention?"}
    ]
  }'

Замените URL-заполнитель, способ работы с ключом и идентификатор модели значениями из актуальной документации поставщика. Не раскрывайте учетные данные в экспортируемых рабочих процессах или видимых пользователю сообщениях о подтверждении. Если узел модели n8n ожидает параметр, который конечная точка не поддерживает, используйте совместимую конфигурацию или схему на основе HTTP Request только при условии, что она соответствует требованиям безопасности и разбора ответов.

5. Обеспечение указания источников в промпте ответа

Передайте модели извлеченные фрагменты в явно ограниченном контексте и потребуйте указывать источник для каждого содержательного утверждения. Например:

You answer questions about the supplied documents.

Rules:
- Use only the passages in DOCUMENT_CONTEXT.
- If the passages do not support an answer, say that the documents do not establish it.
- Do not create titles, URLs, page numbers, or quotations.
- Cite each factual answer using the supplied title and page, section, URL, or chunk ID.
- Distinguish a direct statement from an inference.

DOCUMENT_CONTEXT:
{{ JSON.stringify($json.documents) }}

QUESTION:
{{ $json.question }}

Точный синтаксис выражений зависит от того, как предыдущие узлы n8n формируют данные. Рассматривайте этот промпт как шаблон, а не как готовый экспорт рабочего процесса.

Схема подтверждения: извлечение данных или публикация

Есть два разумных момента для подтверждения:

Момент подтвержденияЛучше всего подходит дляКомпромисс
Перед поиском по документамЧувствительные репозитории, доступ между командами, дорогостоящие поисковые операцииДобавляет задержку проверки к каждому одобренному поиску
Перед публикацией ответаВнешние ответы службы поддержки, регулируемый контент, решения с серьезными последствиямиПоиск уже выполнен, поэтому контроль доступа все равно необходимо обеспечить

Для рабочих процессов с высоким риском можно использовать оба этапа. В документации n8n указано, что проверка может применяться ко всем инструментам, подключенным к AI Agent, или только к выбранным инструментам, что поддерживает такую выборочную схему. Там также отмечается, что подтверждение может выполняться через канал, отличный от основного канала взаимодействия; например, пользовательский чат можно сочетать с подтверждением проверяющего в Slack.

Системный промпт и поведение при отклонении

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

Краткая политика может выглядеть так:

The document_search tool requires human approval. If it is denied, do not call it again for the same request. Tell the user that the lookup was not approved. Never answer from memory when document evidence is required.

Это соответствует рекомендациям n8n включать поведение инструментов и проверки человеком в системный промпт, чтобы агент мог корректно обрабатывать отклоненные вызовы.

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

В запросе на подтверждение не хватает полезного контекста

Проверьте, что входные данные инструмента используют явные поля, а сообщение для проверки содержит $tool.name и $tool.parameters. Не прячьте важную область поиска внутри непрозрачной строки.

Цитаты отсутствуют

Проверьте результат извлечения данных до того, как он попадет к модели. Если узел сопоставления удаляет название, URL, страницу, раздел или идентификаторы фрагментов, модель не сможет надежно восстановить их. Также проинструктируйте модель отказываться от неподтвержденных утверждений.

Конечная точка отклоняет запрос

Проверьте базовый URL, заголовок аутентификации, идентификатор модели, поддержку вызова инструментов, ограничения контекста и названия параметров. OpenAI-совместимость не означает идентичность: совместимость необходимо проверить с учетом формата запросов n8n и документированного API поставщика.

После отказа формируется неудачный ответ

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

Рабочий процесс работает слишком медленно

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

Планирование затрат и эксплуатации

OneMux имеет значение в данном сценарии как способ доступа к моделям, а не как замена средствам управления рабочими процессами n8n. Перед выбором модели ознакомьтесь с актуальными тарифами OneMux и учтите объем входных и выходных данных, объем извлечения, повторные попытки подтверждения и возможные расходы на сервис поиска по документам. Применимая цена зависит от выбранной модели и действующих опубликованных условий; эта статья не устанавливает тариф и не обещает экономию.

Для оценки расходов и выбора модели ознакомьтесь с каталогом моделей OneMux. Выбирайте модель с учетом фактических возможностей, необходимых вашему рабочему процессу, особенно структурированного вывода или вызова инструментов.

Заключение

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

Используйте n8n для оркестрации и подтверждения человеком, а OneMux рассматривайте как практичный способ доступа к моделям через OpenAI-совместимый API, если его документированные конечная точка и параметры соответствуют вашей схеме. Начните с небольшого корпуса, протестируйте пути с подтверждением и отказом и рассматривайте неподтвержденные утверждения, отсутствующие ссылки на источники и несовместимые параметры как ошибки рабочего процесса, а не как необъяснимые особенности модели.

Источники

  • n8n: Human-in-the-loop для инструментов — источник сведений о подтверждении действий инструментов, каналах подтверждения, выражениях $tool и рекомендациях по обработке отказов.
  • Документация OneMux — документация поставщика по текущему использованию API и деталям совместимости.
  • Краткое руководство OneMux — отправная точка для настройки конечной точки и аутентификации.
  • Тарифы OneMux — актуальный источник информации о ценах, который следует проверить перед развертыванием.

Вопросы

Может ли n8n требовать подтверждение перед использованием AI Agent инструмента поиска по документам?

Да. Документированная функция Human review в n8n может подключаться к выбранным инструментам, связанным с AI Agent. Рабочий процесс приостанавливается, отправляет запрос на подтверждение через настроенный канал и запускает инструмент только после подтверждения.

Как рабочему процессу ответов по документам формировать ссылки на источники?

Возвращайте каждый извлеченный фрагмент вместе с такими метаданными, как название документа, URL, страница, раздел или стабильный идентификатор фрагмента. Передавайте этот объединенный объект модели, формирующей ответ, и инструктируйте ее ссылаться только на предоставленные метаданные.

Гарантирует ли каждый OpenAI-совместимый API работу с n8n?

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

Следует ли запрашивать подтверждение перед извлечением данных или перед отправкой ответа?

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

Что должно произойти, если проверяющий отклонил вызов инструмента?

Агент не должен молча повторять запрос или выдумывать ответ. Он должен объяснить, что поиск не был одобрен, и, если это уместно, предложить более узкую разрешенную альтернативу. Это поведение следует включить в системный промпт.

Похожие статьи

Guides

Настройка OpenAI-совместимого провайдера в Cline для вопросов по документам с указанием источников

Настройте OpenAI-совместимого провайдера в SDK Cline, а затем создайте сценарий вопросов и ответов по документам с проверяемыми ссылками на источники.

Guides

Создайте в n8n процесс изменения кода с согласованием человеком и проверкой тестами

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

Guides

Рабочий процесс n8n с подтверждением человеком, OpenAI-совместимым API и валидацией JSON Schema

Создайте рабочий процесс n8n, который извлекает структурированные данные через OpenAI-совместимое API, проверяет результат по JSON Schema и требует подтверждения человека перед запуском чувствительного инструмента.

Guides

Переход на Claude Sonnet 5 без изменения кода приложения

Практический паттерн переключения моделей для перевода рабочих нагрузок на Claude Sonnet 5 через конфигурацию: руководство для Claude Code и приложений с OpenAI-совместимым API.