Tutorial: Indexar e enriquecer blobs criptografados para pesquisa de texto completo no Pesquisa de IA do Azure 

Observação

Pesquisa de IA do Azure  está disponível por meio do portal Azure, APIs REST e SDKs do Azure. Ele também sustenta o IQ do Foundry, a camada de conhecimento gerenciado que transforma o conteúdo da empresa em bases de conhecimento reutilizáveis e com reconhecimento de permissão para agentes no portal do Microsoft Foundry.

Saiba como usar o Pesquisa de IA do Azure  para indexar documentos criptografados com uma chave gerenciada pelo cliente no Armazenamento de Blobs do Azure.

Normalmente, um indexador não pode extrair conteúdo de blobs que foram criptografados usando criptografia do lado do cliente na biblioteca Armazenamento de Blobs do Azure cliente. Isso ocorre porque o indexador não tem acesso à chave de criptografia gerenciada pelo cliente no Azure Key Vault. No entanto, usando a habilidade personalizada DecryptBlobFile e a habilidade de Extração de Documentos, você pode fornecer acesso controlado à chave para descriptografar os arquivos e extrair conteúdo deles. Isso desbloqueia a capacidade de indexar e enriquecer esses documentos sem comprometer o status de criptografia de seus documentos armazenados.

Começando com documentos inteiros criptografados anteriormente (texto não estruturado), como PDF, HTML, DOCX e PPTX no Armazenamento de Blobs do Azure, este tutorial usa um cliente REST e as APIs REST de Pesquisa para:

  • Definir um fluxo de trabalho que descriptografe os documentos e extraia o texto deles
  • Definir um índice para armazenar a saída
  • Executar o pipeline para criar e carregar o índice
  • Explorar os resultados usando a pesquisa de texto completo e uma sintaxe de consulta avançada

Pré-requisitos

A implantação de habilidades personalizadas cria um aplicativo de funções do Azure e uma conta de Armazenamento Azure. Esses recursos são criados para você, portanto, eles não são listados como um pré-requisito. Ao concluir este tutorial, lembre-se de limpar os recursos para que você não seja cobrado pelos serviços que não está usando.

Observação

Os conjuntos de habilidades geralmente exigem a anexação de um recurso do Microsoft Foundry. Conforme escrito, esse conjunto de habilidades não tem dependência da Foundry, portanto, nenhuma chave é necessária. Se mais tarde você adicionar enriquecimentos que invocam habilidades internas, lembre-se de atualizar seu conjunto de habilidades adequadamente.

Implantar a habilidade personalizada

Este tutorial usa o projeto DecryptBlobFile de exemplo do repositório GitHub do Azure Search Power Skills . Nesta seção, você implantará a habilidade em uma Função do Azure para que ela possa ser usada em um conjunto de habilidades. Um script de implantação interno cria um recurso de Função do Azure com um prefixo psdbf-function-app- e carrega a habilidade. Você será solicitado a fornecer uma assinatura e um grupo de recursos. Escolha a assinatura que contém sua instância do Azure Key Vault.

Operacionalmente, a habilidade DecryptBlobFile usa a URL e o token SAS para cada blob como entradas. Ele gera o arquivo baixado e descriptografado usando o contrato de referência de arquivo que o Pesquisa de IA do Azure  espera. Lembre-se de que DecryptBlobFile precisa da chave de criptografia para executar a descriptografia. Como parte da instalação, você também cria uma política de acesso que concede acesso à função DecryptBlobFile à chave de criptografia no Azure Key Vault.

  1. Na página inicial DecryptBlobFile, selecione Implantar no Azure para abrir o modelo do Gerenciador de Recursos no portal do Azure.

  2. Escolha a assinatura na qual a instância do Azure Key Vault existe. Este tutorial não funcionará se você escolher uma assinatura diferente.

  3. Selecione um grupo de recursos existente ou crie um novo. Um grupo de recursos dedicado facilita a limpeza mais tarde.

  4. Selecione Examinar + criar, concordar com os termos e, em seguida, selecione Criar para implantar a Função do Azure.

    Captura de tela da página de modelo do ARM no portal do Azure.

  5. Aguarde até que a implantação seja concluída.

Você deve ter um aplicativo de funções do Azure que contenha a lógica de descriptografia e um recurso de Armazenamento do Azure que armazenará dados do aplicativo. Nas próximas etapas, você concede permissões ao aplicativo para acessar o cofre de chaves e coletar informações necessárias para as chamadas REST.

Conceder permissões no Azure Key Vault

  1. Acesse seu serviço do Azure Key Vault no portal do Azure. Crie uma política de acesso no Azure Key Vault que conceda acesso de chave à habilidade personalizada.

  2. No painel esquerdo, selecione políticas de acesso e, em seguida, selecione + Criar para iniciar o assistente Criar uma política de acesso .

    Captura de tela do comando Política de Acesso no painel esquerdo.

  3. Na página Permissões, em Configurar do modelo, selecione Azure Data Lake Storage ou Armazenamento do Microsoft Azure.

  4. Selecione Próximo.

  5. Na página Principal , selecione a instância da Função do Azure que você implantou. Você pode pesquisá-lo usando seu prefixo de recurso, que tem um valor padrão de psdbf-function-app.

  6. Selecione Próximo.

  7. Em Examinar + criar, selecione Criar.

Coletar informações do aplicativo

  1. Acesse a função psdbf-function-app no portal do Azure. Anote as propriedades a seguir que você precisará para as chamadas REST.

  2. Obtenha a URL da função, que pode ser encontrada em Essentials na página principal da função.

    Captura de tela da página de visão geral e da seção Essentials do aplicativo de funções do Azure.

  3. Obtenha o código da chave de host, que pode ser encontrado acessando as chaves do aplicativo e mostrando a chave padrão e copiando o valor.

    Captura de tela da página Chaves de Aplicativo do aplicativo de funções do Azure.

  1. Acesse seu serviço de pesquisa no portal do Azure.

  2. Na página Visão geral do serviço de pesquisa, obtenha o nome do serviço de pesquisa. Você pode confirmar o nome do serviço revisando a URL do endpoint. Por exemplo, se a URL do ponto de extremidade for https://mydemo.search.windows.net, o nome do serviço será mydemo.

  3. Em Chaves de Configurações>, obtenha uma chave de administrador para obter direitos completos sobre o serviço. Há duas chaves de administração intercambiáveis, fornecidas para a continuidade dos negócios, caso seja necessário sobrepor uma. Você pode usar uma chave em solicitações para adicionar, modificar ou excluir objetos.

Uma chave de API é necessária no cabeçalho de cada solicitação enviada ao serviço. Uma chave válida estabelece a confiança, por solicitação, entre o aplicativo que envia a solicitação e o serviço que a manipula.

Configurar um cliente REST

Crie as variáveis a seguir para pontos de extremidade e chaves.

Variable Onde obtê-lo
admin-key Na página Chaves do serviço Pesquisa de IA do Azure .
search-service-name O nome do serviço Pesquisa de IA do Azure . A URL é https://{{search-service-name}}.search.windows.net.
storage-connection-string Na conta de armazenamento, na guia Chaves de Acesso, selecione key1>cadeia de conexão.
storage-container-name O nome do contêiner de blob que tem os arquivos criptografados a serem indexados.
function-uri Na Função do Azure, em Essentials, na página principal.
function-code No Azure Function, acessando as chaves do aplicativo, mostrando a chave padrão e copiando o valor.
api-version Deixe como 2020-06-30.
datasource-name Deixe como encrypted-blobs-ds.
index-name Deixe como encrypted-blobs-idx.
skillset-name Deixe como encrypted-blobs-ss.
indexer-name Deixe como encrypted-blobs-ixr.

Examinar e executar cada solicitação

Use as solicitações HTTP a seguir para criar os objetos de um pipeline de enriquecimento.

  • Solicitação PUT para criar o índice: esse índice de pesquisa contém os dados que o Pesquisa de IA do Azure  usa e retorna.

  • Solicitação POST para criar a fonte de dados: essa fonte de dados especifica a conexão com sua conta de armazenamento que contém os arquivos de blob criptografados.

  • Solicitação PUT para criar o conjunto de habilidades: o conjunto de habilidades especifica a definição de habilidade personalizada para a Função do Azure que descriptografará os dados do arquivo de blob. Ele também especifica um DocumentExtractionSkill para extrair o texto de cada documento depois de descriptografado.

  • Solicitação PUT para criar o indexador: a execução do indexador recupera os blobs, aplica o conjunto de habilidades e indexa e armazena os resultados. Você deve executar esta solicitação por último. A habilidade personalizada no conjunto de habilidades invoca a lógica de descriptografia.

Monitorar a indexação

A indexação e o enriquecimento começam assim que você envia a solicitação Criar Indexador. Dependendo de quantos documentos estão em sua conta de armazenamento, a indexação pode demorar um pouco. Para descobrir se o indexador ainda está em execução, envie uma solicitação Obter Status do Indexador e examine a resposta para saber se o indexador está em execução ou exibir informações de erro e aviso.

Se você estiver usando a camada Gratuita, espere a seguinte mensagem: "Could not extract content or metadata from your document. Truncated extracted text to '32768' characters". Essa mensagem é exibida porque a indexação de blobs na camada Gratuita tem um limite de 32.000 na extração de caracteres. Você não vê essa mensagem para esse conjunto de dados em camadas mais altas.

Pesquisar seu conteúdo

Após a conclusão da execução do indexador, você pode executar consultas para verificar se os dados foram descriptografados e indexados com êxito. Acesse seu serviço do Pesquisa de IA do Azure  no portal do Azure e use o Gerenciador de Pesquisa para executar consultas nos dados indexados.

Limpar os recursos

Quando você está trabalhando em sua própria assinatura, no final de um projeto, é uma boa ideia remover os recursos que já não são necessários. Recursos deixados em execução podem custar dinheiro. Você pode excluir os recursos individualmente ou excluir o grupo de recursos para excluir todo o conjunto de recursos.

Você pode encontrar e gerenciar recursos no portal do Azure usando o link "Todos os recursos" ou "Grupos de recursos" no painel de navegação do lado esquerdo.

Próximas etapas

Agora que você indexou arquivos criptografados, você pode aperfeiçoar este pipeline adicionando mais funcionalidades para enriquecer e adquirir mais informações sobre seus dados.

Se você estiver trabalhando com dados criptografados duplamente, talvez queira investigar os recursos de criptografia de índice disponíveis no Pesquisa de IA do Azure . Embora o indexador precise de dados descriptografados para fins de indexação, uma vez que o índice exista, ele pode ser criptografado em um índice de pesquisa usando uma chave gerenciada pelo cliente. Isso garante que seus dados sejam sempre criptografados quando em repouso. Para obter mais informações, consulte Configurar chaves gerenciadas pelo cliente para criptografia de dados no Pesquisa de IA do Azure .