Все ноды/AI/RAG

Переранжирование

Переранжирует список чанков по релевантности к запросу через cross-encoder reranker. Универсально: композируется с RAG Query, RRF Fusion или любым источником чанков.

Переранжирование
ChunksContext
Query
Reranker

Тип в графе: rerank

Exec

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

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

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

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

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

Запускается сразу

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

Векторный поиск ранжирует по близости эмбеддингов и на этом останавливается. Реранкер — cross-encoder: он читает запрос и каждый документ вместе и оценивает совпадение куда точнее, но за отдельный вызов. Отсюда рабочая связка: поднимите Top K у RAG-запроса до 15–20, а сюда поставьте Top N 5 — модель получит короткий и заметно более чистый контекст.

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

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

Порт Chunks приносит и запуск, и кандидатов. Он принимает вывод RAG-запроса или RRF-слияния целиком, голый список чанков и даже одиночный чанк; всё, что на чанки не похоже, превращается в пустой список.

Запрос берётся с порта Query или из поля «Запрос». Модель и Top N приезжают с порта Reranker от ноды Реранкер и перекрывают поля формы.

Выход устроен так же, как у RAG-запроса: context (склеенные тексты, при формате json — сериализованный массив), chunks и query. Поле score в чанках заменяется оценкой реранкера, а сортировку и обрезку по Top N Flow применяет сам, уже после ответа провайдера, — поставщики называют этот параметр по-разному, а у самостоятельно поднятого реранкера его может не быть вовсе.

Оплата идёт по токенам, и cross-encoder читает запрос вместе с каждым кандидатом. Поэтому счёт растёт от того, сколько чанков вы прислали, а не от того, сколько оставили.

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

  • Пустой запрос. Это ошибка, а не тихий пропуск: ранжировать «ни по чему» — не ранжировать. Шаблон по умолчанию {{ inputs.query }} читает порт Query; если он не подключён, подставьте запрос явно, например {{ nodes.<id>.output.query }} от предыдущей ноды поиска.
  • Пустой список кандидатов. Наоборот, не ошибка: наверху ничего не нашлось, нода вернёт пустой контекст и оставит предупреждение в логе запуска.
  • Ожидание, что нода найдёт документы. Она только переупорядочивает то, что пришло: сколько кандидатов достать — это Top K на ноде поиска.
  • Поиск модели в списке LLM. Реранкеры — отдельный каталог; сюда попадают только они и модели ваших подключений с назначением «Rerank».

Входы

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

Candidate chunks to reorder (rag_query / rrf_fusion output)

QueryqueryДанныеdata

Relevance criterion; replaces the Query template when connected

Rerankerrerank_configРеранкерlink_rerank

Reranker node config; its model and top_n override the fields here

Выходы

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

Настройки

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

Запрос, используемый для оценки релевантности. Поддерживает {{inputs.query}}.

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

Модель rerankmodelstring""

Cross-encoder-модель, которой считаются оценки. Подключённая конфиг-нода Reranker задаёт это значение и перекрывает поле.

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

Top Ntop_ninteger5

Сколько лучших результатов оставить после реранжирования. Подключённая конфиг-нода Reranker задаёт это значение и перекрывает поле.

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

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

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

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

Общие поля

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

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