Базы знаний и RAG

База знаний — это набор документов, разрезанных на фрагменты. Каждый фрагмент превращён в вектор моделью эмбеддингов, поэтому поиск идёт по смыслу, а не по совпадению слов. Воркфлоу достаёт из базы несколько подходящих фрагментов и передаёт их модели как контекст — это и есть RAG.

Как документ попадает в базу

app.iterna.ai

База знаний

Документы

фрагмент 500 / перекрытие 50

Добавить документ
НазваниеСтатусФрагменты
policy.pdfГотово42
faq.mdОбработка
https://example.com/pricingГотово11
Слева список баз, справа документы выбранной базы.
  1. В разделе База знаний нажмите Новая. Задайте название, описание, модель эмбеддингов, размер фрагмента (по умолчанию 500) и перекрытие фрагментов (по умолчанию 50).
  2. Нажмите Добавить документ и либо загрузите файл (PDF, DOCX, TXT, MD), либо укажите URL веб-страницы.
  3. Там же добавьте метаданные — пары ключ/значение, по которым потом можно жёстко фильтровать поиск.
  4. Дождитесь статуса Готово. Документ проходит путь Ожидание → Обработка → Готово; при неудаче остаётся Ошибка с текстом причины.

Что происходит при поиске

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

  • top_k — сколько фрагментов вернуть, от 1 до 20 (по умолчанию 5).
  • score_threshold — минимальная близость, от 0 до 1. Ноль означает «ничего не отсекать».
  • context_window — сколько соседних фрагментов документа приклеить к каждому найденному (0 отключает, максимум 10). Соседи склеиваются в один текст, поэтому модель видит абзац целиком, а не обрывок.
  • Фильтры по метаданным — жёсткое условие поверх поиска.

Фильтр состоит из ключа, оператора, значения и типа значения (string, number, date). Операторы: =, !=, <, >, <=, >=. Несколько условий объединяются по И, поэтому каждый следующий фильтр только сужает выдачу. Фрагмент без такого ключа проходит только условие !=. Значения фильтров и метаданных рендерятся как шаблоны, так что {{ variables.session_id }} в значении даёт скоуп на конкретную сессию.

Ноды

Вход
RAG-запрос
База знаний
Ответ LLM
LLM
Выход
  • Исполнение + данные
  • Данные
  • LLM
Поиск перед ответом: Knowledge Base задаёт параметры, RAG Query достаёт контекст.
  • rag_kb — конфигурация базы. Сама ничего не ищет: её значения (kb_id, top_k, score_threshold, context_window) приходят потребителю через порт KB и выигрывают у его собственных полей. Фильтры метаданных — исключение: они не заменяют фильтры потребителя, а объединяются с ними по И.
  • rag_query — детерминированный шаг поиска. Принимает текст запроса на порт Query, отдаёт контекст в формате text (фрагменты через ---) или json (массив с метаданными и оценками).
  • rag_tool — тот же поиск, но как инструмент агента: подключается к ai_agent и вызывается моделью, когда она сочтёт нужным.
  • kb_write — запись в базу прямо из воркфлоу: текст режется на фрагменты, эмбеддится и уходит в хранилище. По умолчанию создаётся документ, видимый в разделе База знаний.
  • rerank — переранжирование найденного cross-encoder-моделью и срез до top_n. Ставится после rag_query или rrf_fusion; модель берётся из поля или из подключённой ноды rerank_config.

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

Сколько это стоит

Эмбеддинги считаются и при записи документа, и при каждом поиске: запрос тоже нужно превратить в вектор. Реранк тарифицируется по своей ставке, более высокой. Модели, подключённые по вашему собственному ключу, по токенам не биллятся вовсе — подробности в разделе Кредиты и стоимость запуска.

Объём базы ограничен тарифом: число баз знаний, байты документов и количество векторных точек — см. Лимиты тарифов.