La funzione ML.PROCESS_DOCUMENT

Questo documento descrive la funzione ML.PROCESS_DOCUMENT, che consente di elaborare documenti non strutturati da una tabella degli oggetti.

Sintassi

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

Argomenti

ML.PROCESS_DOCUMENT accetta i seguenti argomenti:

  • project_id: l'ID del tuo progetto.

  • dataset: il set di dati BigQuery che contiene il modello.

  • model: il nome di un modello remoto con un valore REMOTE_SERVICE_TYPE di CLOUD_AI_DOCUMENT_V1.

  • object_table: il nome della tabella dell'oggetto che contiene gli URI dei documenti.

    I documenti nella tabella degli oggetti devono essere di un tipo supportato. Viene restituito un errore per qualsiasi riga contenente un documento di tipo non supportato.

Output

ML.PROCESS_DOCUMENT restituisce le seguenti colonne:

  • ml_process_document_result: un valore JSON che contiene le entità restituite dall'API Document AI.
  • ml_process_document_result_status: un valore STRING contenente lo stato della risposta API per la riga corrispondente. Questo valore è vuoto se l'operazione è riuscita.
  • I campi restituiti dal processore specificato nel modello.
  • Le colonne della tabella degli oggetti.

Quote

Consulta Quote e limiti delle funzioni di servizio Cloud AI.

Località

ML.PROCESS_DOCUMENT deve essere eseguito nella stessa regione del modello remoto a cui fa riferimento la funzione. Puoi creare modelli basati su Document AI solo nelle aree geografiche multiple US e EU.

Limitazioni

La funzione non può elaborare documenti con più di 15 pagine. Qualsiasi riga contenente questo file restituisce un errore.

Esempio

L'esempio seguente utilizza l'analizzatore sintattico delle fatture per elaborare i documenti rappresentati dalla tabella documents.

Crea il modello:

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

Elabora i documenti:

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

Il risultato è simile al seguente:

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

Passaggi successivi