Краткое руководство. Создание конвейера индексирования ИИ с помощью когнитивных навыков в Поиске AzureQuickstart: Create an AI indexing pipeline using cognitive skills in Azure Search

Служба "Поиск Azure" интегрируется с Cognitive Services, добавляя навыки извлечения данных, обработки естественного языка и изображений в конвейер индексирования службы "Поиск Azure" и упрощая поиск содержимого, по которому не выполняется обычный поиск или которое не структурировано.Azure Search integrates with Cognitive Services, adding content extraction, natural language processing (NLP), and image processing skills to an Azure Search indexing pipeline, making unsearchable or unstructured content more searchable.

Некоторые ресурсы Cognitive Services, такие как OCR, распознавание языка, распознавание сущностей и др., можно подключить к процессу индексирования.Many Cognitive Services resources - such as OCR, language detection, entity recognition to name a few - can be attached to an indexing process. Алгоритмы искусственного интеллекта Cognitive Services используются для поиска шаблонов, компонентов и характеристики в исходных данных и возвращают структуры и текстовое содержимое, которые пригодны для применения в решениях полнотекстового поиска на базе Поиска Azure.The AI algorithms of Cognitive Services are used to find patterns, features, and characteristics in source data, returning structures and textual content that can be used in full-text search solutions based on Azure Search.

В этом кратком руководстве вы создадите простейший конвейер обогащения на портале Azure, не написав ни одной строки кода.In this quickstart, create your first enrichment pipeline in the Azure portal before writing a single line of code:

  • Начните работу с выборкой данных в хранилище BLOB-объектов Azure.Begin with sample data in Azure Blob storage
  • Настройте мастер импорта данных для когнитивного индексирования и обогащения данных.Configure the Import data wizard for cognitive indexing and enrichment
  • Запустите мастер (навык сущности обнаруживает людей, расположение и организации).Run the wizard (an entity skill detects people, location, and organizations)
  • Примените проводник поиска для запроса по обогащенным данным.Use Search explorer to query the enriched data

В рамках этого краткого руководства используется бесплатная служба, но количество бесплатных транзакций ограничено 20 документами в день.This quickstart runs on the Free service, but the number of free transactions is limited to 20 documents per day. Если вы хотите использовать это краткое руководство чаще одного раза в день, применяйте набор файлов меньшего размера, чтобы его было запускать соответствующее количество раз.If you want to run this quickstart more than once daily, use a smaller file set so that you can fit in more runs.

Примечание

По мере расширения области путем увеличения частоты обработки и добавления большего количества документов или дополнительных алгоритмов ИИ, вам нужно будет присоединить оплачиваемый ресурс Cognitive Services.As you expand scope by increasing the frequency of processing, adding more documents, or adding more AI algorithms, you will need to attach a billable Cognitive Services resource. Плата взимается при вызове API в Cognitive Services и извлечении изображений при открытии документов в службе "Поиск Azure".Charges accrue when calling APIs in Cognitive Services, and for image extraction as part of the document-cracking stage in Azure Search. За извлечение текста из документов плата не взимается.There are no charges for text extraction from documents.

Плата за выполнение встроенных навыков взимается в рамках существующей модели оплаты Cognitive Services по мере использования.Execution of built-in skills is charged at the existing Cognitive Services pay-as-you go price. Плата за извлечение изображений указана на странице с ценами на Поиск Azure.Image extraction pricing is described on the Azure Search pricing page.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.If you don't have an Azure subscription, create a free account before you begin.

Предварительные требованияPrerequisites

Создайте службу "Поиск Azure" или найдите существующую службу в рамках текущей подписки.Create an Azure Search service or find an existing service under your current subscription. Вы можете использовать бесплатную службу для выполнения инструкций, описанных в этом кратком руководстве.You can use a free service for this quickstart.

Cognitive Services предоставляет функции искусственного интеллекта.Cognitive Services provides the AI. В данном кратком руководстве описаны шаги по добавлению этих ресурсов как встроенных при указании конвейера.This quickstart includes steps for adding these resources in-line, when specifying the pipeline. Заранее настраивать учетные записи необязательно.It's not necessary to set up accounts in advance.

Службы Azure должны предоставлять входные данные в конвейер индексирования.Azure services are required to provide the inputs to the indexing pipeline. Вы можете использовать любой источник данных, поддерживаемый индексаторами службы "Поиск Azure", за исключением Хранилища таблиц Azure, которое не поддерживается для индексации ИИ.You can use any data source supported by Azure Search indexers except for Azure Table Storage, which is not supported for AI indexing. В этом кратком руководстве в качестве контейнера для исходных файлов данных используется хранилище BLOB-объектов Azure.This quickstart uses Azure Blob storage as a container for source data files.

Настройка службы BLOB-объектов Azure и загрузка примера данныхSet up Azure Blob service and load sample data

  1. Скачайте пример данных, который состоит из небольшого набора файлов различных типов.Download sample data consisting of a small file set of different types.

  2. Зарегистрируйтесь в хранилище BLOB-объектов Azure, создайте учетную запись хранения, откройте страницы служб BLOB-объектов и создайте контейнер.Sign up for Azure Blob storage, create a storage account, open the Blob services pages, and create a container. Создайте учетную запись хранения в том регионе, где находится служба "Поиск Azure".Create the storage account in the same region as Azure Search.

  3. В созданном контейнере щелкните Отправить, чтобы отправить примеры файлов, которые вы скачали на предыдущем шаге.In the container you created, click Upload to upload the sample files you downloaded in a previous step.

    Исходные файлы в хранилище BLOB-объектов Azure

Создание конвейера обогащенияCreate the enrichment pipeline

Вернитесь на страницу информационной панели Поиска Azure и щелкните Импорт данных на панели команд, чтобы настроить когнитивное обогащение за четыре шага.Return to the Azure Search service dashboard page and click Import data on the command bar to set up cognitive enrichment in four steps.

Команда импорта данных

Шаг 1. Создание источника данныхStep 1: Create a data source

В разделе Подключение к данным выберите Хранилище BLOB-объектов, затем выберите учетную запись и созданный контейнер.In Connect to your data, choose Azure Blob storage, select the account and container you created. Присвойте источнику данных имя, а для остальных параметров используйте значения по умолчанию.Give the data source a name, and use default values for the rest.

Конфигурация больших двоичных объектов Azure

Перейдите к следующей странице.Continue to the next page.

Кнопка следующей страницы для когнитивного поиска

Шаг 2. Добавление когнитивных навыковStep 2: Add cognitive skills

Затем добавьте шаги обогащения в конвейер индексирования.Next, add enrichment steps to the indexing pipeline. Если у вас нет ресурса Cognitive Services, вы можете зарегистрироваться на получение бесплатной версии, которая предоставляет до 20 транзакций ежедневно.If you do not have a Cognitive Services resource, you can sign up for a free version that gives you 20 transactions daily. Пример данных состоит из 14 файлов, а значит после выполнения этого мастера дневная квота будет почти полностью использована.The sample data consists of 14 files, so your daily allocation will be mostly used up once you run this wizard.

  1. Разверните узел Подключение Cognitive Services, чтобы просмотреть варианты ресурсов для API-интерфейсов Cognitive Services.Expand Attach Cognitive Services to view options for resourcing the Cognitive Services APIs. Для целей этого руководства можно использовать Бесплатный ресурс.For the purposes of this tutorial, you can use the Free resource.

    Подключение Cognitive Services

  2. Разверните узел Добавление обогащений и выберите навыки, которые выполняют обработку естественного языка.Expand Add Enrichments and select skills that perform natural language processing. Для этого краткого руководства выберите распознавание людей, организаций и расположений.For this quickstart, choose entity recognition for people, organizations, and locations.

    Подключение Cognitive Services

    Портал предоставляет встроенные навыки для распознавания и анализа текста.The portal offers built-in skills for OCR processing and text analysis. На портале набор навыков работает над одним полем источника.In the portal, a skillset operates over a single source field. Это может показаться маленькой целью, но для больших двоичных объектов Azure поле content содержит большую часть документа такого объекта (например, документа Word или набора слайдов PowerPoint).That might seem like a small target, but for Azure blobs the content field contains most of the blob document (for example, a Word doc or PowerPoint deck). Таким образом это поле является идеальными входными данными, так как здесь присутствует все содержимое большого двоичного объекта.As such, this field is an ideal input because all of a blob's content is there.

  3. Перейдите к следующей странице.Continue to the next page.

    Следующая страница, настройка индекса

Примечание

Навыки обработки естественного языка работают с текстовым содержимым в примере набора данных.Natural language processing skills operate over text content in the sample data set. Так как мы не выбрали распознавание текста, JPEG и PNG-файлы из тестового набора данных не будут обрабатываться при выполнении этого краткого руководства.Since we didn't select the OCR option, the JPEG and PNG files found in the sample data set won't be processed in this quickstart.

Шаг 3. Настройка индексаStep 3: Configure the index

Как правило, мастер правильно определяет индекс по умолчанию.The wizard can usually infer a default index. На этом шаге вы можете просмотреть созданную схему и изменить любые параметры, если потребуется.In this step, you can view the generated index schema and potentially revise any settings. Ниже представлен индекс по умолчанию, созданный для демонстрационного набора BLOB-объектов.Below is the default index created for the demo Blob data set.

В этом кратком руководстве мастер устанавливает разумные значения по умолчанию:For this quickstart, the wizard does a good job setting reasonable defaults:

  • Для этого типа источника данных имя по умолчанию — azureblob-index.Default name is azureblob-index based on the data source type.

  • Поля по умолчанию основаны на поле исходных данных (content), а также полях выходных данных (people, organizations и locations), созданных когнитивным конвейером.Default fields are based on the original source data field (content), plus the output fields (people, organizations, and locations) created by the cognitive pipeline. Типы данных по умолчанию выводятся из метаданных и выборки данных.Default data types are inferred from metadata and data sampling.

  • Ключ по умолчанию metadata_storage_path (это поле содержит уникальные значения).Default key is metadata_storage_path (this field contains unique values).

  • Атрибутами по умолчанию для этих полей являются Доступный для получения и Доступный для поиска.Default attributes are Retrievable and Searchable for these fields. Доступность для поиска означает, что по этому полю можно выполнять поиск.Searchable indicates a field can be searched. Доступность для получения означает, что его можно возвращать в результатах.Retrievable means it can be returned in results. Мастер предполагает, что вы хотите, чтобы эти поля были доступны для получения и поиска, потому что вы создали их с помощью набора навыков.The wizard assumes you want these fields to be retrievable and searchable because you created them via a skillset.

    Поля индекса

Обратите внимание на зачеркивание и вопросительный знак в атрибуте Доступный для получения в поле content.Notice the strikethrough and question mark on the Retrievable attribute by the content field. Для документов с большим количеством текста в поле content содержится основная часть файла, которая может достигать тысячи строк.For text-heavy blob documents, the content field contains the bulk of the file, potentially running into thousands of lines. Если необходимо передать содержимое файла в код клиента, убедитесь, что атрибут Доступный для получения остается выбранным.If you need to pass file contents to client code, make sure that Retrievable stays selected. В противном случае рассмотрите возможность очистки этого атрибута в content, если извлеченные элементы (people, organizations и locations) достаточны для ваших целей.Otherwise, consider clearing this attribute on content if the extracted elements (people, organizations, and locations) are sufficient for your purposes.

Маркировка поля как Доступный для получения не означает, что поле должно присутствовать в результатах поиска.Marking a field as Retrievable does not mean that the field must be present in the search results. Вы можете точно контролировать состав результатов поиска с помощью параметра запроса $select, чтобы указать, какие поля включать.You can precisely control search results composition by using the $select query parameter to specify which fields to include. Для полей с большим количеством текста, например content, параметр $select — это решение для предоставления управляемых результатов поиска пользователям вашего приложения, обеспечивая при этом доступ клиентского кода ко всем необходимым данным с помощью атрибута Доступный для получения.For text-heavy fields like content, the $select parameter is your solution for providing manageable search results to the human users of your application, while ensuring client code has access to all the information it needs via the Retrievable attribute.

Перейдите к следующей странице.Continue to the next page.

Следующая страница, создание индексатора

Шаг 4. Настройка индексатораStep 4: Configure the indexer

Индексатор — это ресурс высокого уровня, управляющий процессом индексации.The indexer is a high-level resource that drives the indexing process. Он задает имя источника данных, целевой индекс и частоту выполнения.It specifies the data source name, a target index, and frequency of execution. Конечным результатом мастера импорта данных всегда является индексатор, выполняемый несколько раз.The end result of the Import data wizard is always an indexer that you can run repeatedly.

На странице Индексатор вы можете подтвердить имя по умолчанию и применить функцию планирования Запустить один раз, чтобы выполнить его немедленно.In the Indexer page, you can accept the default name and use the Run once schedule option to run it immediately.

Определение индексатора

Щелкните Отправить, чтобы создать и немедленно запустить индексатор.Click Submit to create and simultaneously run the indexer.

Мониторинга индексированияMonitor indexing

Действия по обогащению выполняются дольше, чем обычное текстовое индексирование.Enrichment steps take longer to complete than typical text-based indexing. Мастер откроет на странице обзорной информации список индексатора, что позволяет отслеживать ход выполнения.The wizard should open the Indexer list in the overview page so that you can track progress. Вы также можете самостоятельно открыть страницу обзорной информации и щелкнуть Индексаторы.For self-navigation, go to the Overview page and click Indexers.

Вы увидите предупреждение, поскольку в списке есть файлы изображений JPG и PNG, но мы не добавили в конвейер навык распознавания текста.The warning occurs because JPG and PNG files are image files, and we omitted the OCR skill from this pipeline. Также вы увидите уведомления об усечении.You'll also find truncation notifications. Поиск Azure на уровень "бесплатный" извлекает не более 32 000 символов.Azure Search limits extraction to 32,000 characters on the Free tier.

Уведомление службы поиска Azure

Индексирование и обогащение может занять время, поэтому для ранних исследований рекомендуется использовать маленькие наборы данных.Indexing and enrichment can take time, which is why smaller data sets are recommended for early exploration.

Запросы в обозревателе поискаQuery in Search explorer

После создания индекса можно отправлять запросы, возвращающие документы в индекс.After an index is created, you can submit queries to return documents from the index. Используйте обозреватель поиска на портале, чтобы выполнять запросы и просматривать результаты.In the portal, use Search explorer to run queries and view results.

  1. На странице панели мониторинга службы поиска щелкните Обозреватель поиска в командной строке.On the search service dashboard page, click Search explorer on the command bar.

  2. В верхней части окна щелкните Изменить индекс, чтобы выбрать созданный индекс.Select Change Index at the top to select the index you created.

  3. Введите строку поиска для запроса по индексу, например search=Microsoft&searchFields=organizations.Enter a search string to query the index, such as search=Microsoft&searchFields=organizations.

Результаты возвращаются в формате JSON, который может быть подробным и трудным для чтения, особенно в больших документах, исходящих из больших двоичных объектов Azure.Results are returned in JSON, which can be verbose and hard to read, especially in large documents originating from Azure blobs. Если вы не можете легко проверить результаты, используйте сочетание клавиш CTRL+F для поиска в документах.If you can't scan results easily, use CTRL-F to search within documents. Для этого запроса вы можете найти в документе JSON определенные термины.For this query, you could search within the JSON for specific terms.

Сочетание клавиш CTRL+F также позволяет определить, сколько документов предоставлено в результирующем наборе.CTRL-F can also help you determine how many documents are in a given result set. Для больших двоичных объектов Azure портал выбирает metadata_storage_path в качестве ключа, так как каждое значение в этом документе уникально.For Azure blobs, the portal chooses "metadata_storage_path" as the key because each value is unique to the document. С помощью сочетания клавиш CTRL+F найдите metadata_storage_path, чтобы узнать количество документов.Using CTRL-F, search for "metadata_storage_path" to get a count of documents.

Пример с обозревателем решений

Общие выводыTakeaways

Итак, вы завершили первое упражнение по обогащенному индексированию.You've now completed your first cognitive-enriched indexing exercise. В этом кратком руководстве представлены важные понятия и шаги мастера, чтобы пользователь мог быстро создавать прототипы решений когнитивного поиска с помощью собственных данных.The purpose of this quickstart was to introduce important concepts and walk you through the wizard so that you can quickly prototype a cognitive search solution using your own data.

Некоторые ключевые понятия, с которыми, как мы надеемся, вы разобрались, включают зависимость от источников данных Azure.Some key concepts that we hope you picked up include the dependency on Azure data sources. Обогащение на основе когнитивного поиска привязано к индексаторам, а индексаторы — к Azure и соответствующим источникам.Cognitive search enrichment is bound to indexers, and indexers are Azure and source-specific. Несмотря на то что краткое руководство использует хранилище BLOB-объектов Azure, можно использовать и другие источники данных Azure.Although this quickstart uses Azure Blob storage, other Azure data sources are possible. Дополнительные сведения см. в статье Индексаторы в службе поиска Azure.For more information, see Indexers in Azure Search.

Другим важным понятием является выполнение навыков в отношении полей входных данных.Another important concept is that skills operate over input fields. На портале необходимо выбрать одно поле входных данных для всех навыков.In the portal, you have to choose a single source field for all the skills. В коде входными данными могут быть другие поля или выходные данные вышестоящих навыков.In code, inputs can be other fields, or the output of an upstream skill.

Входные данные для навыка сопоставляются с полем выходных данных индекса.Inputs to a skill are mapped to an output field in an index. На внутреннем уровне портал настраивает заметки и определяет набор навыков, устанавливая порядок операций и общую последовательность действий.Internally, the portal sets up annotations and defines a skillset, establishing the order of operations and general flow. Эти шаги скрыты на портале, но эти понятия становятся важными при написании кода.These steps are hidden in the portal, but when you start writing code, these concepts become important.

Наконец, вы узнали, что для просмотра результатов необходимо запросить индекс.Finally, you learned that viewing results is achieved by querying the index. В результате служба "Поиск Azure" предоставляет доступный для поиска индекс, который можно запрашивать с помощью простого или полностью расширенного синтаксиса запроса.In the end, what Azure Search provides is a searchable index, which you can query using either the simple or fully extended query syntax. Индекс, который содержит обогащенные поля, не отличается от других.An index containing enriched fields is like any other. Если вы хотите включить стандартные или настраиваемые анализаторы, профили оценки, синонимы, фильтры аспектов, географический поиск или любую другую функцию службы "Поиск Azure", вы можете это сделать.If you want to incorporate standard or custom analyzers, scoring profiles, synonyms, faceted filters, geo-search, or any other Azure Search feature, you can certainly do so.

Очистка ресурсовClean up resources

Если изучение завершено, самый быстрый способ очистки — удалить группу ресурсов, содержащую службу "Поиск Azure" и службу BLOB-объектов Azure.If your exploration is concluded, the fastest way to clean up is by deleting the resource group containing the Azure Search service and Azure Blob service.

Предположим, обе службы находятся в одной группе, удалите группу ресурсов, чтобы окончательно удалить все ее содержимое, включая службы и любое хранимое содержимое, созданное для этого упражнения.Assuming you put both services in the same group, delete the resource group now to permanently delete everything in it, including the services and any stored content you created for this exercise. На портале имя группы ресурсов находится на странице "Обзор" каждой службы.In the portal, the resource group name is on the Overview page of each service.

Дополнительная информацияNext steps

В зависимости от того, как вы подготовили ресурс Cognitive Services, вы можете поэкспериментировать с индексированием и обогащением, повторно запустив мастер с разными навыками и полями источника данных.Depending on how you provisioned Cognitive Services resource, you can experiment with indexing and enrichment by rerunning the wizard with different skills and source data fields. Чтобы повторить шаги, удалите индекс и индексатор, а затем повторно создайте индексатор с новым сочетанием выбранных элементов.To repeat the steps, delete the index and indexer, then recreate the indexer with a new mix of selections.

  • В разделе Обзор > Индексы выберите созданный индекс, а затем щелкните Удалить.In Overview > Indexes, select the index you created, and then click Delete.

  • В разделе Обзор дважды щелкните элемент Индексаторы.In Overview, double-click the Indexers tile. Найдите созданный индексатор и удалите его.Find the indexer you created and delete it.

Кроме того, этот пример данных и созданные службы можно использовать повторно, чтобы узнать, как выполнять эти же задания программно в следующем руководстве.Alternatively, reuse the sample data and services you created, and learn how to perform the same tasks programmatically in the next tutorial.