RAG и поиск по знаниям
С поиском по знаниям ассистент отвечает по вашим документам, а не только по общим знаниям языковой модели (LLM). Перед генерацией ответа платформа находит в подключённых источниках подходящие фрагменты, кладёт их в контекст модели и показывает, откуда взят ответ. Источники вы подключаете в карточке ассистента, а поведение поиска задаёт общий для всей платформы профиль поиска, который создаёт администратор. Если источники не подключены, ассистент отвечает только знаниями модели.
Из чего ассистент берёт знания
У ассистента два вида источников: базы знаний и загруженные файлы. Оба вида вы подключаете в настройках ассистента на вкладке Знания.
Нажмите Подключить базу, найдите нужные базы, отметьте одну или несколько и подтвердите выбор кнопкой подключения — она называет число выбранных баз. Свои базы платформа показывает в группе Базы пространства, а открытые вам базы других пространств — в группе Доступные из других пространств; отмечать можно базы из обеих групп, и один ответ строится по всем подключённым базам сразу. Выбранные базы сразу появляются в группе Источники для ответов: их можно открыть в новой вкладке или отключить от ассистента.
Файлы загружаются здесь же кнопкой Загрузить файлы или перетаскиванием. Файлы с ролью Источник знаний находятся в группе Источники для ответов и участвуют в поиске. Роль Рабочий материал означает другое: платформа читает такой файл по запросу ассистента целиком или сегментами как шаблон или образец. Такие файлы показываются отдельно в группе Рабочие материалы. Поддерживаются PDF, DOC, DOCX, RTF, TXT, XLSX, JSON, JSONL, GEOJSON, CSV, TSV и TRACK.
Подключение и отключение баз, загрузка, удаление и смена роли файлов применяются сразу. Остальные настройки ассистента сохраняются отдельно кнопкой Сохранить.
Базу для конкретного вопроса можно указать прямо в сообщении символом @: ответ на такое сообщение ищется только в указанных базах. Как это работает, описано в главе Чаты.
Как платформа находит фрагменты
Поиск идёт по одному и тому же набору фрагментов несколькими проходами: отдельный проход ищет точный номер пункта или статьи из вопроса, текстовый поиск идёт по словам запроса, векторный — по смыслу. Платформа объединяет результаты в один список, отсекает слабые совпадения порогом релевантности и обрезает список до нужного числа фрагментов.
- Пользователь задаёт вопрос в чате.
- Платформа переформулирует вопрос с учётом предыдущих сообщений чата, если вопрос опирается на них.
- Если баз в поиске больше, чем допускает профиль поиска, платформа подбирает под вопрос подходящие базы и ищет только в них.
- Платформа отправляет запрос в текстовый и векторный поиск по подключённым источникам.
- Платформа объединяет результаты выбранной стратегией и сортирует их.
- Платформа отсекает слабые совпадения порогом и обрезает остальные до лимита фрагментов и лимита контекста.
- Модель строит ответ по найденным фрагментам, а платформа прикладывает к ответу список источников.
Когда к ассистенту подключено больше баз, чем задано в активном профиле поиска (по умолчанию больше восьми), платформа сначала подбирает под вопрос подходящие базы по их портретам — портрет это описание содержимого, которое платформа строит сама после индексации, — и ищет фрагменты только в них. Слишком общий вопрос поэтому может не дотянуться до документа из профильной базы. Базы, у которых портрет ещё не готов, платформа включает в поиск всегда, а если подобрать базы не удалось, поиск идёт по всему набору: документ не исключается из поиска насовсем. Потолок и остальные параметры подбора задаёт администратор в профиле поиска, в карточке ассистента их нет.
Текстовый поиск учитывает не только тело фрагмента. Заголовок раздела, из которого взят фрагмент, весит больше, чем сам текст. Поэтому документы с осмысленными заголовками находятся заметно лучше: заголовок «Порядок возврата товара» поднимает свой фрагмент выше, чем то же словосочетание, упомянутое в середине абзаца. Во фрагменты попадает и текст, распознанный на схемах, диаграммах и скриншотах внутри документа: он ищется наравне с текстом документа, а цитата ведёт к самой картинке.
Слова вопроса текстовый поиск взвешивает по редкости: чем реже слово встречается во фрагментах базы, тем больше оно весит, а повторы слова внутри фрагмента оценку не меняют. Фрагмент с несколькими редкими словами вопроса — фамилией, названием, термином — стоит выше фрагмента, где много раз повторено слово, общее для всей базы. Совпадать должны не все слова вопроса: фрагмент с большинством редких слов тоже находится. Поэтому в длинном вопросе полезно называть имена, названия и термины так, как они записаны в документах.
Как платформа ищет точный номер пункта или статьи
Номер из нескольких частей через точку — «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;
- поднять Минимальная релевантность;
- включить переключатель Включить повторное ранжирование и указать модель ранжирования;
- сузить список баз знаний до профильных.
Нужный документ не попадает в ответ
Документ недоступен поиску или проигрывает конкурентам по релевантности. Проверьте:
- индексация документа завершена и его статус —
Актуален; - документ доступен пользователю, который задаёт вопрос;
- порог Минимальная релевантность не завышен;
- в списке источников ассистента выбрана та база, где лежит документ.
- если к ассистенту подключено много баз, укажите нужную прямо в сообщении: введите
@в пустом месте поля и выберите базу, она встанет чипом «База знаний: …»; ответ на такое сообщение ищется только в указанной базе. Подробнее — в главе Чаты. - если текст на схеме или скриншоте внутри давно загруженного документа не находится, переиндексируйте документ.
В настройках ассистента появилась недоступная база знаний
К одной из привязанных баз знаний закрыт доступ или база удалена. Карточка Недоступная база знаний с подписью Доступ отозван или база удалена находится в группе Источники для ответов. Отключите её крестиком на карточке или обратитесь к владельцу базы за возвратом доступа.
Что дальше
- Базы знаний — наполнить и проиндексировать источники, по которым идёт поиск.
- Ассистенты — подключить источники и выбрать режим обработки.
- Расшаривание баз знаний между пространствами — открыть свою базу другому пространству и понять, чьё пространство платит за запрос.
- Файлы, вложения и импорты — разобраться с ролями файлов ассистента.
- Чаты — посмотреть, как источники выглядят в переписке.
- Сценарии — настроить узел Поиск по знаниям в сценарии.