Поисковые индексы Vector Store
AI-агенты в своей работе могут использовать гибридный поиск по контексту, получаемому из файлов внешних баз знаний. Такой дополнительный контекст хранится в поисковых индексах Vector Store — специальных векторных хранилищах Yandex AI Studio, которые создаются с помощью Vector Store API и в которых документы представлены в виде векторов (эмбеддингов).
Создание индекса
Чтобы создать поисковый индекс, необходимо загрузить в Vector Store файлы-источники для базы знаний и проиндексировать их.
Загрузка файлов
В Vector Store вы можете загрузить до 10 000 файлов, максимальный размер каждого файла — 128 МБ. Один и тот же файл может использоваться для создания одновременно нескольких поисковых индексов Vector Store.
Сервис поддерживает загрузку файлов следующих MIME-типов
application/jsonapplication/jsonlinesapplication/mswordapplication/pdfapplication/rtfapplication/vnd.ms-excelapplication/vnd.ms-excel.sheet.2application/vnd.ms-excel.sheet.3application/vnd.ms-excel.sheet.4application/vnd.ms-excel.workspace.3application/vnd.ms-excel.workspace.4application/vnd.ms-outlookapplication/vnd.ms-powerpointapplication/vnd.ms-projectapplication/vnd.ms-word2006mlapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentapplication/x-latexapplication/x-ms-ownerapplication/xhtml+xmlaudio/mpegaudio/wavaudio/flacaudio/oggaudio/webmaudio/mp4audio/aacaudio/midiaudio/aiffaudio/amraudio/3gppaudio/3gpp2text/csvtext/htmltext/markdowntext/plaintext/xmlvideo/mp4video/quicktimevideo/webmvideo/x-matroskavideo/x-msvideovideo/x-ms-wmvvideo/mpegvideo/x-flvvideo/3gppvideo/3gpp2video/oggvideo/mp2t
Индексирование загруженных файлов
При создании поисковых индексов Vector Store загруженные файлы автоматически разбиваются на фрагменты, которые затем преобразуются моделью эмбеддингов в числовые векторы. Вектор отражает смысл фрагмента, благодаря чему нужную информацию можно находить в индексе не только по совпадению слов, но и по совпадению смыслов/значений.
При разбиении информации на фрагменты не учитывается смысл, поэтому текст может быть разделен, например, в середине предложения. В этом случае контекст оказывается неполным. Чтобы сократить потери информации, возникающие из-за подобного разрыва контекста, при разбиении данных на фрагменты используют перекрытие, которое позволяет сохранить часть информации одновременно в двух соседних фрагментах.
Совет
Чтобы исключить возможные потери смысла при фрагментации файлов, вы можете самостоятельно разбить информацию на части и загрузить в поисковый индекс уже готовые фрагменты в формате JSONL
По умолчанию при создании поисковых индексов Vector Store используются стандартные модели эмбеддингов AI Studio. Чтобы улучшить качество векторного поиска в зависимости от специфики входных файлов, вы можете использовать дообученные модели эмбеддингов.
После завершения обработки всех файлов и векторизации всех полученных текстовых фрагментов поисковый индекс готов к использованию.
Возможные состояния процесса создания поискового индекса Vector Store:
in_progress— происходит фрагментирование загруженных файлов и векторизация фрагментов;completed— поисковый индекс готов к работе;failed— при создании поискового индекса возникла ошибка.
Логика разбиения на фрагменты
Вы можете управлять стратегией разбиения на фрагменты при создании поискового индекса Vector Store. Для этого задайте параметр chunking_strategy:
vector_store = client.vector_stores.create(
name='mytest',
metadata={"test": 'for filter'},
expires_after={"anchor": "last_active_at", "days": 20},
chunking_strategy={
'type': 'static',
'static': {
'max_chunk_size_tokens': 1408,
'chunk_overlap_tokens': 148
}
}
)
Где:
-
max_chunk_size_tokens— максимальный размер фрагмента в токенах. Этот параметр влияет на компромисс между точностью и контекстом. -
chunk_overlap_tokens— размер перекрытия между соседними фрагментами в токенах. Перекрытие необходимо, чтобы важная информация на границах фрагментов не обрывалась.
Рекомендации по настройке параметров
|
Параметр |
Влияние изменений |
Рекомендация |
|
Размер фрагмента |
Меньше размер:
|
FAQ, короткие параграфы |
|
Больше размер:
|
Регламенты, длинные инструкции |
|
|
Перекрытие |
Меньше размер:
|
FAQ, новостные заметки, независимые тексты |
|
Больше размер:
|
Техническая документация с большим количеством ссылок между разделами |
Метаданные на уровне Vector Store
Метаданные (metadata) поискового индекса — это атрибуты, которые задаются для всего хранилища при создании поискового индекса. Они особенно полезны, когда поисковых индексов много и требуется их организация по проектам, версиям базы знаний, клиентам или другим критериям.
Пример задания метаданных:
metadata = {
"product": "xdr",
"lang": "ru",
"access": "internal",
"category": "billing"
}
При выполнении поиска вы можете указывать конкретные значения метаданных для фильтрации документов, например, product=xdr и lang=ru. Это позволит сузить область поиска и повысить точность результатов.
Использование поискового индекса
Использование поисковых индексов позволяет реализовать сценарий генеративного ответа с учетом информации из внешних источников (RAG
Поисковый индекс Vector Store можно подключить к голосовому или текстовому агенту при помощи инструмента File Search.
По умолчанию поиск в Vector Store работает в гибридном режиме:
- Векторный поиск по эмбеддингам ищет близкие по смыслу формулировки, может обрабатывать синонимы и контекст запроса.
- Лексический поиск находит точные совпадения слов, артикулов, имен и аббревиатур.
Гибридный подход сочетает преимущества обоих методов. Он обеспечивает стабильную релевантность для запросов любой длины — от коротких точных до развернутых и неточных.
Результатом поиска по векторному индексу Vector Store являются:
-
Список релевантных текстовых фрагментов.
Поиск в индексе Vector Store (similarity search
) возвращает список из заданного количества ближайших по смыслу векторов (методTop-k). -
Оценка релевантности по отношению к запросу для каждого из возвращаемых фрагментов списка.
-
Метаданные фрагментов.
К результатам поиска можно применять фильтры по метаданным. Метаданные поисковых индексов представляют собой объекты, содержащие пары
<ключ>:<значение>, и могут расширять контекст поиска дополнительными сведениями, такими как категория данных, дата обновления, специальные метки и т.п.
Управление поисковым индексом
Вы можете добавлять новые файлы к существующим поисковым индексам Vector Store, а также удалять из них имеющиеся файлы.
Vector Store API позволяет настраивать автоматическое удаление неиспользуемых поисковых индексов. Для этого в поле expires_after задайте значение для одного из свойств:
created_at— заданное значение определяет срок жизни поискового индекса с момента создания;last_active_at— заданное значение определяет срок жизни поискового индекса с момента последнего использования.
По истечении указанного в поле expires_after времени поисковый индекс будет автоматически удален. Кроме того, вы можете в любой момент удалить поисковый индекс Vector Store вручную.
Возможные сценарии использования поисковых индексов Vector Store
В сочетании с AI-агентами поисковые индексы Vector Store могут использоваться в целом ряде сценариев:
-
AI-бот для клиентов, отвечающий на часто задаваемые вопросы
- В поисковый индекс Vector Store загружается база инструкций и ответов на часто задаваемые вопросы.
- Поисковый индекс подключается к AI-агенту.
- Пользователь задает вопрос:
Сколько багажа можно взять с собой? - Поиск находит релевантный фрагмент в базе знаний:
Одна сумка до 23 кг. - AI-агент возвращает ответ со ссылкой на документ.
-
Внутренняя база знаний компании
-
В поисковый индекс Vector Store загружаются регламенты, политики, инструкции по продукту.
-
Запрос к поисковому индексу возвращает ответы по смыслу, даже если непосредственные формулировки не совпадают.
Например: на ключевое слово
увольнениесистема найдет в том числе документы с формулировкамипрекращение трудовых отношенийилирасторжение трудового договора.
-
-
AI-ассистент техподдержки (Call Center Assistant)
- В поисковый индекс Vector Store загружается база инструкций и ответов на часто задаваемые вопросы.
- Оператор во время звонка набирает или произносит запрос:
Как сбросить пароль пользователя? - AI-агент с подключенным поисковым индексом мгновенно подсказывает шаги из базы знаний.
-
Анализ объемных документов
-
В поисковый индекс Vector Store загружаются отчеты, исследования, контракты.
-
Запрос к поисковому индексу позволяет быстро найти нужные фрагменты:
Покажи все упоминания про KPI за 2024 год.Особенно эффективно при работе с сотнями страниц информации.
-
-
Чат с AI-агентом по корпоративным документам
- AI-агент подключается к поисковому индексу Vector Store, содержащему корпоративную базу знаний.
- Сотрудник задает AI-агенту вопрос:
Объясни, как работает процесс возврата товара. - AI-агент получает релевантные фрагменты документации и на их основе дает подробный и корректный ответ.
-
Локальный поиск для приложений
-
Многоязычный поиск
- В одном и том же поисковом индексе Vector Store хранятся документы на русском и английском языках.
- При запросе
baggage allowanceиндекс вернет фрагменты в том числе и на русском языке по запросунормы провоза багажа.
-
Интеграция с аналитикой
- В поисковый индекс Vector Store загружаются транскрипты звонков или чатов.
- Vector Store API позволяет находить похожие обращения клиентов.
- Полученную информацию можно быстро группировать, анализировать, находить наиболее часто возникающие вопросы и выявлять проблемы.
Таким образом, поисковые индексы Vector Store — это универсальный инструмент, который может использоваться как чат-ботами, так и пользователями для внутреннего поиска, анализа документов, а также для интеграции в бизнес-процессы компаний (клиентская поддержка, аналитика, обучение сотрудников и т.п.)