Руководство. Индексирование и обогащение зашифрованных BLOB-объектов для полнотекстового поиска в поиске ИИ Azure
В этом руководстве показано, как использовать поиск ИИ Azure для индексирования документов, которые ранее были зашифрованы с помощью ключа, управляемого клиентом, в Хранилище BLOB-объектов Azure.
Как правило, индексатор не может извлекать содержимое из больших двоичных объектов, зашифрованных с помощью шифрования клиентской библиотеки Хранилище BLOB-объектов Azure, так как индексатор не имеет доступа к ключу шифрования, управляемому клиентом, в Azure Key Vault. Однако, используя пользовательский навык DecryptBlobFile, а затем навык извлечения документов, вы можете предоставить управляемый доступ к ключу для расшифровки файлов, а затем извлечь содержимое из них. Это разблокирует возможность индексирования и обогащения этих документов без ущерба для состояния шифрования хранимых документов.
Начиная с ранее зашифрованных целых документов (неструктурированного текста), таких как PDF, HTML, DOCX и PPTX в Хранилище BLOB-объектов Azure, в этом руководстве используется клиент REST и ИНТЕРФЕЙСы REST API поиска для выполнения следующих задач:
- Определите конвейер, который расшифровывает документы и извлекает из них текст.
- Определите индекс для хранения выходных данных.
- Выполните этот конвейер, чтобы создать и заполнить индекс.
- Изучите результаты с помощью полнотекстового поиска и расширенного синтаксиса запросов.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Необходимые компоненты
Поиск ИИ Azure на любом уровне или регионе.
служба хранилища Azure, производительность уровня "Стандартный" (версия 2 общего назначения).
Большие двоичные объекты, зашифрованные с помощью ключа, управляемого клиентом. См . руководство. Шифрование и расшифровка BLOB-объектов с помощью Azure Key Vault , если вам нужно создать примеры данных.
Azure Key Vault в той же подписке, что и поиск по искусственному интеллекту Azure. Для хранилища ключей должны быть включены обратимое удаление и защита от очистки.
Развертывание пользовательских навыков создает приложение-функцию Azure и учетную запись служба хранилища Azure. Так как эти ресурсы создаются для вас, они не перечислены как необходимые условия. Завершив работу с этим руководством, не забудьте очистить ресурсы, чтобы вы не выставляли счета за службы, которые вы не используете.
Примечание.
Наборы навыков часто требуют присоединения ресурса многослужб Azure AI. Как написано, этот набор навыков не зависит от служб ИИ Azure, поэтому ключ не требуется. Если позже вы добавите обогащения, которые вызывают встроенные навыки, не забудьте обновить набор навыков соответствующим образом.
Развертывание пользовательского навыка
В этом примере используется образец проекта DecryptBlobFile из репозитория GitHub для навыков Power поиска Azure. В этом разделе описано, как развернуть навык в функции Azure, чтобы ее можно было использовать в наборе навыков. Встроенный скрипт развертывания создает ресурс функции Azure с префиксом psdbf-function-app и загружает навык. Вам будет предложено предоставить подписку и группу ресурсов. Обязательно выберите ту же подписку, в которой размещен ваш экземпляр Azure Key Vault.
В оперативном режиме навык DecryptBlobFile принимает URL-адрес и маркер SAS для каждого большого двоичного объекта в качестве входных данных, а затем выводит скачанный, расшифрованный файл с помощью контракта ссылки на файл, который ожидает поиск ИИ Azure. Учтите, что DecryptBlobFile нужен ключ шифрования для выполнения расшифровки. В рамках настройки вы также создаете политику доступа, которая предоставляет функции DecryptBlobFile доступ к ключу шифрования в Azure Key Vault.
Нажмите кнопку Развернуть в Azure на целевой странице DecryptBlobFile, в результате чего откроется указанный шаблон Resource Manager на портале Azure.
Выберите ту же подписку, в которой существует экземпляр Azure Key Vault (это руководство не будет работать, если выбрать другую подписку).
Выберите существующую группу ресурсов или создайте новую. Выделенная группа ресурсов упрощает очистку позже.
Выберите Просмотреть и создать, согласитесь с условиями, а затем нажмите на кнопку Создать , чтобы развернуть функцию Azure.
Дождитесь окончания развертывания.
У вас должно быть приложение-функция Azure, содержащее логику расшифровки и ресурс служба хранилища Azure, который будет хранить данные приложения. На следующих нескольких шагах вы предоставите приложению разрешения для доступа к хранилищу ключей и сбора сведений, необходимых для вызовов REST.
Предоставление разрешений в Azure Key Vault
Перейдите к службе Azure Key Vault на портале. Создайте политику доступа в Azure Key Vault, согласно которой предоставляется доступ к ключу к пользовательскому навыку.
В области навигации слева выберите политики доступа и нажмите кнопку "Создать ", чтобы запустить мастер создания политики доступа.
На странице "Разрешения" в разделе "Настройка из шаблона" выберите Azure Data Lake Storage или служба хранилища Azure.
Выберите Далее.
На странице "Субъект" выберите развернутый экземпляр функции Azure. Его можно найти по префиксу ресурса, который использовался для его создания на шаге 2 и по умолчанию имеет значение префикса psdbf-function-app.
Выберите Далее.
В разделе "Проверка и создание" нажмите кнопку "Создать".
Сбор сведений о приложении
Перейдите к функции psdbf-function-app на портале и запишите следующие свойства, необходимые для вызовов REST:
Получите URL-адрес функции, который можно найти в разделе Essentials на главной странице функции.
Получите код ключа узла, который можно найти, перейдя к ключам приложения, щелкнув, чтобы отобразить ключ по умолчанию и скопировать значение.
Получение ключа api администратора и URL-адреса для поиска ИИ Azure
Войдите на портал Azure и на странице обзора службы поиска получите имя службы поиска. Имя службы можно проверить, просмотрев URL-адрес конечной точки. Если URL-адрес конечной точки имеет вид
https://mydemo.search.windows.net
, значит служба называетсяmydemo
.В разделе Параметры>Ключи получите ключ администратора, чтобы обрести полные права на службу. Существуют два взаимозаменяемых ключа администратора, предназначенных для обеспечения непрерывности бизнес-процессов на случай, если вам потребуется сменить один из них. Вы можете использовать первичный или вторичный ключ для выполнения запросов на добавление, изменение и удаление объектов.
Для выполнения любого запроса к службе нужно включить ключ API в заголовок. Действительный ключ устанавливает для каждого запроса отношения доверия между приложением, которое отправляет запрос, и службой, которая его обрабатывает.
Настройка клиента REST
Создайте переменные для конечных точек и ключей:
«Переменная» | Как получить |
---|---|
admin-key |
На странице "Ключи" служба ИИ Azure. |
search-service-name |
Имя служба ИИ Azure. Введите URL-адрес https://{{search-service-name}}.search.windows.net . |
storage-connection-string |
На вкладке Ключи доступа для учетной записи хранения выберите key1>Строка подключения. |
storage-container-name |
Имя контейнера BLOB-объектов, в котором находятся зашифрованные файлы, подлежащие индексации. |
function-uri |
В функции Azure в разделе Основное на главной странице. |
function-code |
В функции Azure,перейдя в раздел Ключи приложения, нажав скрытый элемент для отображения ключа по умолчанию и скопировав значение. |
api-version |
Сохраните значение 2020-06-30. |
datasource-name |
Сохраните значение encrypted-blobs-ds. |
index-name |
Сохраните значение encrypted-blobs-idx. |
skillset-name |
Сохраните значение encrypted-blobs-ss. |
indexer-name |
Сохраните значение encrypted-blobs-ixr. |
Проверка и выполнение каждого запроса
Используйте HTTP-запросы для создания объектов конвейера обогащения:
Запрос PUT для создания индекса: этот индекс поиска содержит данные, которые использует и возвращает поиск Azure AI.
ЗАПРОС POST для создания источника данных: этот источник данных указывает подключение к учетной записи хранения, содержащей зашифрованные файлы BLOB-объектов.
Запрос PUT для создания набора навыков. Набор навыков указывает пользовательское определение навыка для функции Azure, которая будет расшифровывать данные файлов больших двоичных объектов, и навыка DocumentExtractionSkill для извлечения текста из каждого документа после расшифровки.
Запрос PUT для создания индексатора: запуск индексатора извлекает большие двоичные объекты, применяет набор навыков и индексирует и сохраняет результаты. Этот запрос необходимо выполнить последним. Пользовательский навык в наборе навыков вызывает логику расшифровки.
Мониторинга индексирования
Индексирование и обогащение начинаются сразу же после отправки запроса на создание индексатора. Индексирование может занять некоторое время в зависимости от количества документов в учетной записи хранения. Чтобы узнать, работает ли индексатор, отправьте запрос состояния индексатора и просмотрите ответ, чтобы узнать, работает ли индексатор, или просмотреть сведения об ошибках и предупреждениях.
Если вы используете уровень "Бесплатный", ожидается следующее сообщение: "Could not extract content or metadata from your document. Truncated extracted text to '32768' characters"
Это связано с тем, что для индексирования больших двоичных объектов на уровне "Бесплатный" действует ограничение на извлечение символов в 32 тыс. Это сообщение не будет отображаться для этого набора данных на более высоких уровнях.
Поиск содержимого
После завершения работы индексатора можно выполнить некоторые запросы, чтобы убедиться, что данные были успешно расшифрованы и проиндексированы. Перейдите к служба Azure AI на портале и используйте обозреватель поиска для выполнения запросов по индексированных данных.
Очистка ресурсов
Если вы работаете в своей подписке, после завершения проекта целесообразно удалить созданные ресурсы, которые вам больше не потребуются. Ресурсы, которые продолжат работать, могут быть платными. Вы можете удалить ресурсы по отдельности либо удалить всю группу ресурсов.
Просматривать ресурсы и управлять ими можно на портале с помощью ссылок "Все ресурсы" или "Группы ресурсов" в области навигации слева.
Следующие шаги
Теперь, когда вы успешно индексировали зашифрованные файлы, вы можете выполнить итерацию в этом конвейере, добавив дополнительные навыки. Это позволит обогатить и получить дополнительные аналитические сведения о данных.
Если вы работаете с зашифрованными данными, вам может потребоваться изучить функции шифрования индекса, доступные в службе "Поиск ИИ Azure". Хотя индексатору требуются расшифрованные данные для индексирования, после того как индекс существует, он может быть зашифрован в индексе поиска с помощью ключа, управляемого клиентом. Это обеспечивает постоянное хранение данных в зашифрованном виде. Дополнительные сведения см. в статье о настройке ключей, управляемых клиентом, для шифрования данных в службе "Поиск ИИ Azure".