RAG и поиск по знаниям

С поиском по знаниям ассистент отвечает по вашим документам, а не только по общим знаниям языковой модели (LLM). Перед генерацией ответа платформа находит в подключённых источниках подходящие фрагменты, кладёт их в контекст модели и показывает, откуда взят ответ. Источники вы подключаете в карточке ассистента, а поведение поиска задаёт общий для всей платформы профиль поиска, который создаёт администратор. Если источники не подключены, ассистент отвечает только знаниями модели.

Из чего ассистент берёт знания

У ассистента два вида источников: базы знаний и загруженные файлы. Оба вида вы подключаете в настройках ассистента на вкладке Знания.

Нажмите Подключить базу, найдите нужные базы, отметьте одну или несколько и подтвердите выбор кнопкой подключения — она называет число выбранных баз. Свои базы платформа показывает в группе Базы пространства, а открытые вам базы других пространств — в группе Доступные из других пространств; отмечать можно базы из обеих групп, и один ответ строится по всем подключённым базам сразу. Выбранные базы сразу появляются в группе Источники для ответов: их можно открыть в новой вкладке или отключить от ассистента.

Файлы загружаются здесь же кнопкой Загрузить файлы или перетаскиванием. Файлы с ролью Источник знаний находятся в группе Источники для ответов и участвуют в поиске. Роль Рабочий материал означает другое: платформа читает такой файл по запросу ассистента целиком или сегментами как шаблон или образец. Такие файлы показываются отдельно в группе Рабочие материалы. Поддерживаются PDF, DOC, DOCX, RTF, TXT, XLSX, JSON, JSONL, GEOJSON, CSV, TSV и TRACK.

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

Базу для конкретного вопроса можно указать прямо в сообщении символом @: ответ на такое сообщение ищется только в указанных базах. Как это работает, описано в главе Чаты.

Как платформа находит фрагменты

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

  1. Пользователь задаёт вопрос в чате.
  2. Платформа переформулирует вопрос с учётом предыдущих сообщений чата, если вопрос опирается на них.
  3. Если баз в поиске больше, чем допускает профиль поиска, платформа подбирает под вопрос подходящие базы и ищет только в них.
  4. Платформа отправляет запрос в текстовый и векторный поиск по подключённым источникам.
  5. Платформа объединяет результаты выбранной стратегией и сортирует их.
  6. Платформа отсекает слабые совпадения порогом и обрезает остальные до лимита фрагментов и лимита контекста.
  7. Модель строит ответ по найденным фрагментам, а платформа прикладывает к ответу список источников.

Когда к ассистенту подключено больше баз, чем задано в активном профиле поиска (по умолчанию больше восьми), платформа сначала подбирает под вопрос подходящие базы по их портретам — портрет это описание содержимого, которое платформа строит сама после индексации, — и ищет фрагменты только в них. Слишком общий вопрос поэтому может не дотянуться до документа из профильной базы. Базы, у которых портрет ещё не готов, платформа включает в поиск всегда, а если подобрать базы не удалось, поиск идёт по всему набору: документ не исключается из поиска насовсем. Потолок и остальные параметры подбора задаёт администратор в профиле поиска, в карточке ассистента их нет.

Текстовый поиск учитывает не только тело фрагмента. Заголовок раздела, из которого взят фрагмент, весит больше, чем сам текст. Поэтому документы с осмысленными заголовками находятся заметно лучше: заголовок «Порядок возврата товара» поднимает свой фрагмент выше, чем то же словосочетание, упомянутое в середине абзаца. Во фрагменты попадает и текст, распознанный на схемах, диаграммах и скриншотах внутри документа: он ищется наравне с текстом документа, а цитата ведёт к самой картинке.

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

Как платформа ищет точный номер пункта или статьи

Номер из нескольких частей через точку — «16.5.1», «228.1» или дата «25.07.2025» — платформа ищет отдельным проходом как единую последовательность, а не как набор разрозненных цифр. Поэтому по запросу «16.5.1» в выдачу не попадают ни «3.16.5.1», ни «16.5.12», а записи «п. 16.5.1» и «16.5.1.» платформа считает тем же номером; указатель перед номером — пункт, статья, часть — не обязателен, достаточно самого номера в тексте вопроса.

Фрагмент, в котором номер открывает пункт, платформа ставит выше фрагментов с перекрёстной ссылкой на тот же пункт. Найденный по точному номеру фрагмент платформа держит в начале выдачи и не отсекает порогом Минимальная релевантность, потому что номер указан в вопросе явно. Номер без точек — например «статья 228», «лист 237» или телефон «8-921-068-00-53» — платформа точным номером не считает, но ищет его целиком и вместе с соседним словом из вопроса. В текстовом поиске фрагменты, где «статья» и «228» стоят рядом, идут раньше фрагментов, где эти слова встречаются порознь. Такие фрагменты не закрепляются в начале выдачи и проходят порог Минимальная релевантность на общих основаниях.

Как платформа ищет цитату в кавычках

Фразу в кавычках — «70 и вопрос закрыт» или "не подписывала договор" — платформа ищет отдельным проходом как точную цитату: слова должны стоять в тексте подряд и в том же порядке. Регистр, буква «ё» и знаки препинания при этом не важны. Не важен и перенос слова в распознанном скане: «аг- рессии» в тексте совпадает с «агрессии» в цитате. Подходят кавычки «ёлочки», „лапки“, "прямые" и 'одинарные'. Цитату платформа берёт из сообщения пользователя как есть, даже если перед поиском вопрос переписан с учётом истории чата.

Найденный по цитате фрагмент, как и фрагмент с точным номером, идёт в начале выдачи и проходит порог Минимальная релевантность всегда. В начале выдачи платформа держит не больше половины от Top K точных совпадений: если цитата повторяется в десятке документов, остальные места достаются другим найденным фрагментам.

Точным проходом не ищутся:

  • одно слово в кавычках, например название организации: его платформа ищет вместе с остальными словами вопроса;
  • цитата, в которой меньше двух значимых слов, например «не может превышать»: слова «не» и «может» текстовый поиск считает служебными;
  • цитата с опечаткой: её находят остальные проходы и векторный поиск, но без закрепления в начале выдачи.

Длинную цитату платформа ищет по первым двенадцати словам.

Как работает порог релевантности

Платформа сравнивает порог Минимальная релевантность с нормализованной оценкой фрагмента по шкале от 0 до 1. Из двух оценок — текстовой и векторной — платформа берёт лучшую, поэтому фрагмент проходит порог, если лидирует хотя бы по одному из проходов. Шкала одна и та же при любой стратегии, так что значение порога не нужно пересчитывать при смене стратегии.

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

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

Примечание. Порог не меняет объём выборки: сколько кандидатов берут проходы, задают Top-K текстовых документов и Top-K векторных документов, а сколько фрагментов дойдёт до ответа — Top K.

Где задать поведение поиска

Откройте карточку ассистента и перейдите на вкладку Поиск и контекст. Блок Поиск по знаниям доступен, когда к ассистенту подключена хотя бы одна база знаний или файл-источник. Поле Режим поиска предлагает два варианта.

РежимЧто делаетКогда выбирать
Использовать настройки пространстваАссистент наследует активный профиль поискаПоведение по умолчанию, единые правила для всех ассистентов
Задать свои параметрыПереопределяет параметры поиска, переформулирования и повторного ранжирования для этого ассистентаОдному ассистенту нужна своя логика

Профиль поиска — общая настройка платформы, а не рабочего пространства: его создаёт и активирует администратор. В режиме профиля платформа показывает название профиля и его сводку: стратегию, Документов в ответе, лимиты текстового и векторного поиска, состояние переформулирования и переранжирования.

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

Загружаем изображение…

Поиск по знаниям и контекст разговора в настройках ассистента

Какую Embedding-модель использует ассистент

Блок Embedding-модель для запросов определяет, какой моделью платформа переводит вопрос в вектор. Вариант Использовать глобальную Embedding-модель берёт модель из глобальных настроек платформы и подходит почти всегда. Вариант Выбрать другую Embedding-модель нужен только для баз знаний, проиндексированных этой же моделью; при сохранении платформа проверяет совместимость подключённых баз знаний.

Несовпадение модели вопроса и модели, которой проиндексирована база, — самая частая причина ситуации «поиск ничего не находит». Размерность вектора глобальной модели администратор задаёт полем Размерность вектора в настройках индексации платформы.

Какие параметры отвечают за полноту и точность

Все поля ниже доступны в кастомном режиме. Значение по умолчанию каждое поле наследует из активного профиля поиска и показывает его как подсказку.

ПараметрЧто делаетДиапазонКогда менять
Top KСколько фрагментов попадёт в контекст ответа1–20Ассистент не находит нужный документ или в ответ попадает лишнее
Минимальная релевантностьОтсекает слабые совпадения0–1В ответы попадает посторонний текст
Лимит контекстаВерхняя граница объёма найденного текста в токенах500–20 000Ответы обрываются или растёт стоимость
Top-K текстовых документовСколько кандидатов берёт текстовый поиск1–20Точные формулировки теряются
Top-K векторных документовСколько кандидатов берёт векторный поиск1–20Теряются близкие по смыслу формулировки

Вспомогательные механизмы вы настраиваете отдельно.

МеханизмПоляЧто даёт
ПереформулированиеВключить переформулирование, Модель для переформулированияУточняющие вопросы вида «а какие исключения?» переписываются с учётом предыдущих сообщений
Повторное ранжированиеВключить повторное ранжирование, Модель ранжирования, Фрагментов для повторной оценки (1–50), Инструкция для ранжированияЯзыковая модель пересортировывает кандидатов и оставляет самые полезные
Контекст разговораМаксимум сообщений (0–20), Максимум символов (0–50 000)Ограничивает, сколько предыдущих сообщений уходит в поиск
Кэширование результатовВключить кэширование, Хранить результаты, с (60–1800, по умолчанию 300)Переиспользует найденные фрагменты в рамках одного чата

Чем отличаются стратегии поиска

Стратегия определяет, как платформа объединяет результаты текстового и векторного поиска. Стратегию задаёт поле Стратегия: от выбранного значения зависит, какие поля появятся рядом.

СтратегияКак объединяетДополнительные поляКогда подходит
RRFСкладывает места кандидата в обоих спискахRRF k (1–500)Универсальный вариант без ручной настройки
Взвешивание по порогамВзвешивает оценки и отсекает каждый проход своим порогомВес BM25, Вес вектора, Порог BM25, Порог векторного поискаНужен жёсткий контроль шума
ОбъединениеОбъединяет оба списка без взвешиванияНетВажнее не потерять потенциально полезное

Поля Вес BM25, Вес вектора, Порог BM25 и Порог векторного поиска видны только при стратегии Взвешивание по порогам, поле RRF k — только при RRF. Лимиты текстового и векторного поиска доступны всегда.

Где посмотреть источники ответа

Когда в ответе есть цитаты, под ним появляется кнопка Источники со счётчиком найденных документов и фрагментов. Кнопка открывает справа панель Источники со списком карточек: название документа, раздел и фрагмент текста, по которому построен ответ. Из карточки с привязкой к базе знаний можно перейти к документу целиком. Фрагмент из системной базы помечен в карточке подписью Системная база «…»; такой документ открыть целиком нельзя, потому что ссылки на документ у него нет.

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

Файл ассистента открывается справа целиком: PDF показывается как оригинал, текстовые и офисные документы — в безопасном режиме только для чтения, Excel — по листам и строкам. Сохранённый фрагмент цитаты показывается отдельно и не заменяется содержимым файла. В панели источников сама база знаний открывается в новой вкладке, а файл — в том же правом предпросмотре.

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

Загружаем изображение…

Панель «Источники»: карточки цитат с документом и фрагментом

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

Как настроить поиск внутри сценария

Если на вкладке Основное в секции Как работает ассистент выбран Сценарный ассистент, вкладка Поиск и контекст показывает выбранный основной сценарий и поясняет, что параметры задаёт блок Поиск по знаниям в редакторе сценария.

У узла есть поле Источник с двумя вариантами. Вариант Базы знаний ассистента берёт то, что выбрано в карточке ассистента; вариант Конкретная база знаний фиксирует одну базу и делает узел независимым от настроек ассистента. Поле Поисковый запрос задаёт, что именно искать, а поле Отправить ответ пользователю в чат выбирает между вариантами После завершения и Потоково. Модель для ответа новый узел по умолчанию берёт из варианта Модель по умолчанию — общей модели ассистентов из политики LLM. Переопределить её можно полем Источник модели в настройках узла: Модель узла, Основная модель агента, Модель fast-path или Модель по умолчанию. Узлы, созданные раньше, сохраняют записанный в них источник.

Частые вопросы

Ассистент отвечает без опоры на документы

Источники не подключены или ещё не проиндексированы. Проверьте:

  • на вкладке Знания подключена хотя бы одна база;
  • у файлов ассистента стоит роль Источник знаний, а не Рабочий материал;
  • статус базы знаний — Актуальна;
  • в сценарном режиме в сценарии есть узел Поиск по знаниям.

Поиск не находит вообще ничего

Чаще всего платформа переводит вопрос в вектор не той моделью, которой проиндексирована база. Проверьте:

  • в блоке Embedding-модель для запросов выбран вариант Использовать глобальную Embedding-модель;
  • под полем Базы знаний нет предупреждения о несовместимой модели;
  • база проиндексирована после последней смены глобальной модели.

В ответ попадает слишком много лишнего

Выборка шире, чем нужно. Попробуйте по одному шагу за раз:

  • уменьшить Top K;
  • поднять Минимальная релевантность;
  • включить переключатель Включить повторное ранжирование и указать модель ранжирования;
  • сузить список баз знаний до профильных.

Нужный документ не попадает в ответ

Документ недоступен поиску или проигрывает конкурентам по релевантности. Проверьте:

  • индексация документа завершена и его статус — Актуален;
  • документ доступен пользователю, который задаёт вопрос;
  • порог Минимальная релевантность не завышен;
  • в списке источников ассистента выбрана та база, где лежит документ.
  • если к ассистенту подключено много баз, укажите нужную прямо в сообщении: введите @ в пустом месте поля и выберите базу, она встанет чипом «База знаний: …»; ответ на такое сообщение ищется только в указанной базе. Подробнее — в главе Чаты.
  • если текст на схеме или скриншоте внутри давно загруженного документа не находится, переиндексируйте документ.

В настройках ассистента появилась недоступная база знаний

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

Что дальше