Все ноды/AI/RAG
RAG-запрос
Выполняет семантический поиск по базе знаний и возвращает релевантный контекст. Принимает запрос через порт 'query' и KB через порт 'kb'. Результат передаётся в LLM для генерации ответа.
Тип в графе: rag_query
Exec
Можно включить ветку ошибки (expose_error_output) и обработать сбой отдельным путём.
Порты можно разделить на исполнение и данные (split ports).
Как попробовать
Минимальный рабочий воркфлоу
- Исполнение + данные
Перед запуском выберите своё подключение или базу знаний — в графе стоит 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_data | object |
Настройки
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Запросquery_template | string | {{inputs.query}} | Текст запроса. Поддерживает {{inputs.query}}, {{nodes.x.output.text}} поддерживает шаблоны |
База знанийkb_id | string | "" | База знаний, в которой выполняется поиск. Подключённая нода Knowledge Base задаёт это значение и перекрывает поле. перекрывается портом: kb |
Top Ktop_k | integer | 5 | Максимальное число возвращаемых чанков. Подключённая нода Knowledge Base задаёт это значение и перекрывает поле. перекрывается портом: kb |
Формат выводаformat | string | text | text: чанки, объединённые через ---. json: массив с метаданными. Варианты: |
| Дополнительно | |||
Порог релевантностиscore_threshold | number | 0 | Минимальная схожесть, которую должен набрать чанк. Подключённая нода Knowledge Base задаёт это значение и перекрывает поле. перекрывается портом: kb |
Окно контекстаcontext_window | integer | 0 | Соседние чанки, включаемые вокруг каждого результата (0 = отключено). Подключённая нода Knowledge Base задаёт это значение и перекрывает поле. перекрывается портом: kb |
Фильтры метаданныхmetadata_filters | array | — | Жёсткие фильтры по метаданным чанков (AND). Операторы: = != < > <= >=. Объединяются с фильтрами подключённой ноды KB, а не заменяются ими. |
Общие поля
Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.
expose_error_output— Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.split_ports_in— Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.split_ports_out— Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.