Индексаторы в Поиск с использованием ИИ Azure

Note

Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.

Индексатор в службе "Поиск ИИ Azure" — это обходчик, который извлекает текстовые данные из облачных источников данных и заполняет индекс поиска с помощью сопоставлений между исходными данными и индексом поиска. Этот подход иногда называется "моделью извлечения", так как служба поиска извлекает данные без необходимости писать код, добавляющий данные в индекс.

Индексаторы также управляют реализацией набора навыков и обогащением ИИ, предоставляя возможность настройки навыков для интеграции дополнительной обработки содержимого по пути к индексу. В качестве нескольких примеров можно привести выполнение OCR по файлам изображений, навык разбиения текста для фрагментирования данных и вызов моделей встраивания для создания векторов для векторного поиска.

Индексаторы предназначены для поддерживаемых источников данных. Конфигурация индексатора указывает источник данных (источник) и индекс поиска (назначение). Несколько источников, например Хранилище BLOB-объектов Azure, имеют больше свойств конфигурации индексатора, характерных для этого типа контента.

Вы можете запускать индексаторы по требованию или при регулярном обновлении данных, выполняемом каждые пять минут. Более частые обновления исключают использование индексаторов, требуя реализации "push-модели", которая одновременно отправляет данные в Поиск с использованием ИИ Azure и во внешний источник данных для синхронизации данных.

Служба поиска выполняет одно задание индексатора на единицу поиска. Если вам нужна параллельная обработка, убедитесь, что у вас достаточно реплик. Индексаторы не выполняются в фоновом режиме, поэтому вы можете заметить больше ограничения запросов, чем обычно, если служба испытывает нагрузку.

Note

Выполнение индексатора в службах поиска Standard 3 High Density (S3 HD) и службах бессерверного поиска осуществляется по другой модели, которая включает квоту на ежедневное время выполнения на уровне службы. Дополнительные сведения см. в статье Выполнение индексатора в Serverless и S3 HD.

Сценарии индексатора и варианты использования

Индексатор можно использовать в качестве единственного средства приема данных или в сочетании с другими методами. В следующей таблице перечислены основные сценарии.

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

Горизонтальное масштабирование между регионами в службе Поиск с использованием ИИ Azure — это вариант этого сценария. У вас могут быть копии одного поискового индекса в разных регионах. Чтобы синхронизировать содержимое индекса поиска, можно получить несколько индексаторов из одного источника данных, где каждый индексатор предназначен для разного индекса поиска в каждом регионе.

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

Для каждой комбинации целевого индекса и источника данных необходимо запланировать создание одного индексатора. Можно использовать несколько индексаторов, записывающих сведения в один и тот же индекс, а также повторно использовать один и тот же источник данных для нескольких индексаторов. Однако индексатор может одновременно использовать только один источник данных и записывать сведения только в один индекс. Как показано на следующем рисунке, один источник данных предоставляет входные данные для одного индексатора, который затем заполняет один индекс:

Схема рабочего процесса индексатора.

Хотя одновременно можно использовать только один индексатор, ресурсы можно использовать в разных сочетаниях. Основной вывод следующей иллюстрации заключается в том, что источник данных можно связать с несколькими индексаторами, а несколько индексаторов могут записывать в один и тот же индекс.

Схема нескольких сочетаний источников данных, индексаторов и индексов.

Поддерживаемые источники данных

Индексаторы обходят хранилища данных в Azure и за пределами Azure.

Azure Cosmos DB для Cassandra не поддерживается.

Индексаторы принимают плоские наборы строк, такие как таблица или представление, или элементы в контейнере или папке. В большинстве случаев он создает один документ поиска для каждой строки, записи или элемента.

Подключения индексатора к удаленным источникам данных можно сделать с помощью стандартных интернет-подключений (общедоступных) или зашифрованных частных подключений при использовании общей приватной связи. Вы также можете настроить подключения для аутентификации с помощью управляемого удостоверения. Дополнительные сведения о безопасных подключениях см. в статье Индексатор доступа к содержимому, защищенному функциями безопасности сети Azure, и Подключение к источнику данных с помощью управляемого удостоверения.

Этапы индексирования

При начальном запуске, когда индекс пуст, индексатор считывает все данные, доступные в таблице или контейнере. При последующих запусках индексатор обычно обнаруживает и извлекает только измененные данные. Для BLOB-данных, обнаружение изменений происходит автоматически. Для других источников данных, таких как Azure SQL или Azure Cosmos DB, необходимо включить обнаружение изменений.

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

Схема этапов индексатора.

Этап 1: Взлом документов

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

Вы также можете включить извлечение изображений во время взлома документов за дополнительную плату. Это отключено по умолчанию и может быть включено через imageAction свойство в конфигурации параметров индексатора. Просмотрите некоторые сценарии изображений для обработки образов индексатора.

В зависимости от источника данных индексатор попытается выполнить различные операции для извлечения потенциально индексируемого содержимого:

  • Если документ представляет собой файл со встроенными изображениями, такими как PDF, индексатор извлекает текст, изображения и метаданные. Индексаторы могут открывать файлы из Хранилище BLOB-объектов Azure, Azure Data Lake Storage 2-го поколения и SharePoint.

  • Когда документ является записью в Azure SQL, индексатор извлекает недвоичное содержимое из каждого поля в каждой записи.

  • Если документ является записью в Azure Cosmos DB, индексатор извлекает не двоичное содержимое из полей и подфилдов из документа Azure Cosmos DB.

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

Этап 2. Сопоставление полей

Индексатор извлекает текст из исходного поля и отправляет его в поле назначения в индексе или в хранилище знаний. Когда имена полей и типы данных совпадают, путь ясен. Однако вы можете захотеть использовать другие имена или типы в выходных данных, в этом случае необходимо сообщить индексатору, как сопоставлять поле.

Чтобы указать сопоставления полей, введите исходные и целевые поля в определении индексатора.

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

Этап 3. Выполнение набора умений

Выполнение набора навыков — это необязательный шаг, который вызывает встроенную или настраиваемую обработку искусственного интеллекта. Наборы навыков могут добавлять оптическое распознавание символов (OCR) или другие формы анализа изображений, если содержимое является двоичным. Наборы навыков также могут добавлять обработку естественного языка. Например, можно добавить перевод текста или извлечение ключевых фраз.

Каким бы ни было преобразование, обогащение происходит при реализации навыков. Если индексатор является конвейером, набор навыков можно представить в виде "конвейера в конвейере".

Этап 4. Сопоставление полей вывода

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

Несмотря на сходство названий, сопоставления полей выходных данных и сопоставления полей создают ассоциации из различных источников данных. Сопоставления полей связывают содержимое исходного поля с целевым полем в индексе поиска. Сопоставления полей вывода связывают содержимое внутреннего улучшенного документа (результаты обработки навыка) с целевыми полями в индексе. В отличие от сопоставлений полей, которые считаются необязательными, для любого преобразованного содержимого, которое должно находиться в индексе, требуется сопоставление выходных полей.

На следующем изображении показан образец представления сеанса отладки индексатора с этапами индексатора: обработка документов, сопоставление входных полей, выполнение набора навыков и сопоставление выходных полей.

Снимок экрана: пример сеанса отладки.

Базовый рабочий процесс

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

Шаг 1. Создание источника данных

Для индексаторов необходим объект источника данных, предоставляющий строку подключения и, возможно, учетные данные. Источники данных являются независимыми объектами. Несколько индексаторов могут использовать один и тот же объект источника данных для загрузки нескольких индексов одновременно.

Вы можете создать источник данных с помощью любого из следующих подходов:

Шаг 2. Создание индекса

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

Дополнительные сведения см. в разделе "Создание индекса".

Шаг 3. Создание и запуск (или планирование) индексатора

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

Все ошибки или предупреждения о доступе к данным или проверке набора навыков будут возникать во время выполнения индексатора. До запуска выполнения индексатора зависимые объекты, такие как источники данных, индексы и наборы навыков, являются пассивными в службе поиска.

Дополнительные сведения см. в разделе "Создание индексатора"

После первого запуска индексатора его можно повторно запустить по запросу или настроить расписание.

Вы можете отслеживать состояние индексатора на портале Azure или с помощью API состояния индексатора. Следует также выполнить запросы к индексу для проверки соответствия результатов ожиданиям.

Индексаторы не имеют выделенных ресурсов обработки. На основе этого состояние индексаторов может отображаться как простой перед выполнением (в зависимости от других заданий в очереди) и время выполнения может не быть предсказуемым. Другие факторы определяют производительность индексатора, например размер документа, сложность документа, анализ изображений, среди прочего.

Следующие шаги

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