Utilizzare il parser LLM

Questa pagina spiega come utilizzare il parser LLM del motore RAG di Vertex AI.

Introduzione

Vertex AI RAG Engine utilizza i modelli LLM per l'analisi dei documenti. Gli LLM hanno la capacità di elaborare efficacemente i documenti nei seguenti modi:

  • Comprendere e interpretare contenuti semantici in vari formati.
  • Recupera i segmenti di documenti pertinenti.
  • Estrai informazioni significative dai documenti.
  • Identificare le sezioni pertinenti nei documenti.
  • Riassumere con precisione documenti complessi.
  • Comprendere e interagire con le immagini.
  • Estrai dati da grafici e diagrammi.
  • Descrivi le immagini.
  • Comprendere le relazioni tra grafici e testo.
  • Fornire risposte più accurate e ricche di contesto.

Le funzionalità del motore RAG di Vertex AI migliorano significativamente la qualità delle risposte generate.

Modelli supportati

Il parser LLM supporta solo i modelli Gemini. Se hai abilitato l'API RAG, hai accesso ai modelli supportati. Per un elenco dei modelli di generazione supportati, consulta Modelli generativi.

Tipi di file supportati

I seguenti tipi di file sono supportati dal parser LLM:

  • application/pdf
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif

Prezzi e quote

Per i dettagli sui prezzi, consulta la pagina Prezzi di Vertex AI.

Per le quote applicabili, consulta Quote delle richieste.

Il parser LLM chiama i modelli Gemini per analizzare i tuoi documenti. Questa operazione genera costi aggiuntivi, che vengono addebitati al tuo progetto. Il costo può essere stimato approssimativamente utilizzando questa formula:

cost = number_of_document_files * average_pages_per_document *
(average_input_tokens * input_token_pricing_of_selected_model +
average_output_tokens * output_token_pricing_of_selected_model)

Ad esempio, hai 1000 file PDF e ogni file PDF ha 50 pagine. La pagina media di un PDF contiene 500 token e ne servono altri 100 per il prompt. L'output medio è di 100 token.

Gemini 2.0 Flash-Lite viene utilizzato nella configurazione per l'analisi e costa 0,075 $per 1 milione di token di input e 0,3 $per i token di testo di output.

cost = 1,000 * 50 * (600 * 0.075 / 1M + 100 * 0.3 / 1M) = 3.75

Il costo è di 3,75 $.

Importare file con LlmParser abilitato

Sostituisci i valori nelle seguenti variabili utilizzate negli esempi di codice:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud .
  • LOCATION: la regione in cui viene elaborata la richiesta.
  • RAG_CORPUS_RESOURCE: l'ID del tuo corpus.
  • GCS_URI: l'URI Cloud Storage dei file che vuoi importare.
  • GOOGLE_DRIVE_URI: l'URI di Google Drive dei file che vuoi importare.
  • MODEL_NAME: il nome della risorsa del modello utilizzato per l'analisi.

    Formato: projects/{project_id}/locations/{location}/publishers/google/models/{model_id}

  • CUSTOM_PARSING_PROMPT: (facoltativo) Prompt personalizzato configurato dal cliente per l'utilizzo del parser LLM per l'analisi dei documenti.
  • MAX_PARSING_REQUESTS_PER_MIN: (facoltativo) Il numero massimo di richieste che il job può effettuare al modello Vertex AI al minuto. Per ulteriori informazioni, consulta Limiti di frequenza dell'AI generativa su Vertex AI e la pagina Quote e limiti di sistema per il tuo progetto per impostare un valore appropriato.

REST

  curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_RESOURCE/ragFiles:import" -d '{
    "import_rag_files_config": {
      "gcs_source": {
        "uris":  ["GCS_URI", "GOOGLE_DRIVE_URI"]
      },
      "rag_file_chunking_config": {
        "chunk_size": 512,
        "chunk_overlap": 102
      },
      "rag_file_parsing_config": {
        "llm_parser": {
          "model_name": "MODEL_NAME",
          "custom_parsing_prompt": "CUSTOM_PARSING_PROMPT"
          "max_parsing_requests_per_min": "MAX_PARSING_REQUESTS_PER_MIN"
        }
      }
    }
  }'

Python

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

  from vertexai import rag
  import vertexai

  PROJECT_ID = "PROJECT_ID"
  CORPUS_NAME = "RAG_CORPUS_RESOURCE"
  LOCATION = "LOCATION"
  MODEL_ID = "MODEL_ID"
  MODEL_NAME = "projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL_ID}"
  MAX_PARSING_REQUESTS_PER_MIN = MAX_PARSING_REQUESTS_PER_MIN # Optional
  CUSTOM_PARSING_PROMPT = "Your custom prompt" # Optional

  PATHS = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]

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

  transformation_config = rag.TransformationConfig(
      chunking_config=rag.ChunkingConfig(
          chunk_size=1024, # Optional
          chunk_overlap=200, # Optional
      ),
  )

  llm_parser_config = rag.LlmParserConfig(
      model_name = MODEL_NAME,
      max_parsing_requests_per_min=MAX_PARSING_REQUESTS_PER_MIN, # Optional
      custom_parsing_prompt=CUSTOM_PARSING_PROMPT, # Optional
  )

  rag.import_files(
      CORPUS_NAME,
      PATHS,
      llm_parser=llm_parser_config,
      transformation_config=transformation_config,
  )

Prompting

Il parser LLM di Vertex AI RAG Engine utilizza un prompt predefinito e ottimizzato per l'analisi dei documenti. Tuttavia, se hai documenti specializzati che potrebbero non essere adatti a un prompt generale, hai la possibilità di specificare il prompt di analisi personalizzato quando utilizzi l'API. Quando richiedi a Gemini di analizzare i tuoi documenti, l'app Vertex AI RAG Engine aggiunge un prompt al prompt di sistema predefinito.

Tabella dei modelli di prompt

Per facilitare l'analisi dei documenti, la tabella seguente fornisce un esempio di modello di prompt per guidarti nella creazione di prompt che il motore RAG di Vertex AI può utilizzare per analizzare i tuoi documenti:

Istruzione Dichiarazione del modello Esempio
Specifica il ruolo. Sei un/a [specifica il ruolo, ad esempio un estrattore di dati fattuali o un recuperatore di informazioni]. Sei un recuperatore di informazioni.
Specifica l'attività. Estrai [specifica il tipo di informazioni, ad esempio affermazioni fattuali, dati chiave o dettagli specifici] da [specifica l'origine del documento, ad esempio un documento, un testo, un articolo, un'immagine, una tabella]. Estrai i dati chiave dal file sample.txt.
Spiega come vuoi che il modello LLM generi l'output in base ai tuoi documenti. Presenta ogni fatto in un [specifica il formato di output, ad esempio un elenco strutturato o un formato di testo] e collega alla sua [specifica la posizione di origine, ad esempio una pagina, un paragrafo, una tabella o una riga]. Presenta ogni fatto in un elenco strutturato e crea un link alla relativa pagina di esempio.
Evidenzia ciò su cui deve concentrarsi l'LLM. Estrai [Specifica i tipi di dati chiave, ad esempio nomi, date, numeri, attributi o relazioni] esattamente come indicato. Estrai nomi e date.
Evidenzia ciò che vuoi che il LLM eviti. [Elenca le azioni da evitare, come analisi, interpretazione, riepilogo, deduzione o espressione di opinioni]. Estrai solo ciò che è esplicitamente indicato nel documento. Non esprimere opinioni. Estrai solo ciò che è esplicitamente indicato nel documento.

Indicazioni generali

Segui queste linee guida per scrivere il prompt da inviare al parser LLM.

  • Specifico: definisci chiaramente l'attività e il tipo di informazioni da estrarre.
  • Dettagliate: fornisci istruzioni dettagliate su formato di output, attribuzione dell'origine e gestione di diverse strutture di dati.
  • Limitazione: indica esplicitamente cosa non deve fare l'AI, ad esempio analisi o interpretazione.
  • Chiaro: utilizza un linguaggio chiaro e direttivo.
  • Strutturate: organizza le istruzioni in modo logico utilizzando elenchi numerati o puntati per facilitarne la lettura.

Analisi della qualità dell'analisi

Questa tabella elenca i risultati degli scenari eseguiti dai clienti utilizzando il motore RAG di Vertex AI. Il feedback mostra che il parser LLM migliora la qualità dell'analisi dei documenti.

Scenario Risultato
Analisi delle informazioni nelle slide e collegamento delle sezioni Il parser LLM ha collegato correttamente i titoli delle sezioni di una slide alle informazioni dettagliate presentate nelle slide successive.
Comprendere ed estrarre informazioni dalle tabelle Il parser LLM ha correlato correttamente colonne e intestazioni all'interno di una tabella di grandi dimensioni per rispondere a domande specifiche.
Interpretare i diagrammi di flusso Il parser LLM è stato in grado di seguire la logica di un diagramma di flusso ed estrarre la sequenza corretta di azioni e le informazioni corrispondenti.
Estrazione dei dati dai grafici Il parser LLM può interpretare diversi tipi di grafici, ad esempio i grafici a linee, ed estrarre punti dati specifici in base alla query.
Acquisizione delle relazioni tra titoli e testo Il parser LLM, guidato dal prompt, ha prestato attenzione alle strutture dei titoli ed è riuscito a recuperare tutte le informazioni pertinenti associate a un determinato argomento o sezione.
Possibilità di superare i limiti di incorporamento con l'ingegneria dei prompt Sebbene inizialmente ostacolati dalle limitazioni del modello di incorporamento in alcuni casi d'uso, ulteriori esperimenti hanno dimostrato che un prompt del parser LLM ben realizzato potrebbe potenzialmente mitigare questi problemi e recuperare le informazioni corrette anche quando la comprensione semantica è difficile per il solo modello di incorporamento.

Il parser LLM migliora la capacità dell'LLM di comprendere e ragionare sul contesto all'interno di un documento, il che porta a risposte più accurate e complete.

Query di recupero

Dopo aver inserito un prompt inviato a un modello di AI generativa, il componente di recupero della RAG esegue una ricerca nella sua 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, consulta Query di recupero.

Passaggi successivi