Inicio rápido: Creación de una canalización de enriquecimiento de inteligencia artificial mediante aptitudes cognitivas en Azure SearchQuickstart: Create an AI enrichment pipeline using cognitive skills in Azure Search

Azure Search se integra con Cognitive Services lo cual permite agregar aptitudes de extracción de contenido, procesamiento de lenguaje natural (NLP) y procesamiento de imágenes a una canalización de indexación de Azure Search, lo que hace que el contenido no apto para la búsqueda o no estructurado sea más fácil de buscar.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.

Muchos recursos de Cognitive Services como OCR, detección de idioma o reconocimiento de entidades, por citar solo algunos, se pueden asociar a un proceso de indexación.Many Cognitive Services resources - such as OCR, language detection, entity recognition to name a few - can be attached to an indexing process. Los algoritmos de inteligencia artificial de Cognitive Services sirven para buscar patrones, funciones y características en los datos de origen, lo que devuelve estructuras y contenido textual que pueden utilizarse en soluciones de búsqueda de texto completo basadas en Azure Search.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.

En este artículo de inicio rápido, cree su primera la canalización de enriquecimiento en Azure Portal antes de escribir una sola línea de código:In this quickstart, create your first enrichment pipeline in the Azure portal before writing a single line of code:

  • Comience con una muestra de datos en Azure Blob Storage.Begin with sample data in Azure Blob storage
  • Configure el Asistente para la importación de datos para la indexación y el enriquecimiento cognitivos.Configure the Import data wizard for cognitive indexing and enrichment
  • Ejecute el asistente (una aptitud de la entidad detecta personas, ubicaciones y organizaciones).Run the wizard (an entity skill detects people, location, and organizations)
  • Use el Explorador de búsqueda para consultar los datos enriquecidos.Use Search explorer to query the enriched data

Este inicio rápido se ejecuta en el servicio Gratis, pero el número de transacciones gratuitas está limitado a 20 documentos por día.This quickstart runs on the Free service, but the number of free transactions is limited to 20 documents per day. Si desea ejecutar esta guía de inicio rápido más de una vez al día, use un conjunto de archivos más pequeño, para que pueda realizar varias ejecuciones.If you want to run this quickstart more than once daily, use a smaller file set so that you can fit in more runs.

Nota

A medida que expanda el ámbito aumentando la frecuencia de procesamiento, agregando más documentos o agregando más algoritmos de IA, tendrá que asociar un recurso facturable de 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. Los cargos se acumulan cuando se llama a las API de Cognitive Services y para la extracción de imágenes como parte de la fase de descifrado de documentos en Azure Search.Charges accrue when calling APIs in Cognitive Services, and for image extraction as part of the document-cracking stage in Azure Search. No hay ningún cargo por la extracción de texto de documentos.There are no charges for text extraction from documents.

La ejecución de aptitudes integradas se cobra según los precios de pago por uso de Cognitive Services existentes.Execution of built-in skills is charged at the existing Cognitive Services pay-as-you go price. La extracción de imágenes se cobra tal y como se describe en la página de precios de Azure Search.Image extraction pricing is described on the Azure Search pricing page.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don't have an Azure subscription, create a free account before you begin.

Requisitos previosPrerequisites

Cree un servicio Azure Search o busque un servicio existente en su suscripción actual.Create an Azure Search service or find an existing service under your current subscription. Puede usar un servicio gratuito para este inicio rápido.You can use a free service for this quickstart.

Cognitive Services proporciona inteligencia artificial.Cognitive Services provides the AI. Este inicio rápido incluye pasos para agregar estos recursos en línea, al especificar la canalización.This quickstart includes steps for adding these resources in-line, when specifying the pipeline. No es necesario configurar las cuentas de antemano.It's not necessary to set up accounts in advance.

Se requieren servicios de Azure que proporcionen las entradas para la canalización de indexación.Azure services are required to provide the inputs to the indexing pipeline. Se puede usar cualquier origen de datos compatible con los indexadores de Azure Search.You can use any data source supported by Azure Search indexers. Este inicio rápido usa Azure Blob Storage como un contenedor para los archivos de datos de origen.This quickstart uses Azure Blob storage as a container for source data files.

Configurar el servicio de Azure Blob y cargar los datos de ejemploSet up Azure Blob service and load sample data

  1. Descargue los datos de ejemplo que están formados por un pequeño conjunto de archivos de diferentes tipos.Download sample data consisting of a small file set of different types.

  2. Regístrese en Azure Blob Storage, cree una cuenta de almacenamiento, abra las páginas de servicios de blob y cree un contenedor.Sign up for Azure Blob storage, create a storage account, open the Blob services pages, and create a container. Cree la cuenta de almacenamiento en la misma región que Azure Search.Create the storage account in the same region as Azure Search.

  3. En el contenedor que creó, haga clic en Cargar para cargar los archivos de ejemplo que descargó en un paso anterior.In the container you created, click Upload to upload the sample files you downloaded in a previous step.

    Archivos de origen en Azure Blob Storage

Crear la canalización de enriquecimientoCreate the enrichment pipeline

Vuelva a la página del panel del servicio Azure Search y haga clic en Importar datos en la barra de comandos para configurar el enriquecimiento cognitivo en cuatro pasos.Return to the Azure Search service dashboard page and click Import data on the command bar to set up cognitive enrichment in four steps.

Comando de importación de datos

Paso 1: Creación de un origen de datosStep 1: Create a data source

En Conectarse a los datos, elija Azure Blob Storage y seleccione la cuenta y el contenedor que creó.In Connect to your data, choose Azure Blob storage, select the account and container you created. Asigne un nombre al origen de datos y use los valores predeterminados para el resto.Give the data source a name, and use default values for the rest.

Configuración de blobs de Azure

Continúe en la siguiente página.Continue to the next page.

Botón Página siguiente de Cognitive Search

Paso 2: Agregar conocimientos cognitivosStep 2: Add cognitive skills

A continuación, agregue los pasos de enriquecimiento a la canalización de indexación.Next, add enrichment steps to the indexing pipeline. Si no tiene un recurso de Cognitive Services, puede registrarse para una versión gratuita que le ofrece 20 transacciones diarias.If you do not have a Cognitive Services resource, you can sign up for a free version that gives you 20 transactions daily. Los datos de ejemplo constan de 14 archivos, por lo que la asignación diaria se usará en su mayor parte una vez que se ejecute este asistente.The sample data consists of 14 files, so your daily allocation will be mostly used up once you run this wizard.

  1. Expanda Adjuntar Cognitive Services para ver las opciones de asignación de recursos de Cognitive Services APIs.Expand Attach Cognitive Services to view options for resourcing the Cognitive Services APIs. A los efectos de este tutorial, puede usar el recurso Gratis.For the purposes of this tutorial, you can use the Free resource.

    Adjuntar Cognitive Services

  2. Expanda Agregar enriquecimiento y seleccione las aptitudes que realizan el procesamiento de lenguaje natural.Expand Add Enrichments and select skills that perform natural language processing. En esta guía de inicio rápido, elija el reconocimiento de entidades para los contactos, las organizaciones y las ubicaciones.For this quickstart, choose entity recognition for people, organizations, and locations.

    Adjuntar Cognitive Services

    El portal ofrece aptitudes integradas para el análisis de texto y el procesamiento de OCR.The portal offers built-in skills for OCR processing and text analysis. En el portal, un conjunto de aptitudes opera en un solo campo de origen.In the portal, a skillset operates over a single source field. Esto puede parecer un objetivo pequeño, pero para los blobs de Azure, el campo content contiene la mayor parte del documento de blobs (por ejemplo, un documento de Word o unas diapositivas de 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). Por lo tanto, este campo es una entrada ideal, ya que todo el contenido de un blob está ahí.As such, this field is an ideal input because all of a blob's content is there.

  3. Continúe en la siguiente página.Continue to the next page.

    Índice de personalización de la página siguiente

Nota

Las aptitudes de procesamiento de lenguaje natural operan en el contenido de texto que se encuentra en el conjunto de datos de ejemplo.Natural language processing skills operate over text content in the sample data set. Puesto que no seleccionamos ninguna opción de OCR, los archivos JPEG y PNG que se encontraron en el conjunto de datos de ejemplo no se procesarán en este artículo de inicio rápido.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.

Paso 3: Configuración del índiceStep 3: Configure the index

El asistente normalmente puede inferir un índice predeterminado.The wizard can usually infer a default index. En este paso, podrá ver el esquema de índice generado y revisar la configuración.In this step, you can view the generated index schema and potentially revise any settings. A continuación se ofrece el índice predeterminado creado para el conjunto de datos de Blob de demostración.Below is the default index created for the demo Blob data set.

En esta guía de inicio rápido, el asistente realiza un trabajo remarcable a la hora de configurar valores predeterminados razonables:For this quickstart, the wizard does a good job setting reasonable defaults:

  • El nombre predeterminado es azureblob-index basado en el tipo de origen de datos.Default name is azureblob-index based on the data source type.

  • Los campos predeterminados se basan en el campo de datos de origen original (content), además de los campos de salida (people, organizations y locations) creados por la canalización cognitiva.Default fields are based on the original source data field (content), plus the output fields (people, organizations, and locations) created by the cognitive pipeline. Los tipos de datos predeterminados se deducen del muestreo de datos y metadatos.Default data types are inferred from metadata and data sampling.

  • La clave predeterminada es metadata_storage_path (este campo contiene valores únicos).Default key is metadata_storage_path (this field contains unique values).

  • Los atributos predeterminados son Retrievable (Recuperable) y Searchable (Permite búsquedas) para estos campos.Default attributes are Retrievable and Searchable for these fields. El atributo Searchable indica que se puede buscar un campo.Searchable indicates a field can be searched. El atributo Retrievable indica que un valor puede aparecer en los resultados.Retrievable means it can be returned in results. El asistente da por supuesto que desea que estos campos se puedan recuperar y permitan búsquedas porque los creó a través de un conjunto de aptitudes.The wizard assumes you want these fields to be retrievable and searchable because you created them via a skillset.

    Campos de índice

Observe el tachado y el signo de interrogación en el atributo Retrievable del campo content.Notice the strikethrough and question mark on the Retrievable attribute by the content field. En el caso de los documentos blob con mucho texto, el campo content contiene la mayor parte del archivo, posiblemente con miles de líneas.For text-heavy blob documents, the content field contains the bulk of the file, potentially running into thousands of lines. Si tiene que pasar el contenido del archivo al código de cliente, asegúrese de que Retrievable sigue seleccionado.If you need to pass file contents to client code, make sure that Retrievable stays selected. De lo contrario, considere la posibilidad de borrar este atributo en content si los elementos extraídos (people, organizations y locations) son suficientes para sus fines.Otherwise, consider clearing this attribute on content if the extracted elements (people, organizations, and locations) are sufficient for your purposes.

Marcar un campo como Retrievable no significa que el campo debe esté presente en los resultados de búsqueda.Marking a field as Retrievable does not mean that the field must be present in the search results. Puede controlar con precisión la composición de los resultados de búsqueda si usa el parámetro de consulta $select para especificar qué campos desea incluir.You can precisely control search results composition by using the $select query parameter to specify which fields to include. En el caso de campos con mucho texto como content, el parámetro $select es la solución para proporcionar resultados de búsqueda fáciles de administrar a los usuarios de la aplicación, al tiempo que se asegura de que el código de cliente tenga acceso a toda la información que necesita a través del atributo Retrievable.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.

Continúe en la siguiente página.Continue to the next page.

Creación de un indexador de página siguiente

Paso 4: Configurar el indexadorStep 4: Configure the indexer

El indexador es un recurso de alto nivel que controla el proceso de indexación.The indexer is a high-level resource that drives the indexing process. Asimismo, especifica el nombre del origen de datos, un índice de destino y la frecuencia de ejecución.It specifies the data source name, a target index, and frequency of execution. El resultado final del asistente de la importación de datos es siempre un indexador que se puede ejecutar repetidamente.The end result of the Import data wizard is always an indexer that you can run repeatedly.

En la página Indizador, puede aceptar el nombre predeterminado y usar la opción de programación Ejecutar una vez para ejecutarlo inmediatamente.In the Indexer page, you can accept the default name and use the Run once schedule option to run it immediately.

Definición del indexador

Haga clic en Enviar para crear y ejecutar simultáneamente el indexador.Click Submit to create and simultaneously run the indexer.

Supervisión de la indexaciónMonitor indexing

Los pasos de enriquecimiento tardan más en completarse que la indexación típica basada en texto.Enrichment steps take longer to complete than typical text-based indexing. El asistente debe abrir la lista de indexadores en la página de introducción para que pueda realizar un seguimiento del progreso.The wizard should open the Indexer list in the overview page so that you can track progress. En cuanto a la navegación automática, vaya a la página Introducción y haga clic en Indizadores.For self-navigation, go to the Overview page and click Indexers.

La advertencia se produce porque los archivos JPG y PNG son archivos de imagen y se ha omitido la aptitud de OCR de esta canalización.The warning occurs because JPG and PNG files are image files, and we omitted the OCR skill from this pipeline. También encontrará notificaciones de truncamiento.You'll also find truncation notifications. Azure Search limita la extracción a 32 000 caracteres en el nivel Gratis.Azure Search limits extraction to 32,000 characters on the Free tier.

Notificación de Azure Search

Los procesos de enriquecimiento e indexación pueden tardar cierto tiempo y, por ello, se recomienda usar conjuntos de datos más pequeños para poder realizar una exploración temprana.Indexing and enrichment can take time, which is why smaller data sets are recommended for early exploration.

Consulta en el Explorador de búsquedaQuery in Search explorer

Después de crear un índice, puede enviar consultas para devolver documentos desde el índice.After an index is created, you can submit queries to return documents from the index. En el portal, utilice el Explorador de búsqueda para ejecutar consultas y ver los resultados.In the portal, use Search explorer to run queries and view results.

  1. En la página del panel del servicio de búsqueda, haga clic en el Explorador de búsqueda en la barra de comandos.On the search service dashboard page, click Search explorer on the command bar.

  2. Seleccione Cambiar índice en la parte superior para seleccionar el índice que haya creado.Select Change Index at the top to select the index you created.

  3. Escriba una cadena de búsqueda para consultar el índice como, por ejemplo, search=Microsoft&searchFields=organizations.Enter a search string to query the index, such as search=Microsoft&searchFields=organizations.

Los resultados se devuelven en formato JSON, que suele ser detallado y difícil de leer, especialmente si se trata de documentos de gran tamaño que se crean en los blobs de Azure.Results are returned in JSON, which can be verbose and hard to read, especially in large documents originating from Azure blobs. Si no puede examinar los resultados con facilidad, utilice CTRL-F para buscar dentro de los documentos.If you can't scan results easily, use CTRL-F to search within documents. Para esta consulta, puede buscar términos específicos en JSON.For this query, you could search within the JSON for specific terms.

CTRL-F también puede ayudarle a determinar cuántos documentos hay en un determinado conjunto de resultados.CTRL-F can also help you determine how many documents are in a given result set. En cuanto a los blobs de Azure, el portal elige "metadata_storage_path" como clave, ya que cada valor es único en el documento.For Azure blobs, the portal chooses "metadata_storage_path" as the key because each value is unique to the document. Use CTRL-F y busque "metadata_storage_path" para obtener un recuento de los documentos.Using CTRL-F, search for "metadata_storage_path" to get a count of documents.

Ejemplo del Explorador de búsquedas

Puntos claveTakeaways

Ya ha completado su primer ejercicio de indexación cognitiva enriquecida.You've now completed your first cognitive-enriched indexing exercise. El objetivo de esta guía rápida es introducir conceptos importantes y guiarle a través del asistente para que pueda crear rápidamente el prototipo de una solución de búsqueda cognitiva utilizando sus propios datos.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.

Algunos conceptos clave que esperamos que haya tenido en cuenta incluyen la dependencia de los orígenes de datos de Azure.Some key concepts that we hope you picked up include the dependency on Azure data sources. El enriquecimiento de Cognitive Search está vinculado a los indexadores, los cuales pertenecen a Azure y son específicos del origen.Cognitive search enrichment is bound to indexers, and indexers are Azure and source-specific. Aunque esta guía de inicio rápido usa Azure Blob Storage, también se pueden usar otros orígenes de datos de Azure.Although this quickstart uses Azure Blob storage, other Azure data sources are possible. Para obtener más información, consulte Indexadores de Azure Search.For more information, see Indexers in Azure Search.

Otro concepto importante es que las aptitudes operan sobre los campos de entrada.Another important concept is that skills operate over input fields. En el portal, debe elegir un solo campo de origen para todas las aptitudes.In the portal, you have to choose a single source field for all the skills. En el código, las entradas pueden ser otros campos o la salida de una aptitud ascendente.In code, inputs can be other fields, or the output of an upstream skill.

Las entradas a una aptitud se asignan a un campo de salida en un índice.Inputs to a skill are mapped to an output field in an index. De forma interna, el portal establece las anotaciones y define un conjunto de aptitudes que establece el orden de las operaciones y el flujo general.Internally, the portal sets up annotations and defines a skillset, establishing the order of operations and general flow. Estos pasos están ocultos en el portal, pero recuerde que estos conceptos serán importantes cuando comience a escribir el código.These steps are hidden in the portal, but when you start writing code, these concepts become important.

Por último, aprendió que puede ver los resultados al consultar el índice.Finally, you learned that viewing results is achieved by querying the index. Al final, lo que proporciona Azure Search es un índice de búsqueda que puede consultar usando la sintaxis de consulta simple o totalmente extendida.In the end, what Azure Search provides is a searchable index, which you can query using either the simple or fully extended query syntax. Un índice que contenga campos enriquecidos es como cualquier otro.An index containing enriched fields is like any other. Si desea incorporar analizadores personalizados o estándar, perfiles de puntuación, sinónimos, filtros con facetas, búsquedas geográficas o cualquier otra característica de Azure Search, puede hacerlo cuando quiera.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.

LimpiezaClean up

Cuando trabaje con su propia suscripción, es una buena idea al final de un proyecto identificar si todavía se necesitan los recursos que ha creado.When you're working in your own subscription, it's a good idea at the end of a project to identify whether you still need the resources you created. Los recursos que se dejan en ejecución pueden costarle mucho dinero.Resources left running can cost you money. Puede eliminar los recursos de forma individual o eliminar el grupo de recursos para eliminar todo el conjunto de recursos.You can delete resources individually or delete the resource group to delete the entire set of resources.

Puede encontrar y administrar recursos en el portal, mediante el vínculo Todos los recursos o Grupos de recursos en el panel de navegación izquierdo.You can find and manage resources in the portal, using the All resources or Resource groups link in the left-navigation pane.

Si está usando un servicio gratuito, recuerde que está limitado a tres índices, indexadores y orígenes de datos.If you are using a free service, remember that you are limited to three indexes, indexers, and data sources. Puede eliminar elementos individuales en el portal para mantenerse por debajo del límite.You can delete individual items in the portal to stay under the limit.

Pasos siguientesNext steps

Según como haya aprovisionado el recurso de Cognitive Services, puede experimentar con la indexación y el enriquecimiento volviendo a ejecutar el asistente con diferentes aptitudes y campos de datos de origen.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. Para repetir los pasos, elimine el índice y el indexador y, a continuación, vuelva a crear el indexador con una nueva combinación de selecciones.To repeat the steps, delete the index and indexer, then recreate the indexer with a new mix of selections.

  • En Introducción > Índices, seleccione el índice que creó y, a continuación, haga clic en Eliminar.In Overview > Indexes, select the index you created, and then click Delete.

  • En Introducción, haga doble clic en el icono Indexadores.In Overview, double-click the Indexers tile. Busque el indexador que creó y elimínelo.Find the indexer you created and delete it.

Asimismo, también puede volver a usar los datos de ejemplo y los servicios que creó, y obtener información sobre cómo realizar las mismas tareas mediante programación en el tutorial siguiente.Alternatively, reuse the sample data and services you created, and learn how to perform the same tasks programmatically in the next tutorial.