Editar

Share via


Pesquisar e consultar uma base de dados de conhecimento empresarial usando o Azure OpenAI ou o Azure AI Search

Azure Blob Storage
Azure Cache for Redis
Azure AI Search
Azure AI services
Azure AI Document Intelligence

Este artigo descreve como usar o Serviço OpenAI do Azure ou o Azure AI Search (anteriormente Azure Cognitive Search) para pesquisar documentos em seus dados corporativos e recuperar resultados para fornecer uma experiência de perguntas e respostas no estilo ChatGPT. Esta solução descreve duas abordagens:

  • Abordagem de incorporações: use o modelo de incorporação do Azure OpenAI para criar dados vetorizados. A pesquisa vetorial é um recurso que aumenta significativamente a relevância semântica dos resultados da pesquisa.

  • Abordagem do Azure AI Search: use o Azure AI Search para pesquisar e recuperar dados de texto relevantes com base em uma consulta do usuário. Este serviço suporta pesquisa de texto completo, pesquisa semântica, pesquisa vetorial e pesquisa híbrida.

Nota

No Azure AI Search, os recursos de pesquisa semântica e pesquisa vetorial estão atualmente em visualização pública.

Arquitetura: Abordagem de incorporação

Diagram that shows the embeddings approach.Transfira um ficheiro do Visio desta arquitetura.

Fluxo de dados

Os documentos a serem ingeridos podem vir de várias fontes, como arquivos em um servidor FTP, anexos de e-mail ou anexos de aplicativos da Web. Esses documentos podem ser ingeridos no Armazenamento de Blobs do Azure por meio de serviços como Aplicativos Lógicos do Azure, Azure Functions ou Azure Data Factory. O Data Factory é ideal para transferir dados em massa.

Criação de incorporação:

  1. O documento é ingerido no Armazenamento de Blob e uma função do Azure é acionada para extrair texto dos documentos.

  2. Se os documentos estiverem em um idioma diferente do inglês e a tradução for necessária, uma função do Azure poderá chamar o Tradutor do Azure para executar a tradução.

  3. Se os documentos forem PDFs ou imagens, uma função do Azure pode chamar o Azure AI Document Intelligence para extrair o texto. Se o documento for um arquivo Excel, CSV, Word ou texto, o código python pode ser usado para extrair o texto.

  4. O texto extraído é então fragmentado apropriadamente e um modelo de incorporação do Azure OpenAI é usado para converter cada bloco em incorporações.

  5. Essas incorporações são mantidas no banco de dados vetorial. Esta solução usa a camada Enterprise do Cache do Azure para Redis, mas qualquer banco de dados vetorial pode ser usado.

Consulta e recuperação:

  1. O usuário envia uma consulta através de um aplicativo de usuário.

  2. O modelo de incorporação do Azure OpenAI é usado para converter a consulta em incorporações vetoriais.

  3. Uma pesquisa de semelhança vetorial que usa esse vetor de consulta no banco de dados vetorial retorna o conteúdo de correspondência k superior. O conteúdo correspondente a ser recuperado pode ser definido de acordo com um limite definido por uma medida de semelhança, como semelhança de cosseno.

  4. O conteúdo recuperado k superior e o prompt do sistema são enviados para o modelo de linguagem OpenAI do Azure, como GPT-3.5 Turbo ou GPT-4.

  5. Os resultados da pesquisa são apresentados como a resposta à consulta de pesquisa que foi iniciada pelo usuário, ou os resultados da pesquisa podem ser usados como os dados de aterramento para um cenário de conversa de várias voltas.

Arquitetura: Abordagem pull do Azure AI Search

Diagram that shows the pull approach.Transfira um ficheiro do Visio desta arquitetura.

Criação de índices:

  1. A Pesquisa de IA do Azure é usada para criar um índice de pesquisa dos documentos no Armazenamento de Blob. O Azure AI Search dá suporte ao Armazenamento de Blob, portanto, o modelo pull é usado para rastrear o conteúdo e o recurso é implementado por meio de indexadores.

    Nota

    O Azure AI Search dá suporte a outras fontes de dados para indexação ao usar o modelo pull. Os documentos também podem ser indexados a partir de várias fontes de dados e consolidados em um único índice.

  2. Se determinados cenários exigirem a tradução de documentos, o Tradutor do Azure pode ser usado, que é um recurso incluído na habilidade interna.

  3. Se os documentos não puderem ser pesquisados, como PDFs ou imagens digitalizados, a IA poderá ser aplicada usando habilidades internas ou personalizadas como conjuntos de habilidades na Pesquisa de IA do Azure. A aplicação de IA sobre conteúdo que não pode ser pesquisado em texto completo é chamada de enriquecimento de IA. Dependendo do requisito, o Azure AI Document Intelligence pode ser usado como uma habilidade personalizada para extrair texto de PDFs ou imagens por meio de modelos de análise de documentos, modelos pré-criados ou modelos de extração personalizados.

    Se o enriquecimento de IA for um requisito, o modelo pull (indexadores) deve ser usado para carregar um índice.

    Se campos vetoriais forem adicionados ao esquema de índice, que carrega os dados vetoriais para indexação, a pesquisa vetorial poderá ser habilitada indexando esses dados vetoriais. Os dados vetoriais podem ser gerados por meio das incorporações do Azure OpenAI.

Consulta e recuperação:

  1. Um usuário envia uma consulta por meio de um aplicativo de usuário.

  2. A consulta é passada para a Pesquisa de IA do Azure por meio da API REST de documentos de pesquisa. O tipo de consulta pode ser simples, o que é ideal para pesquisa de texto completo, ou completo, que é para construções de consulta avançadas, como expressões regulares, pesquisa difusa e curinga e pesquisa de proximidade. Se o tipo de consulta for definido como semântico, uma pesquisa semântica será realizada nos documentos e o conteúdo relevante será recuperado. O Azure AI Search também dá suporte à pesquisa vetorial e à pesquisa híbrida, que exige que a consulta do usuário seja convertida em incorporações de vetor.

  3. O conteúdo recuperado e o prompt do sistema são enviados para o modelo de linguagem OpenAI do Azure, como GPT-3.5 Turbo ou GPT-4.

  4. Os resultados da pesquisa são apresentados como a resposta à consulta de pesquisa que foi iniciada pelo usuário, ou os resultados da pesquisa podem ser usados como os dados de aterramento para um cenário de conversa de várias voltas.

Arquitetura: Abordagem de push do Azure AI Search

Se a fonte de dados não for suportada, você poderá usar o modelo de push para carregar os dados no Azure AI Search.

Diagram that shows the push approach.Transfira um ficheiro do Visio desta arquitetura.

Criação de índices:

  1. Se o documento a ser ingerido precisar ser traduzido, o Azure Translator poderá ser usado.
  2. Se o documento estiver em um formato não pesquisável, como um PDF ou imagem, o Azure AI Document Intelligence poderá ser usado para extrair texto.
  3. O texto extraído pode ser vetorizado por meio da pesquisa vetorial incorporada do Azure OpenAI e os dados podem ser enviados por push para um índice do Azure AI Search por meio de uma API Rest ou um SDK do Azure.

Consulta e recuperação:

A consulta e a recuperação nessa abordagem são as mesmas que a abordagem pull anteriormente neste artigo.

Componentes

  • O Azure OpenAI fornece acesso à API REST aos modelos de linguagem do Azure OpenAI, incluindo o GPT-3, o Codex e a série de modelos de incorporação para geração de conteúdo, resumo, pesquisa semântica e tradução de linguagem natural para código. Acesse o serviço usando uma API REST, Python SDK ou a interface baseada na Web no Azure OpenAI Studio.

  • O Azure AI Document Intelligence é um serviço de IA do Azure. Ele oferece recursos de análise de documentos para extrair texto impresso e manuscrito, tabelas e pares chave-valor. O Azure AI Document Intelligence fornece modelos pré-criados que podem extrair dados de faturas, documentos, recibos, cartões de identificação e cartões de visita. Você também pode usá-lo para treinar e implantar modelos personalizados usando um modelo de formulário de modelo personalizado ou um modelo de documento neural personalizado.

  • O Document Intelligence Studio fornece uma interface do usuário para explorar os recursos e modelos do Azure AI Document Intelligence e para criar, marcar, treinar e implantar modelos personalizados.

  • O Azure AI Search é um serviço de nuvem que fornece infraestrutura, APIs e ferramentas para pesquisa. Use a Pesquisa de IA do Azure para criar experiências de pesquisa sobre conteúdo privado diferente em aplicativos Web, móveis e corporativos.

  • O Armazenamento de Blobs é a solução de armazenamento de objetos para arquivos brutos nesse cenário. O Blob Storage suporta bibliotecas para várias linguagens, como .NET, Node.js e Python. Os aplicativos podem acessar arquivos no armazenamento de Blob via HTTP ou HTTPS. O Blob Storage tem níveis de acesso a quentes, frescos e arquivados para oferecer suporte à otimização de custos para armazenar grandes quantidades de dados.

  • A camada Enterprise do Cache Redis do Azure fornece módulos Redis Enterprise gerenciados, como RediSearch, RedisBloom, RedisTimeSeries e RedisJSON. Os campos vetoriais permitem a pesquisa de semelhança vetorial, que suporta indexação vetorial em tempo real (algoritmo de força bruta (FLAT) e algoritmo de mundo pequeno navegável hierárquico (HNSW)), atualizações vetoriais em tempo real e pesquisa de vizinho k-mais próximo. O Cache Redis do Azure traz uma solução crítica de armazenamento de dados de baixa latência e alta taxa de transferência para aplicativos modernos.

Alternativas

Dependendo do cenário, você pode adicionar os seguintes fluxos de trabalho.

  • Use os recursos da Linguagem de IA do Azure, resposta a perguntas e compreensão de linguagem conversacional para criar uma camada de conversação natural sobre seus dados. Esses recursos encontram respostas apropriadas para a entrada de sua base de dados de conhecimento personalizada de informações.

  • Para criar dados vetorizados, você pode usar qualquer modelo de incorporação. Você também pode usar a API de recuperação de imagens Vision dos serviços de IA do Azure para vetorizar imagens. Esta ferramenta está disponível em pré-visualização privada.

  • Use a extensão Durable Functions para Azure Functions como uma ferramenta de integração code-first para executar etapas de processamento de texto, como leitura de manuscrito, texto e tabelas, e linguagem de processamento para extrair entidades em dados com base no tamanho e na escala da carga de trabalho.

  • Você pode usar qualquer banco de dados para armazenamento persistente das incorporações extraídas, incluindo:

Detalhes do cenário

O processamento manual é cada vez mais demorado, propenso a erros e consome muitos recursos devido ao grande volume de documentos. As organizações que lidam com grandes volumes de documentos, em grande parte dados não estruturados de diferentes formatos como PDF, Excel, CSV, Word, PowerPoint e formatos de imagem, enfrentam um desafio significativo no processamento de documentos e formulários digitalizados e manuscritos de seus clientes.

Esses documentos e formulários contêm informações críticas, como detalhes pessoais, histórico médico e relatórios de avaliação de danos, que devem ser extraídos e processados com precisão.

Muitas vezes, as organizações já têm a sua própria base de conhecimento de informação, que pode ser usada para responder a perguntas com a resposta mais adequada. Você pode usar os serviços e pipelines descritos nessas soluções para criar uma fonte para mecanismos de pesquisa de documentos.

Potenciais casos de utilização

Esta solução fornece valor para organizações em setores como empresas farmacêuticas e serviços financeiros. Aplica-se a qualquer empresa que tenha um grande número de documentos com informações incorporadas. Esta solução de pesquisa de ponta a ponta alimentada por IA pode ser usada para extrair informações significativas dos documentos com base na consulta do usuário para fornecer uma experiência de perguntas e respostas no estilo ChatGPT.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Principais autores:

  • Dixit Arora - Brasil | Engenheiro de Clientes Sénior, ISV DN CoE
  • Jyotsna Ravi - Brasil | Engenheiro de Clientes Principal, ISV DN CoE

Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.

Próximos passos