Checkpoints
Enable the Document AI API.
/ 20
Configure your Vertex AI Workbench instance
/ 20
Make a synchronous process document request.
/ 20
Prepare your environment for asynchronous API calls
/ 20
Make an asynchronous process document request
/ 20
Processar documentos com Python usando a API Document AI
- GSP925
- Visão geral
- Configuração e requisitos
- Tarefa 1: criar e testar um processador de formulários geral
- Tarefa 2: configurar sua instância do Vertex AI Workbench para executar chamadas da API Document AI
- Tarefa 3: fazer uma solicitação síncrona de documento de processo
- Tarefa 4: executar o código Python síncrono do Document AI
- Tarefa 5: criar um processador de OCR de documentos do Document AI
- Tarefa 6: preparar seu ambiente para chamadas assíncronas da API Document AI
- Tarefa 7: fazer uma solicitação de documento de processo assíncrona
- Parabéns
GSP925
Visão geral
A API Document AI é uma solução de compreensão de documentos que usa dados não estruturados, como documentos e e-mails, e facilita a compreensão, a análise e o consumo dos dados.
Neste laboratório, você vai usar a API Document AI com Python para criar vários processadores, incluindo um processador de formulários geral e um processador de OCR de documentos, e depois vai fazer chamadas síncronas e assíncronas para a API usando Python. Este laboratório cria uma instância do Vertex AI Workbench que você vai usar com os notebooks do JupyterLab para trabalhar com os módulos do cliente Python Document AI.
Objetivos
Neste laboratório, você vai aprender a:
- Habilitar a API Document AI e criar processadores.
- Instalar a biblioteca de cliente para Python em uma instância do Vertex AI Workbench.
- Analisar dados de um formulário digitalizado usando Python para fazer uma chamada de API síncrona.
- Analisar dados de formulários digitalizados usando Python para fazer uma chamada de API assíncrona.
Configuração e requisitos
Antes de clicar no botão Start Lab
Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.
Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.
Confira os requisitos para concluir o laboratório:
- Acesso a um navegador de Internet padrão (recomendamos o Chrome).
- Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Ativar o Cloud Shell
O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.
- Clique em Ativar o Cloud Shell na parte de cima do console do Google Cloud.
Depois de se conectar, vai notar que sua conta já está autenticada, e que o projeto está configurado com seu PROJECT_ID. A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:
gcloud
é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.
- (Opcional) É possível listar o nome da conta ativa usando este comando:
-
Clique em Autorizar.
-
A saída será parecida com esta:
Saída:
- (Opcional) É possível listar o ID do projeto usando este comando:
Saída:
Exemplo de saída:
gcloud
, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.
Tarefa 1: criar e testar um processador de formulários geral
Nesta tarefa, você vai habilitar a API Document AI, depois vai criar e testar um processador de formulários geral. O processador de formulários geral vai processar qualquer tipo de documento e extrair todo o conteúdo de texto que puder identificar no documento. Ele não se limita a textos impressos, mas também gerencia textos manuscritos e em qualquer orientação, aceita vários idiomas e entende como os elementos de dados do formulário se relacionam entre si, tornando possível extrair pares de chave-valor dos campos do formulário com rótulos de texto.
Ativar a API Document AI do Cloud
Antes de começar a usar a Document AI, você precisa ativar a API.
-
No console do Cloud, no Menu de navegação (), clique em APIs e serviços > Biblioteca.
-
Pesquise API Document AI do Cloud e clique no botão Ativar para usar a API no seu projeto do Google Cloud.
Se a API Document AI do Cloud já estiver ativada, será exibido o botão Gerenciar e você vai poder continuar com o restante do laboratório.
Criar um processador de formulários geral
Crie um processador Document AI usando o analisador de formulários do Document AI.
-
No console, no Menu de navegação (), clique em Document AI > Visão geral.
-
Clique em Explorar processador e selecione Analisador de formulários, que é um tipo de processador geral.
-
Especifique o nome do processador como form-parser e selecione a região EUA (Estados Unidos) na lista.
-
Clique em Criar para que o processador do form-parser geral seja criado.
Isso vai criar o processador e retornar à página de detalhes do processador, que vai exibir o ID do processador, o status e o endpoint de previsões.
- Anote o ID do processador, porque você precisará atualizar variáveis nos notebooks do JupyterLab com o ID do processador em tarefas posteriores.
Tarefa 2: configurar sua instância do Vertex AI Workbench para executar chamadas da API Document AI
Em seguida, conecte-se ao JupyterLab em execução na instância do Vertex AI Workbench que foi criada para você quando o laboratório foi iniciado e configure esse ambiente para as tarefas restantes do laboratório.
-
No menu de navegação do console do Google Cloud, clique em Vertex AI > Workbench.
-
Ache a instância
e clique no botão Abrir o JupyterLab.
A interface do JupyterLab para sua instância do Workbench será aberta em uma nova guia do navegador.
-
Clique em Terminal para abrir um shell do terminal dentro da instância do Vertex AI Workbench.
-
Insira o seguinte comando no shell do terminal para importar os arquivos do laboratório para sua instância do Vertex AI Workbench:
- Insira o seguinte comando no shell do terminal para instalar as bibliotecas de cliente obrigatórias do Python para o Document AI e outras bibliotecas necessárias:
Será exibida uma saída indicando que as bibliotecas foram instaladas com êxito.
- Insira o seguinte comando no shell do terminal para importar a amostra de formulário de anamnese:
-
Na interface do notebook, abra o notebook do JupyterLab chamado
. -
Na caixa de diálogo Selecionar Kernel, escolha Python 3 na lista de kernels disponíveis.
Tarefa 3: fazer uma solicitação síncrona de documento de processo
Faça uma chamada de documento de processo usando uma chamada de API síncrona do Document AI. Para processar grandes quantidades de documentos de uma só vez, também é possível usar a API assíncrona, que será apresentada em uma tarefa posterior.
Revisar no código Python se há chamadas de API síncronas do Document AI
Reserve um minuto para revisar o código Python no notebook
O primeiro bloco de código importa as bibliotecas necessárias e inicializa algumas variáveis.
A célula de código Set your Processor ID determina o ID do processador que você precisa estabelecer manualmente antes de processar documentos com o notebook.
Você precisará do ID do processador do Document AI referente ao processador criado na Tarefa 1 para esta etapa.
Dica: se você não salvou, na guia Console do Cloud, abra o Menu de navegação (), clique em Document AI > Meus processadores e selecione o nome do seu processador para abrir a página de detalhes. A partir daqui, você pode copiar o ID do processador.
A célula de código da Process Document Function define a função process_document
, que é usada para fazer uma chamada síncrona a um processador do Document AI. A função cria um objeto de cliente da API Document AI.
O nome do processador exigido pela chamada da API é criado usando os parâmetros project_id
, locations
e processor_id
, e o documento PDF de amostra é lido e armazenado em uma estrutura mime_type
.
A função cria um objeto de solicitação que contém o nome completo do processador do documento e usa esse objeto como parâmetro para uma chamada síncrona ao cliente da API Document AI. Se a solicitação for bem-sucedida, o objeto de documento retornado incluirá propriedades que contêm as entidades detectadas no formulário.
A célula de código do Process Document chama a função process_document
, salva a resposta na variável document
e imprime o texto bruto detectado. Todos os processadores vão reportar alguns dados para a propriedade document.text
.
A célula de código Get Text Function define a função get_text()
que recupera o texto de um elemento nomeado usando as propriedades text_anchor
, start_index
e end_index
dos text_segments
do elemento nomeado. Esta função é usada para recuperar o nome e o valor do formulário dentre os dados retornados pelo processador.
A célula Exibir dados do formulário percorre todas as páginas que foram detectadas e, para cada form_field
detectado, ela usa a função get_text()
para recuperar o nome e o valor do campo. Então esses valores são impressos com as pontuações de confiança correspondentes. Os dados do formulário serão retornados por processadores que usam o analisador de formulário geral ou os analisadores especializados, mas não serão retornados por processadores que foram criados com o analisador de OCR de documentos.
A célula Exibir dados da entidade extrai dados da entidade do objeto document e exibe o tipo de entidade, o valor e as propriedades de confiança para cada entidade detectada. Os dados da entidade são retornados somente por processadores que usam analisadores do Document AI especializados, como o analisador de despesas de aquisição. O analisador de formulário geral e o de OCR de documentos não vão retornar dados de entidade.
Tarefa 4: executar o código Python síncrono do Document AI
Execute o código para fazer chamadas síncronas à API Document AI no notebook JupyterLab.
-
Na segunda célula de código Set your Processor ID, substitua o texto do marcador de posição
PROCESSOR_ID
pelo ID do processador para o processador form-parser que você criou em uma etapa anterior. -
Selecione a primeira célula, clique no menu Executar e depois em Executar célula selecionada e todas abaixo para executar todo o código no notebook.
Se você usou a amostra de formulário de anamnese, verá dados semelhantes aos seguintes na célula de saída dos dados do formulário:
Se você conseguir criar um processador especializado, a célula final exibirá dados da entidade; caso contrário, mostrará uma tabela vazia.
- No menu JupyterLab, clique em Arquivo e depois em Salvar Notebook para salvar o progresso.
Tarefa 5: criar um processador de OCR de documentos do Document AI
Nesta tarefa, você vai criar um processador do Document AI usando o analisador de OCR de documentos geral.
-
No Menu de navegação, clique em Document AI > Visão geral.
-
Clique em Explorar processador e depois em Criar processador para OCR de documentos. Este é um tipo de processador geral.
-
Especifique o nome do processador como ocr-processor e selecione a região EUA (Estados Unidos) na lista.
-
Clique em Criar para que o processador seja criado.
-
Anote o ID do processador. Você vai precisar especificar isso em uma tarefa posterior.
Tarefa 6: preparar seu ambiente para chamadas assíncronas da API Document AI
Nesta tarefa, você vai fazer upload do notebook de exemplo do JupyterLab para testar chamadas assíncronas da API Document AI e vai copiar algumas amostras de formulários do laboratório para o Cloud Storage para processamento assíncrono.
-
Clique na guia Terminal para reabrir o shell do terminal dentro da instância do Vertex AI Workbench.
-
Crie um bucket do Cloud Storage para os documentos de entrada e copie os exemplos de formulários W2 para o bucket:
-
Na interface do notebook, abra o notebook do JupyterLab chamado
. -
Na caixa de diálogo Selecionar Kernel, escolha Python 3 na lista de kernels disponíveis.
Tarefa 7: fazer uma solicitação de documento de processo assíncrona
Revisar no código Python se há chamadas assíncronas da API Document AI
Reserve um minuto para revisar o código Python no notebook
A primeira célula de código importa as bibliotecas necessárias.
A célula de código Set your Processor ID determina o ID do processador que você precisa estabelecer manualmente antes de processar documentos com o notebook.
A célula de código Set your variables define os parâmetros que serão usados para fazer a chamada assíncrona, incluindo o local dos buckets de entrada e saída do Cloud Storage que serão usados para os dados de origem e os arquivos de saída. Você deve atualizar os valores do marcador de posição desta célula para PROJECT_ID
e PROCESSOR_ID
na próxima seção do laboratório antes de executar o código. As outras variáveis contêm padrões para o local do processador, o bucket de entrada do Cloud Storage e o bucket de saída do Cloud Storage que você não precisa alterar.
A célula de código Define Google Cloud client objects inicializa os clientes do Document AI e do Cloud Storage.
A célula de código Create input configuration cria o parâmetro de matriz de configuração de entrada para os dados de origem que serão passados para a solicitação assíncrona do Document AI como uma configuração de entrada. Esta matriz armazena o local de origem do Cloud Storage e o tipo MIME para cada um dos arquivos encontrados no local de entrada do Cloud Storage.
A célula de código Create output configuration cria o parâmetro de saída para a solicitação assíncrona contendo o local do bucket de saída do Cloud Storage e o armazena como uma configuração de saída em lote do Document AI.
A célula de código Create the Document AI API request cria o objeto de solicitação de processo em lote assíncrono do Document AI usando os objetos de configuração de entrada e saída.
A célula do código Start the batch (asynchronous) API operation faz uma solicitação de processo de documento assíncrono passando o objeto de solicitação para o método batch_process_documents()
. Esta é uma chamada assíncrona, então você usa o método result()
para forçar o notebook a esperar até que o trabalho assíncrono em segundo plano seja concluído.
A célula Buscar lista de arquivos de saída enumera os objetos no local do bucket de saída, conforme definido na variável destination_uri
.
A célula Exibir texto detectado de arquivos JSON de saída assíncronos carrega cada arquivo JSON de saída encontrado como um objeto de documento do Document AI e os dados de texto detectados pelo processador de OCR de documentos são impressos.
A célula Exibir dados da entidade vai exibir todos os dados da entidade encontrados. No entanto, os dados da entidade só vão estar disponíveis para processadores que foram criados usando um analisador especializado. Os dados da entidade não serão exibidos com o analisador de OCR geral do Document AI usado nesta tarefa.
Executar o código Python assíncrono do Document AI
Use o exemplo de código fornecido para você no notebook do Jupyterlab para processar documentos de maneira assíncrona usando uma solicitação de processamento em lote do Document AI.
-
Na segunda célula de código, substitua o texto do marcador de posição
PROCESSOR_ID
pelo ID do processador do analisador de formulários que você criou em uma etapa anterior. -
Selecione a primeira célula, clique no menu Executar e depois em Executar célula selecionada e todas abaixo para executar todo o código no notebook.
-
À medida que as células de código são executadas, você pode percorrer o notebook revisando o código e os comentários que explicam como o objeto de solicitação assíncrona é criado e usado.
O notebook vai levar um ou dois minutos para aguardar a conclusão da operação do processo em lote assíncrono na célula de código Start the batch (asynchronous) API operation. Embora a chamada de API do processo em lote seja assíncrona, o notebook usa o método result
para forçar o notebook a esperar até que a chamada assíncrona seja concluída antes de enumerar e exibir os dados de saída.
Se o trabalho assíncrono demorar mais do que o esperado e expirar, talvez seja necessário executar as células restantes novamente para exibir a saída. Estas são as células após a célula Iniciar a operação de API em lote (assíncrona)..
Sua saída conterá um texto listando os dados do Document AI detectados em cada arquivo. O analisador de OCR de documentos não detecta dados de formulário ou entidade, portanto, nenhum dado de formulário ou entidade será produzido. Se você puder criar um processador especializado, também vai notar dados de entidade impressos pela célula final.
- No menu JupyterLab, clique em Arquivo e depois em Salvar Notebook para salvar o progresso.
Parabéns
Você efetuou chamadas síncronas e assíncronas para a API Document AI. Neste laboratório, você habilitou a API Document AI e criou processadores. Você instalou a biblioteca de cliente do Python em uma instância do Vertex AI Workbench, analisou dados de um formulário digitalizado usando Python para fazer uma chamada de API síncrona e analisou dados de formulários digitalizados usando Python para fazer uma chamada de API assíncrona.
Termine a Quest
Este laboratório autoguiado faz parte da Quest com selo de habilidade Detect Manufacturing Defects using Visual Inspection AI. Uma Quest é uma série de laboratórios relacionados que formam um programa de aprendizado. Ao concluir uma Quest, você ganha um selo como reconhecimento da sua conquista. Compartilhe o selo no seu currículo e nas redes sociais e use #GoogleCloudBadge para anunciar sua conquista. É possível publicar os selos que você ganhou e incluir um link para eles no seu currículo on-line ou nas redes sociais. Inscreva-se em uma Quest e ganhe créditos de conclusão agora se você já tiver feito este laboratório. Confira outras Quests disponíveis.
Próximas etapas/Saiba mais
- Para saber mais sobre como usar as APIs Document AI, leia o guia.
Treinamento e certificação do Google Cloud
Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.
Manual atualizado em 8 de outubro de 2024
Laboratório testado em 8 de outubro de 2024
Copyright 2024 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.