Все ноды/AI/RAG

RAG-запрос

Выполняет семантический поиск по базе знаний и возвращает релевантный контекст. Принимает запрос через порт 'query' и KB через порт 'kb'. Результат передаётся в LLM для генерации ответа.

RAG-запрос
QueryContext
KB
Embedding

Тип в графе: rag_query

Exec

Можно включить ветку ошибки (expose_error_output) и обработать сбой отдельным путём.

Порты можно разделить на исполнение и данные (split ports).

Как попробовать

Минимальный рабочий воркфлоу

Вход
RAG-запрос
Выход
  • Исполнение + данные
Нажмите «Скопировать ноды», откройте редактор и нажмите Ctrl+V на холсте.

Перед запуском выберите своё подключение или базу знаний — в графе стоит REPLACE_ME.

Как применять

Берите RAG-запрос, когда контекст из базы нужен всегда: справочный ответ, поиск по документации, подстановка фрагментов в промпт перед генерацией. Поиск выполняется на каждом проходе, его результат предсказуем и виден в логе запуска. Если решение «искать или нет» должно принимать сама модель — это RAG-инструмент. Если нужно переранжировать уже найденное — поставьте следом Rerank.

Как это работает

Порт Query приносит и запуск ноды, и текст запроса. Когда в него приходит только исполнение, текст берётся из поля «Запрос» — шаблон вида {{ inputs.query }} или {{ nodes.x.output.text }}. Дальше запрос превращается в вектор и сравнивается с чанками базы.

На выходе — объект: context (склеенные чанки), chunks (массив с score, document_id, chunk_id и метаданными), query и kb_found. При формате text чанки склеиваются разделителем ---, при json в context кладётся сериализованный массив. Окно контекста добавляет к каждому попаданию соседние чанки того же документа, порог релевантности 0 означает «отдавать всё».

Порт Embedding принимает готовый вектор от ноды Embed Text — тогда запрос не эмбеддится второй раз. Вектор обязан быть посчитан той же моделью, что и база: иначе не совпадёт размерность.

Частые ошибки

  • Пустой результат принимают за поломку. kb_found: true с пустым context — база на месте, совпадений нет; false — базу не нашли (удалена или принадлежит другому пространству).
  • Весь объект уходит в промпт. В шаблоне берите {{ nodes.<id>.output.context }}, иначе модель получит JSON со score и метаданными вместо текста.
  • Ничего не подключено к порту Query. Нода не запустится: у неё нет отдельного входа исполнения, запуск приходит именно этим портом.
  • Top K правят на ноде при подключённой Базе знаний. Тогда Top K, порог и окно контекста приезжают оттуда, а поля здесь неактивны.
  • Порог подняли «на всякий случай». Значения похожести зависят от модели эмбеддингов; начните с 0 и поднимайте, глядя на реальные score в логе.

Входы

ПортПроводДанныеПримечания
QueryqueryИсполнение + данныеexecute_data

Search text; replaces the Query template when connected

KBkbДанныеdata

Knowledge Base node config: kb_id/top_k/score_threshold/context_window override the fields here, metadata_filters are combined with them

EmbeddingembeddingДанныеdata

Precomputed query vector from an embed_text node; skips embedding the query text again

Выходы

ПортПроводДанныеПримечания
ContextoutputИсполнение + данныеexecute_dataobject

Настройки

ПолеТипПо умолчаниюОписание
Запросquery_templatestring{{inputs.query}}

Текст запроса. Поддерживает {{inputs.query}}, {{nodes.x.output.text}}

поддерживает шаблоны

База знанийkb_idstring""

База знаний, в которой выполняется поиск. Подключённая нода Knowledge Base задаёт это значение и перекрывает поле.

перекрывается портом: kb

Top Ktop_kinteger5

Максимальное число возвращаемых чанков. Подключённая нода Knowledge Base задаёт это значение и перекрывает поле.

перекрывается портом: kb

Формат выводаformatstringtext

text: чанки, объединённые через ---. json: массив с метаданными.

Варианты: text — Текст, json — JSON

Дополнительно
Порог релевантностиscore_thresholdnumber0

Минимальная схожесть, которую должен набрать чанк. Подключённая нода Knowledge Base задаёт это значение и перекрывает поле.

перекрывается портом: kb

Окно контекстаcontext_windowinteger0

Соседние чанки, включаемые вокруг каждого результата (0 = отключено). Подключённая нода Knowledge Base задаёт это значение и перекрывает поле.

перекрывается портом: kb

Фильтры метаданныхmetadata_filtersarray

Жёсткие фильтры по метаданным чанков (AND). Операторы: = != < > <= >=. Объединяются с фильтрами подключённой ноды KB, а не заменяются ими.

Общие поля

Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.

  • expose_error_output — Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.
  • split_ports_in — Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.
  • split_ports_out — Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.

Готовые примеры с этой нодой