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
- Per scoprire di più su Vertex AI RAG Engine, consulta la panoramica di Vertex AI RAG Engine.
- Per scoprire di più su Vertex AI RAG Engine, consulta API Vertex AI RAG Engine.