Fonction ML.PROCESS_DOCUMENT

Ce document décrit la fonction ML.PROCESS_DOCUMENT, qui vous permet de traiter des documents non structurés à partir d'une table d'objets.

Syntaxe

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

Arguments

ML.PROCESS_DOCUMENT utilise les arguments suivants :

  • project_id : ID de votre projet

  • dataset : ensemble de données BigQuery contenant le modèle.

  • model : nom d'un modèle distant avec une valeur REMOTE_SERVICE_TYPE de CLOUD_AI_DOCUMENT_V1.

  • object_table : nom de la table d'objet contenant les URI des documents.

    Les documents de la table d'objets doivent être d'un type compatible. Une erreur est renvoyée pour toute ligne contenant un document d'un type non compatible.

Sortie

ML.PROCESS_DOCUMENT affiche les colonnes suivantes :

  • ml_process_document_result : valeur JSON contenant les entités renvoyées par l'API Document AI.
  • ml_process_document_result_status : valeur STRING contenant l'état de réponse de l'API pour la ligne correspondante. Cette valeur est vide si l'opération a réussi.
  • Champs renvoyés par le processeur spécifié dans le modèle.
  • Les colonnes de la table d'objets.

Quotas

Consultez la page Quotas et limites des fonctions du service Cloud AI.

Emplacement

ML.PROCESS_DOCUMENT doit s'exécuter dans la même région que le modèle distant auquel la fonction fait référence. Vous ne pouvez créer des modèles basés sur Document AI que dans les emplacements multirégionaux US et EU.

Limites

La fonction ne peut pas traiter de documents de plus de 15 pages. Toute ligne contenant ce type de fichier renvoie une erreur.

Exemple

L'exemple suivant utilise l'analyseur de factures pour traiter les documents représentés par la table documents.

Créez le modèle :

# 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');

Traitez les documents :

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

Le résultat ressemble à ce qui suit :

ml_process_document_result ml_process_document_status invoice_type currency
{"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

Étapes suivantes