Função ML.PROCESS_DOCUMENT

Neste documento, descrevemos a função ML.PROCESS_DOCUMENT, que permite processar documentos não estruturados de uma tabela de objetos.

Sintaxe

ML.PROCESS_DOCUMENT(
  MODEL `project_id.dataset.model_name`,
  TABLE `project_id.dataset.object_table`
)

Argumentos

ML.PROCESS_DOCUMENT usa os seguintes argumentos:

  • project_id: um valor STRING que especifica o ID do projeto.

  • dataset: um valor STRING que especifica o conjunto de dados do BigQuery que contém o modelo.

  • model: um valor STRING que especifica o nome de um modelo remoto com um valor REMOTE_SERVICE_TYPE de CLOUD_AI_DOCUMENT_V1.

  • object_table: um valor STRING que especifica o nome da tabela de objetos que contém os URIs dos documentos.

    Os documentos na tabela de objetos precisam ser de um tipo compatível. Um erro é retornado para qualquer linha que contenha um documento com um tipo não compatível.

Saída

ML.PROCESS_DOCUMENT retorna as seguintes colunas:

  • ml_process_document_result: um valor JSON que contém as entidades retornadas pela API Document AI.
  • ml_process_document_result_status: um valor STRING que contém o status da resposta da API para a linha correspondente. Esse valor estará vazio se a operação tiver sido bem-sucedida.
  • Os campos retornados pelo processador especificado no modelo.
  • As colunas da tabela de objetos.

Cotas

Consulte Cotas e limites de funções de serviço da IA do Cloud.

Locais

ML.PROCESS_DOCUMENT precisa ser executada na mesma região que o modelo remoto referenciado pela função. Só é possível criar modelos com base na Document AI nas multirregiões US e EU.

Limitações

A função não processa documentos com mais de 15 páginas. Qualquer linha que contenha esse arquivo retorna um erro.

Exemplo

No exemplo a seguir, usamos o analisador de faturas para processar os documentos representados pela tabela documents.

Criar o modelo:

# Create model
CREATE OR REPLACE MODEL
`myproject.mydataset.invoice_parser`
REMOTE WITH CONNECTION `myproject.myregion.myconnection`
OPTIONS (remote_service_type = 'cloud_ai_document_v1',
document_processor='projects/project_number/locations/processor_location/processors/processor_id/processorVersions/version_id');

Processe os documentos:

SELECT *
FROM ML.PROCESS_DOCUMENT(
  MODEL `myproject.mydataset.invoice_parser`,
  TABLE `myproject.mydataset.documents`
);

O resultado será semelhante ao seguinte:

ml_process_document_result ml_process_document_status invoice_type moeda
{"entities":[{"confidence":1,"id":"0","mentionText":"10 105,93 10,59","pageAnchor":{"pageRefs":[{"boundingPoly":{"normalizedVertices":[{"x":0.40452111,"y":0.67199326},{"x":0.74776918,"y":0.67199326},{"x":0.74776918,"y":0.68208581},{"x":0.40452111,"y":0.68208581}]}}]},"properties":[{"confidence":0.66... USD

A seguir