Copiar versões do processador e conjuntos de dados entre projetos

Esta página contém etapas para copiar versões de processadores treinados da Document AI de um projeto para outro, junto com o esquema do conjunto de dados e exemplos da origem para o processador de destino. Essas etapas automatizam o processo de importação da versão do processador, implantação e definição como padrão no projeto de destino.

Antes de começar

  • Receba um ID do projeto Google Cloud .
  • Tenha o ID do processador da Document AI.
  • Ter o Cloud Storage.
  • Usar Python: notebook Jupyter (Vertex AI).
  • Você precisa de permissões para dar acesso à conta de serviço nos projetos de origem e destino.

Procedimento detalhado

O procedimento é descrito nas etapas a seguir.

Etapa 1: identificar a conta de serviço associada ao Vertex AI Notebook

!gcloud config list account

Saída:

[core]
account = example@automl-project.iam.gserviceaccount.com

Your active configuration is: [default]

Etapa 2: conceder as permissões necessárias à conta de serviço

No projeto Google Cloud que é o destino pretendido da migração, adicione a conta de serviço adquirida na etapa anterior como um principal e atribua os dois papéis a seguir:

  • Administrador da Document AI
  • Administrador de armazenamento

Consulte Como conceder papéis a contas de serviço e Chaves de criptografia gerenciadas pelo cliente (CMEK) para mais informações.

processor-version-migrate-1

Para que a migração funcione, a conta de serviço usada para executar este notebook precisa ter:

  • Funções nos projetos de origem e destino para criar o bucket do conjunto de dados ou criá-lo se ele não existir, além de permissões de leitura e gravação para todos os objetos.
  • Função de editor da Document AI no projeto de origem, conforme descrito em Importar uma versão do processador.

Faça o download de uma chave JSON para a conta de serviço, assim você poderá autenticar e autorizar como conta de serviço. Para mais informações, consulte Chaves de conta de serviço.

Próximo:

  1. Acesse a conta de serviço.
  2. Selecione a conta de serviço destinada a realizar essa tarefa.
  3. Acesse a guia Chaves, clique em Add Key e escolha Criar nova chave.
  4. Selecione o tipo de chave (de preferência JSON).
  5. Clique em Create e faça o download para um caminho específico. processor-version-migrate-2

  6. Atualize o caminho na variável service_account_key no snippet a seguir.

service_account_key='path_to_sa_key.json'

from google.oauth2 import service_account
from google.cloud import storage

# Authenticate the service account
credentials = service_account.Credentials.from_service_account_file(
    service_account_key
)

# pass this credentials variable to all client initializations
# storage_client = storage.Client(credentials=credentials)
# docai_client = documentai.DocumentProcessorServiceClient(credentials=credentials)

Etapa 3: importar as bibliotecas

import time
from pathlib import Path
from typing import Optional, Tuple
from google.cloud.documentai_v1beta3.services.document_service import pagers
from google.api_core.client_options import ClientOptions
from google.api_core.operation import Operation
from google.cloud import documentai_v1beta3 as documentai
from google.cloud import storage
from tqdm import tqdm

Etapa 4: inserir detalhes

  • source_project_id: forneça o ID do projeto de origem.
  • source_location: informe o local do processador de origem (us ou eu).
  • source_processor_id: forneça o ID do processador da Document AI. Google Cloud
  • source_processor_version_to_import: forneça o ID da versão do processador da Google Cloud Document AI para a versão treinada.
  • migrate_dataset::forneça esse valor como True ou False. Se você quiser migrar o conjunto de dados do processador de origem para o de destino, forneça True. Caso contrário, forneça False. O valor padrão é False.
  • source_exported_gcs_path: informe o caminho do Cloud Storage para armazenar arquivos JSON.
  • destination_project_id: forneça o ID do projeto de destino.
  • destination_processor_id: forneça o ID do processador da Document AI, "" ou processor_id do projeto de destino. Google Cloud
source_project_id = "source-project-id"
source_location = "processor-location"
source_processor_id = "source-processor-id"
source_processor_version_to_import = "source-processor-version-id"
migrate_dataset = False  # Either True or False
source_exported_gcs_path = (
    "gs://bucket/path/to/export_dataset/"
)
destination_project_id = "< destination-project-id >"
# Give an empty string if you wish to create a new processor
destination_processor_id = ""

Etapa 5: executar o código

import time
from pathlib import Path
from typing import Optional, Tuple
from google.cloud.documentai_v1beta3.services.document_service import pagers
from google.api_core.client_options import ClientOptions
from google.api_core.operation import Operation
from google.cloud import documentai_v1beta3 as documentai
from google.cloud import storage
from tqdm import tqdm

source_project_id