Enriquecimento de IA no Azure Cognitive SearchAI enrichment in Azure Cognitive Search

O enriquecimento de ia é uma extensão de indexadores que podem ser usados para extrair texto de imagens, BLOBs e outras fontes de dados não estruturados.AI enrichment is an extension of indexers that can be used to extract text from images, blobs, and other unstructured data sources. Enriquecimento e extração tornam seu conteúdo mais pesquisável nos objetos de saída do indexador, um índice de pesquisa ou uma loja de conhecimento.Enrichment and extraction make your content more searchable in indexer output objects, either a search index or a knowledge store.

Extração e enriquecimento são implementados usando habilidades cognitivas anexadas ao pipeline controlado pelo indexador.Extraction and enrichment are implemented using cognitive skills attached to the indexer-driven pipeline. Você pode usar habilidades internas da Microsoft ou inserir o processamento externo em uma habilidade personalizada que você criar.You can use built-in skills from Microsoft or embed external processing into a custom skill that you create. Exemplos de uma habilidade personalizada podem ser um módulo de entidade personalizado ou classificador de documento direcionado a um domínio específico, como finanças, publicações científicas ou medicina.Examples of a custom skill might be a custom entity module or document classifier targeting a specific domain such as finance, scientific publications, or medicine.

As habilidades internas se enquadram nessas categorias:Built-in skills fall into these categories:

Diagrama do pipeline de enriquecimentoEnrichment pipeline diagram

As habilidades internas no Azure Pesquisa Cognitiva se baseiam em modelos de aprendizado de máquina pré-treinados no API de Serviços Cognitivos: Pesquisa Visual computacional e análise de texto.Built-in skills in Azure Cognitive Search are based on pre-trained machine learning models in Cognitive Services APIs: Computer Vision and Text Analytics. Você pode anexar um recurso de serviços cognitivas se desejar aproveitar esses recursos durante o processamento de conteúdo.You can attach a Cognitive Services resource if you want to leverage these resources during content processing.

O processamento de imagens e em idioma natural é aplicada durante a fase de ingestão de dados, com os resultados se tornando parte da composição de um documento em um índice pesquisável na Pesquisa Cognitiva do Azure.Natural language and image processing is applied during the data ingestion phase, with results becoming part of a document's composition in a searchable index in Azure Cognitive Search. Os dados são originados como um conjunto de dados do Azure e, em seguida, enviados por meio de um pipeline de indexação usando o que ocorrer habilidades internas que você precisa.Data is sourced as an Azure data set and then pushed through an indexing pipeline using whichever built-in skills you need.

Disponibilidade de recursosFeature availability

O enriquecimento de ia está disponível em regiões em que os serviços cognitivas do Azure também estão disponíveis.AI enrichment is available in regions where Azure Cognitive Services are also available. Você pode verificar a disponibilidade atual do enriquecimento de ia na página produtos do Azure disponíveis por região .You can check the current availability of AI enrichment on the Azure products available by region page. O enriquecimento de ia está disponível em todas as regiões com suporte, exceto:AI enrichment is available in all supported regions except:

  • Sudeste da AustráliaAustralia Southeast
  • Norte da China 2China North 2
  • Leste da NoruegaNorway East
  • Centro-Oeste da AlemanhaGermany West Central

Se o serviço de pesquisa estiver localizado em uma dessas regiões, você não poderá criar e usar o habilidades, mas todas as outras funcionalidades do serviço de pesquisa estarão disponíveis e terão suporte total.If your search service is located in one of these regions, you will not be able to create and use skillsets, but all other search service functionality is available and fully supported.

Quando usar o enriquecimento de iaWhen to use AI enrichment

Você deve considerar o uso de habilidades cognitivas incorporadas se o conteúdo bruto for texto não estruturado, conteúdo de imagem ou conteúdo que precise de detecção e tradução de idioma.You should consider using built-in cognitive skills if your raw content is unstructured text, image content, or content that needs language detection and translation. A aplicação de IA por meio de habilidades cognitivas incorporadas pode desbloquear esse conteúdo, aumentando seu valor e utilitário em seus aplicativos de pesquisa e ciência de dados.Applying AI through the built-in cognitive skills can unlock this content, increasing its value and utility in your search and data science apps.

Além disso, você pode considerar adicionar uma habilidade personalizada se tiver código de software livre, de terceiros ou de clientes diretos que deseja integrar ao pipeline.Additionally, you might consider adding a custom skill if you have open-source, third-party, or first-party code that you'd like to integrate into the pipeline. Os modelos de classificação que identificam as características de destaque de vários tipos de documento se enquadram nessa categoria, mas qualquer pacote que adiciona valor ao seu conteúdo pode ser usado.Classification models that identify salient characteristics of various document types fall into this category, but any package that adds value to your content could be used.

Mais informações sobre habilidades incorporadasMore about built-in skills

Um técnico que é montado usando habilidades internas é adequado para os seguintes cenários de aplicativo:A skillset that's assembled using built-in skills is well suited for the following application scenarios:

  • Documentos digitalizados (JPEG) que você deseja tornar susceptíveis a pesquisas de texto completo.Scanned documents (JPEG) that you want to make full-text searchable. Você pode anexar uma habilidade de OCR (reconhecimento de caractere óptico) para identificar, extrair e ingerir textos de arquivos JPEG.You can attach an optical character recognition (OCR) skill to identify, extract, and ingest text from JPEG files.

  • PDFs com combinações de textos e imagens.PDFs with combined image and text. Os textos em PDFs podem ser extraídos durante a indexação sem o uso de etapas de enriquecimento, mas a adição do processamento de imagens e em idioma natural pode, muitas vezes, produzir um resultado melhor do que a indexação padrão oferece.Text in PDFs can be extracted during indexing without the use of enrichment steps, but the addition of image and natural language processing can often produce a better outcome than a standard indexing provides.

  • Conteúdo multilíngue ao qual você deseja aplicar a detecção de idioma e, possivelmente, a tradução de texto.Multi-lingual content against which you want to apply language detection and possibly text translation.

  • Documentos não estruturados ou semiestruturados que contêm dados com significado ou contexto inerente, oculto dentro do documento mais amplo.Unstructured or semi-structured documents containing content that has inherent meaning or context that is hidden in the larger document.

    Os BLOBs em particular geralmente contêm um grande corpo de conteúdo que é empacotado em um único "campo".Blobs in particular often contain a large body of content that is packed into a single "field". Ao anexar habilidades de processamento de imagem e de linguagem natural a um indexador, você pode criar novas informações que estavam contidas no conteúdo bruto, mas não eram destacadas como campos distintos.By attaching image and natural language processing skills to an indexer, you can create new information that is extant in the raw content, but not otherwise surfaced as distinct fields. Algumas habilidades cognitivas internas prontas para uso que podem ajudar: extração de frases-chave, análise de sentimentos e reconhecimento de entidades (pessoas, organizações e locais).Some ready-to-use built-in cognitive skills that can help: key phrase extraction, sentiment analysis, and entity recognition (people, organizations, and locations).

    Além disso, as habilidades internas podem ser usadas para reestruturar o conteúdo por meio de operações de divisão de texto, mesclagem e modelagem.Additionally, built-in skills can also be used restructure content through text split, merge, and shape operations.

Saiba mais sobre habilidades incorporadasMore about custom skills

As habilidades personalizadas podem dar suporte a cenários mais complexos, como o reconhecimento de formulários ou a detecção de entidades personalizadas usando um modelo que você fornece e encapsula na interface da Web de habilidades personalizadas.Custom skills can support more complex scenarios, such as recognizing forms, or custom entity detection using a model that you provide and wrap in the custom skill web interface. Vários exemplos de habilidades personalizadas incluem o Reconhecimento de Formulários, a integração da API de Pesquisa de Entidade do Bing e o reconhecimento de entidades personalizadas.Several examples of custom skills include Forms Recognizer, integration of the Bing Entity Search API, and custom entity recognition.

Etapas em um pipeline de enriquecimento Steps in an enrichment pipeline

Um pipeline de enriquecimento é baseado em indexadores.An enrichment pipeline is based on indexers. Os indexadores preenchem um índice com base em mapeamentos de campo para campo entre o índice e sua fonte de dados para decifração de documentos.Indexers populate an index based on field-to-field mappings between the index and your data source for document cracking. Habilidades, agora anexadas a indexadores, interceptar e enriquecer documentos de acordo com os conjuntos de qualificações que você definir.Skills, now attached to indexers, intercept and enrich documents according to the skillset(s) you define. Após a indexação, você pode acessar o conteúdo por meio de solicitações de pesquisa em todos os tipos de consulta compatíveis com a Pesquisa Cognitiva do Azure.Once indexed, you can access content via search requests through all query types supported by Azure Cognitive Search. Se você estiver começando a usar indexadores, esta seção o orientará pelas etapas.If you are new to indexers, this section walks you through the steps.

Etapa 1: fase de violação de conexão e documentoStep 1: Connection and document cracking phase

No início do pipeline, você tem texto não estruturado ou conteúdo de não texto (como imagens, documentos digitalizados ou arquivos JPEG).At the start of the pipeline, you have unstructured text or non-text content (such as images, scanned documents, or JPEG files). Os dados precisam existir em um serviço de armazenamento de dados do Azure que possa ser acessado por um indexador.Data must exist in an Azure data storage service that can be accessed by an indexer. Os indexadores podem "desbloquear" documentos de origem para extrair o texto da fonte de dados.Indexers can "crack" source documents to extract text from source data. A quebra de documentos é o processo de extração ou criação de conteúdo de texto de fontes que não sejam de texto durante a indexação.Document cracking is the process of extracting or creating text content from non-text sources during indexing.

Fase de quebra de documentoDocument cracking phase

As fontes com suporte incluem o Armazenamento de Blobs do Azure, o Armazenamento de Tabelas do Azure, o Banco de Dados SQL do Azure e o Azure Cosmos DB.Supported sources include Azure blob storage, Azure table storage, Azure SQL Database, and Azure Cosmos DB. O conteúdo baseado em texto pode ser extraído dos seguintes tipos de arquivo: arquivos PDF, do Word, do PowerPoint e CSV.Text-based content can be extracted from the following file types: PDFs, Word, PowerPoint, CSV files. Para obter a lista completa, confira Formatos com suporte.For the full list, see Supported formats. A indexação é um processo demorado, portanto, comece com um conjunto de dados representativo pequeno e, em seguida, compile incrementalmente à medida que sua solução amadurecer.Indexing takes time so start with a small, representative data set and then build it up incrementally as your solution matures.

Etapa 2: fase de enriquecimento e habilidades cognitivasStep 2: Cognitive skills and enrichment phase

O enriquecimento é realizado com habilidades cognitivas executando operações atômicas.Enrichment is performed with cognitive skills performing atomic operations. Por exemplo, depois de ter rachado um PDF, você pode aplicar o reconhecimento de entidade, detecção de idioma ou extração de frases-chave para produzir novos campos no índice que não estão disponíveis nativamente na origem.For example, once you have cracked a PDF, you can apply entity recognition, language detection, or key phrase extraction to produce new fields in your index that are not available natively in the source. A coleção de habilidades usada em seu pipeline é chamada de conjunto de habilidades.Altogether, the collection of skills used in your pipeline is called a skillset.

Fase de enriquecimentoEnrichment phase

Um conjunto de habilidades baseia-se em habilidades cognitivas internas ou em habilidades personalizadas que você fornece e conecta ao conjunto de habilidades.A skillset is based on built-in cognitive skills or custom skills you provide and connect to the skillset. Um conjunto de habilidades pode ser mínima ou altamente complexo e determina não apenas o tipo de processamento, mas também a ordem das operações.A skillset can be minimal or highly complex, and determines not only the type of processing, but also the order of operations. Um conjunto de habilidades mais os mapeamentos de campo definidos como parte de um indexador definem a especificação completa do pipeline de enriquecimento.A skillset plus the field mappings defined as part of an indexer fully specifies the enrichment pipeline. Para obter mais informações sobre como reunir todas essas partes, confira Define a skillset (Definir um conjunto de habilidades).For more information about pulling all of these pieces together, see Define a skillset.

Internamente, o pipeline gera uma coleção de documentos enriquecidos.Internally, the pipeline generates a collection of enriched documents. Você pode decidir quais partes dos documentos enriquecidos devem ser mapeadas para campos indexáveis no índice de pesquisa.You can decide which parts of the enriched documents should be mapped to indexable fields in your search index. Por exemplo, se você aplicou a extração de frases-chave e as habilidades de reconhecimento de entidade, esses novos campos se tornarão parte do documento aprimorado e poderão ser mapeados para campos em seu índice.For example, if you applied the key phrase extraction and the entity recognition skills, those new fields would become part of the enriched document, and can be mapped to fields on your index. Consulte Anotações para saber mais sobre formações de entrada/saída.See Annotations to learn more about input/output formations.

Adicionar um elemento knowledgeStore para salvar os enriquecimentosAdd a knowledgeStore element to save enrichments

Pesquisar API REST – Version = 2020-06-30 estende habilidades com uma knowledgeStore definição que fornece uma conexão de armazenamento do Azure e projeções que descrevem como os aprimoramentos são armazenados.Search REST api-version=2020-06-30 extends skillsets with a knowledgeStore definition that provides an Azure storage connection and projections that describe how the enrichments are stored. Isso é adicional ao índice.This is in addition to your index. Em um pipeline de IA padrão, documentos aprimorados são transitórios, usados apenas durante a indexação e descartados em seguida.In a standard AI pipeline, enriched documents are transitory, used only during indexing and then discarded. Com o repositório de conhecimento, os documentos enriquecidos são preservados.With knowledge store, enriched documents are preserved. Para obter mais informações, consulte Knowledge Store.For more information, see Knowledge store.

Etapa 3: Pesquisar índice e acesso baseado em consultaStep 3: Search index and query-based access

Quando o processamento é concluído, você tem um índice de pesquisa que consiste em documentos enriquecidos, com texto totalmente pesquisável na Pesquisa Cognitiva do Azure.When processing is finished, you have a search index consisting of enriched documents, fully text-searchable in Azure Cognitive Search. Consultando o índice é como os desenvolvedores e usuários acessam conteúdo enriquecido gerado pelo pipeline.Querying the index is how developers and users access the enriched content generated by the pipeline.

Índice com o ícone de pesquisaIndex with search icon

O índice é como qualquer outro item que você possa criar para a Pesquisa Cognitiva do Azure: é possível complementá-lo com analisadores personalizados, invocar consultas de pesquisa difusa, adicionar uma pesquisa filtrada ou fazer experimentos com perfis de pontuação para remodelar os resultados da pesquisa.The index is like any other you might create for Azure Cognitive Search: you can supplement with custom analyzers, invoke fuzzy search queries, add filtered search, or experiment with scoring profiles to reshape the search results.

Os índice são gerados por meio de um esquema de índice que define os campos, os atributos e outras construções anexadas a um índice específico, como perfis de pontuação e mapas de sinônimo.Indexes are generated from an index schema that defines the fields, attributes, and other constructs attached to a specific index, such as scoring profiles and synonym maps. Depois que um índice é definido e populado, é possível indexá-lo de forma incremental para capturar documentos de origem novos e atualizados.Once an index is defined and populated, you can index incrementally to pick up new and updated source documents. Algumas modificações exigem uma recompilação completa.Certain modifications require a full rebuild. Você deve usar um conjunto de dados pequeno até que o design de esquema fique estável.You should use a small data set until the schema design is stable. Para obter mais informações, confira Como recompilar um índice.For more information, see How to rebuild an index.

Lista de verificação: um fluxo de trabalho típicoChecklist: A typical workflow

  1. Subconjunto de dados de origem do Azure em uma amostra representativa.Subset your Azure source data into a representative sample. A indexação é um processo demorado, portanto, comece com um conjunto de dados representativo pequeno e, em seguida, compile incrementalmente à medida que sua solução amadurecer.Indexing takes time so start with a small, representative data set and then build it up incrementally as your solution matures.

  2. Crie um objeto de fonte de dados na Pesquisa Cognitiva do Azure para fornecer uma cadeia de conexão para a recuperação de dados.Create a data source object in Azure Cognitive Search to provide a connection string for data retrieval.

  3. Crie um conjunto de habilidades com etapas de enriquecimento.Create a skillset with enrichment steps.

  4. Defina o esquema de índice.Define the index schema. A coleção Campos inclui campos da fonte de dados.The Fields collection includes fields from source data. Você também deve usar stub de campos adicionais para manter os valores gerados para o conteúdo criado durante o enriquecimento.You should also stub out additional fields to hold generated values for content created during enrichment.

  5. Defina o indexador referenciando a fonte de dados, o conjunto de habilidades e o índice.Define the indexer referencing the data source, skillset, and index.

  6. Dentro do indexador, adicione outputFieldMappings.Within the indexer, add outputFieldMappings. Esta seção mapeia a saída do conjunto de habilidades (na etapa 3) para os campos de entrada no esquema de índice (na etapa 4).This section maps output from the skillset (in step 3) to the inputs fields in the index schema (in step 4).

  7. Envie a solicitação Criar Indexador recém-criada (uma solicitação POST com uma definição de indexador no corpo da solicitação) para expressar o indexador na Pesquisa Cognitiva do Azure.Send Create Indexer request you just created (a POST request with an indexer definition in the request body) to express the indexer in Azure Cognitive Search. Esta etapa é como você executa o indexador, invocando o pipeline.This step is how you run the indexer, invoking the pipeline.

  8. Execute consultas para avaliar os resultados e modificar o código para atualizar os conjuntos de habilidades, o esquema ou a configuração do indexador.Run queries to evaluate results and modify code to update skillsets, schema, or indexer configuration.

  9. Reinicie o indexador antes de recompilar o pipeline.Reset the indexer before rebuilding the pipeline.

Próximas etapasNext steps