Questa pagina spiega come utilizzare il parser LLM di Vertex AI RAG Engine.
Introduzione
Il motore RAG di Vertex AI utilizza gli LLM per l'analisi del documento. Gli LLM hanno la capacità di elaborare efficacemente i documenti nei seguenti modi:
- Comprendere e interpretare i contenuti semantici in vari formati.
- Recupera i chunk di documenti pertinenti.
- Estrai informazioni significative dai documenti.
- Identifica 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ù contestualmente ricche e accurate.
Le funzionalità del motore RAG di Vertex AI migliorano notevolmente la qualità delle risposte generate.
Modelli supportati
L'analisi del layout dei modelli di machine learning supporta solo i modelli Gemini. Se hai attivato l'API RAG, hai accesso ai modelli supportati. Per un elenco dei modelli di generazione supportati, consulta Modelli generativi.
Tipi di file supportati
Il parser LLM supporta i seguenti tipi di file:
application/pdf
image/png
image/jpeg
image/webp
image/heic
image/heif
Prezzi e quote
Per informazioni dettagliate sui prezzi, consulta la pagina Prezzi di Vertex AI.
Per le quote applicabili, consulta Richiedi quote.
Il parser LLM chiama i modelli Gemini per analizzare i documenti. Ciò comporta costi aggiuntivi, che vengono addebitati al 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 contiene 50 pagine. La pagina PDF media contiene 500 token e abbiamo bisogno di altri 100 token per la richiesta. L'output medio è di 100 token.
Gemini 2.0 Flash-Lite viene utilizzato nella configurazione per la sintassi 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 $.
Importa 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 corpus.
- GCS_URI: l'URI Cloud Storage dei file che vuoi importare.
- GOOGLE_DRIVE_URI: l'URI di Google Drive degli elementi 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 da parte del parser LLM per l'analisi dei documenti.
MAX_PARSING_REQUESTS_PER_MIN: facoltativo: Il numero massimo di richieste che il job può inviare al modello Vertex AI al minuto. Per ulteriori informazioni, consulta la pagina Limiti di frequenza dell'IA 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 per Python, consulta Installare l'SDK Vertex AI per Python. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python.
from vertexai.preview 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 per un prompt generico, hai la possibilità di specificare il tuo prompt di analisi personalizzato quando utilizzi l'API. Quando chiedi a Gemini di analizzare i tuoi documenti, il motore RAG di Vertex AI 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 documenti:
Istruzioni | Istruzioni del modello | Esempio |
---|---|---|
Specifica il ruolo. | Sei un/una [specifica il ruolo, ad esempio un estrattore di dati oggettivi o un'agente di recupero delle informazioni]. | Sei un'azienda che recupera 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 l'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 inserisci un link alla relativa [Specifica la posizione di origine, ad esempio una pagina, un paragrafo, una tabella o una riga]. | Presenta ogni fatto in un elenco strutturato e inserisci un link alla relativa pagina di esempio. |
Evidenzia l'oggetto dell'LLM. | Estrai [specifica i tipi di dati chiave, come nomi, date, numeri, attributi o relazioni] esattamente come indicato. | Estrai nomi e date. |
Evidenzia ciò che vuoi che l'LLM eviti. | [Elenca le azioni da evitare, ad esempio 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 all'analizzatore LLM.
- Specifica: definisci chiaramente l'attività e il tipo di informazioni da estrarre.
- Dettagliato: fornisci istruzioni dettagliate sul formato di output, sull'attribuzione della fonte e sulla gestione di strutture di dati diverse.
- Limitazioni: indica esplicitamente cosa non deve fare l'IA, ad esempio analisi o interpretazione.
- Chiaro: utilizza un linguaggio chiaro e diretto.
- Strutturate: organizza le istruzioni in modo logico utilizzando elenchi numerati o elenchi puntati per una maggiore leggibilità.
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 tra le diapositive e collegamento delle sezioni | Il parser LLM ha collegato correttamente i titoli delle sezioni in una diapositiva alle informazioni dettagliate presentate nelle diapositive successive. | |
Comprendere ed estrarre informazioni dalle tabelle | Il parser LLM ha collegato correttamente le colonne e le intestazioni all'interno di una grande tabella per rispondere a domande specifiche. | |
Interpretazione dei diagrammi di flusso | Il parser LLM è stato in grado di seguire la logica di un flusso di lavoro ed estrarre la sequenza corretta di azioni e informazioni corrispondenti. | |
Estrazione dei dati dai grafici | Il parser LLM potrebbe interpretare diversi tipi di grafici, come i grafici a linee, ed estrarre punti dati specifici in base alla query. | |
Acquisizione delle relazioni tra intestazioni e testo | Il parser LLM, guidato dal prompt, prestava attenzione alle strutture delle intestazioni e poteva recuperare tutte le informazioni pertinenti associate a un determinato argomento o sezione. | |
Potenziale per superare le limitazioni di incorporamento con l'ingegneria dei prompt | Sebbene inizialmente ostacolato dalle limitazioni del modello di embedding in alcuni casi d'uso, ulteriori esperimenti hanno dimostrato che un prompt del parser LLM ben progettato potrebbe potenzialmente mitigare questi problemi e recuperare le informazioni corrette anche quando la comprensione semantica è complessa per il solo modello di embedding. |
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 che viene inviato a un modello di IA generativa, il componente di recupero in RAG esegue una ricerca nella knowledge base per trovare le informazioni pertinenti alla query. Per un esempio di recupero di file RAG da un corpus basato su un testo di query, consulta Query di recupero.
Passaggi successivi
- Per scoprire di più su Vertex AI RAG Engine, consulta Panoramica di Vertex AI RAG Engine.
- Per scoprire di più sul motore RAG di Vertex AI, consulta API Vertex AI RAG Engine.