Utilizzare l'analizzatore di layout di Document AI con il motore RAG di Vertex AI

Questa pagina presenta il parser del layout di Document AI e il suo utilizzo con RAG Engine.

Document AI

Document AI è una piattaforma di elaborazione e comprensione dei documenti che acquisisce dati non strutturati dai documenti e li trasforma in campi adatti all'archiviazione in un database. I dati strutturati sono dati che puoi comprendere, analizzare e utilizzare.

Document AI è basato sui prodotti di Vertex AI con l'AI generativa per aiutarti a creare applicazioni di elaborazione dei documenti scalabili, end-to-end e basate sul cloud. Per utilizzare questi prodotti non è richiesta alcuna competenza specializzata in machine learning.

Parser del layout di Document AI

Il parser del layout estrae elementi di contenuto dal documento, ad esempio testo, tabelle ed elenchi. Il parser del layout crea quindi blocchi sensibili al contesto che facilitano il recupero di informazioni nell'AI generativa e nelle applicazioni di rilevamento.

Quando viene utilizzato per il recupero e la generazione di LLM, il layout del documento viene considerato durante il processo di suddivisione in blocchi, il che migliora la coerenza semantica e riduce il rumore nei contenuti. Tutto il testo in un blocco proviene dalla stessa entità di layout, ad esempio l'intestazione, il sottotitolo o l'elenco.

Per i tipi di file utilizzati dal rilevamento del layout, vedi Rilevamento del layout per tipo di file.

Utilizzare il parser del layout in Vertex AI RAG Engine

Per utilizzare il parser del layout in Vertex AI RAG Engine, devi creare un corpus. Per creare un corpus:

  1. Nella Google Cloud console, vai alla pagina RAG Engine.

    Vai a RAG Engine

  2. Seleziona Crea corpus.

  3. Nel campo Regione, seleziona la tua regione.

  4. Nel campo Nome corpus, inserisci il nome del corpus.

  5. Nel campo Descrizione, inserisci una descrizione.

  6. Nella sezione Dati, seleziona dove vuoi caricare i dati.

  7. Espandi la sezione Opzioni avanzate.

    1. Nella sezione Strategia di suddivisione in blocchi, sono consigliate le seguenti dimensioni predefinite:

      • Dimensione chunking: 1024
      • Sovrapposizione chunk: 256
    2. Nella sezione Parser del layout, seleziona l'opzione Parser del layout di Document AI, che offre la massima accuratezza per i documenti con immagini o grafici.

      1. Nel campo Modello, seleziona il modello.

      2. (Facoltativo) Nel campo Numero massimo di richieste di analisi al minuto, inserisci il numero massimo di richieste di analisi.

      3. (Facoltativo) Nel campo Prompt di analisi personalizzato, inserisci il prompt di analisi.

      4. Fai clic su Continua.

  8. Nella pagina Configura vector store, segui questi passaggi:

    1. Nel campo Modello di incorporamento, seleziona il modello di incorporamento.

    2. Nella sezione Database vettoriale, seleziona il database.

  9. Fai clic su Crea corpus.

Limitazioni

L'API ImportRagFiles supporta il parser del layout, ma si applicano le seguenti limitazioni:

  • Inserisci la dimensione massima del file di input di 20 MB per tutti i tipi di file.
  • È consentito un massimo di 500 pagine per file PDF.

Si applicano le quote e i prezzi di Document AI.

Abilitare l'API Document AI

Devi abilitare l'API Document AI per il progetto. Per ulteriori informazioni sull'abilitazione delle API, consulta la documentazione sull'utilizzo dei servizi.

Abilita l'API Document AI.

Ruoli richiesti per abilitare le API

Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

Abilita l'API

Attivare il parser del layout

Per attivare il parser del layout:

  1. Crea un parser del layout seguendo le istruzioni riportate in Creare e gestire i processori.

    Il nome del tipo di processore è LAYOUT_PARSER_PROCESSOR.

  2. Abilita il parser del layout seguendo le istruzioni riportate in Abilitare un processore.

La knowledge base RAG (corpus)

Se non hai un corpus RAG, creane uno. Ad esempio, vedi l'esempio di creazione di un corpus RAG.

Se hai già un corpus RAG, i file esistenti importati senza un parser del layout non verranno reimportati quando importi i file utilizzando il parser del layout. Se vuoi utilizzare un parser del layout con i tuoi file, eliminali prima. Ad esempio, vedi l'esempio di eliminazione di un file RAG .

Importare file utilizzando il parser del layout

È possibile importare file e cartelle da varie origini utilizzando il parser del layout.

Python

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, vedi Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python.

Sostituisci le seguenti variabili utilizzate nell'esempio di codice:

  • PROJECT_ID: l'ID progetto.
  • LOCATION: la regione in cui elaborare la richiesta.
  • RAG_CORPUS_ID: l'ID della risorsa del corpus RAG.
  • GCS_URIS: un elenco di percorsi di Cloud Storage. Ad esempio: "gs://my-bucket1", "gs://my-bucket2".
  • LAYOUT_PARSER_PROCESSOR_NAME: il percorso della risorsa del processore del parser del layout creato. Ad esempio: "projects/{project}/locations/{location}/processors/{processor_id}".
  • CHUNK_SIZE: (facoltativo) il numero di token che ogni blocco deve avere.
from vertexai import rag
import vertexai

PROJECT_ID = YOUR_PROJECT_ID
corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"
paths = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]  # Supports Cloud Storage and Google Drive.

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")

response = rag.import_files(
    corpus_name=corpus_name,
    paths=paths,
    transformation_config=rag.TransformationConfig(
        rag.ChunkingConfig(chunk_size=1024, chunk_overlap=256)
    ),
    import_result_sink="gs://sample-existing-folder/sample_import_result_unique.ndjson",  # Optional: This must be an existing storage bucket folder, and the filename must be unique (non-existent).
    layout_parser=rag.LayoutParserConfig(
      processor_name="projects/{PROJECT_ID}/locations/us/processors/{processor_id}/processorVersions/{processor_version_id}",
      max_parsing_requests_per_min=120,
    ),
    max_embedding_requests_per_min=900,  # Optional
)
print(f"Import response: {response}")

REST

L'esempio di codice mostra come importare i file di Cloud Storage utilizzando il parser del layout. Per ulteriori opzioni di configurazione, inclusa l'importazione di file da un'altra origine, consulta il ImportRagFilesConfig riferimento.

Prima di utilizzare i dati della richiesta, sostituisci le seguenti variabili utilizzate nell'esempio di codice:

  • PROJECT_ID: l'ID progetto.
  • LOCATION: la regione in cui elaborare la richiesta.
  • RAG_CORPUS_ID: l'ID della risorsa del corpus RAG.
  • GCS_URIS: un elenco di percorsi di Cloud Storage. Ad esempio: "gs://my-bucket1", "gs://my-bucket2".
  • LAYOUT_PARSER_PROCESSOR_NAME: il percorso della risorsa del processore del parser del layout creato. Ad esempio: "projects/{project}/locations/{location}/processors/{processor_id}".
  • CHUNK_SIZE: (facoltativo) il numero di token che ogni blocco deve avere.
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import

Corpo JSON della richiesta:

{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": "GCS_URIS"
    },
    "rag_file_parsing_config": {
      "layout_parser": {
        "processor_name": "LAYOUT_PARSER_PROCESSOR_NAME"
      }
    },
    "rag_file_transformation_config": {
      "rag_file_chunking_config": {
        "fixed_length_chunking": {
          "chunk_size": CHUNK_SIZE
        }
      }
    },
  }
}

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json ed esegui il comando seguente:

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"

Powershell

Salva il corpo della richiesta in un file denominato request.json ed esegui il comando seguente:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content

Query di recupero

Quando un utente pone una domanda o fornisce un prompt, il componente di recupero in RAG esegue una ricerca nella knowledge base per trovare informazioni pertinenti alla query.

Per un esempio di recupero di file RAG da un corpus in base a un testo di query, vedi Query di recupero.

Previsione

La previsione genera una risposta fondata utilizzando i contesti recuperati. Per un esempio, vedi Generazione.

Passaggi successivi