AI generativa, il grounding è la capacità di collegare l'output del modello a le fonti di informazione. Se fornisci ai modelli l'accesso a origini dati specifiche, la loro output viene ancorata a questi dati e si riducono le probabilità di inventare contenuti.
Con Vertex AI, puoi stabilire gli output dei modelli nei seguenti modi:
- Sfruttare la Ricerca Google per creare un modello dati web disponibili pubblicamente.
- Esegui il grounding in base ai tuoi dati: esegui il grounding di un modello con i tuoi dati di Vertex AI Search come datastore (anteprima).
Per ulteriori informazioni sul grounding, consulta la Panoramica sul grounding.
Modelli supportati:
Modello | Versione |
---|---|
Gemini 1.5 Pro con solo input di testo | gemini-1.5-pro-002 gemini-1.5-pro-001 |
Gemini 1.5 Flash con solo input di testo | gemini-1.5-flash-002 gemini-1.5-flash-001 |
Gemini 1.0 Pro con solo input di testo | gemini-1.0-pro-001 gemini-1.0-pro-002 |
Limitazioni
- La funzionalità di messa a terra supporta solo le origini dati in inglese, spagnolo e giapponese.
- Il grounding è disponibile solo per le richieste di testo.
Sintassi di esempio
Sintassi per basare un modello.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent \ -d '{ "contents": [{ ... }], "tools": [{ "retrieval": { "googleSearchRetrieval": {} } }], "model": "" }'
Elenco dei parametri
Per informazioni dettagliate sull'implementazione, consulta gli esempi.
GoogleSearchRetrieval
Basa la risposta su dati pubblici.
Parametri | |
---|---|
|
Obbligatorio: Dati a livello del suolo disponibili pubblicamente sul web. |
Retrieval
Esegui il grounding della risposta con i dati privati di Vertex AI Search come datastore. Definisce uno strumento di recupero che il modello può chiamare per accedere alla conoscenza esterna.
Parametri | |
---|---|
|
Obbligatorio: Esegui il grounding con le origini dati di Vertex AI Search. |
VertexAISearch
Parametri | |
---|---|
|
Obbligatorio: ID risorsa del datastore completo di Vertex AI Search, nella
seguente formato: |
Esempi
Risposta basata su dati web pubblici utilizzando la Ricerca Google
Basate la risposta sui dati pubblici della Ricerca Google. Includi lo strumento google_search_retrieval
nella richiesta. Non sono richiesti parametri aggiuntivi.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION: la regione in cui elaborare la richiesta.
- PROJECT_ID: il tuo ID progetto.
- MODEL_ID: l'ID del modello multimodale.
- TEXT: Le istruzioni testuali da includere nel prompt.
- DYNAMIC_THRESHOLD: un campo facoltativo per impostare la soglia
per richiamare la configurazione di recupero dinamico. È un valore a virgola mobile
compreso nell'intervallo [0,1]. Se non imposti il campo
dynamicThreshold
, il valore il valore predefinito è 0,7.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent
Corpo JSON della richiesta:
{ "contents": [{ "role": "user", "parts": [{ "text": "TEXT" }] }], "tools": [{ "googleSearchRetrieval": { "dynamicRetrievalConfig": { "mode": "MODE_DYNAMIC", "dynamicThreshold": DYNAMIC_THRESHOLD } } }], "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID" }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "candidates": [ { "content": { "role": "model", "parts": [ { "text": "Chicago weather changes rapidly, so layers let you adjust easily. Consider a base layer, a warm mid-layer (sweater-fleece), and a weatherproof outer layer." } ] }, "finishReason": "STOP", "safetyRatings":[ "..." ], "groundingMetadata": { "webSearchQueries": [ "What's the weather in Chicago this weekend?" ], "searchEntryPoint": { "renderedContent": "....................." } "groundingSupports": [ { "segment": { "startIndex": 0, "endIndex": 65, "text": "Chicago weather changes rapidly, so layers let you adjust easily." }, "groundingChunkIndices": [ 0 ], "confidenceScores": [ 0.99 ] }, ] "retrievalMetadata": { "webDynamicRetrievalScore": 0.96879 } } } ], "usageMetadata": { "..." } }
Python
NodeJS
Java
Risposta diretta su dati privati utilizzando Vertex AI Search
Esegui il grounding della risposta con i dati di un datastore Vertex AI Search. Per ulteriori informazioni, vedi Vertex AI Agent Builder.
Prima di basare una risposta su dati privati, crea un datastore di ricerca.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION: la regione in cui elaborare la richiesta.
- PROJECT_ID: il tuo ID progetto.
- MODEL_ID: l'ID del modello multimodale.
- TEXT: le istruzioni di testo da includere nel prompt.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent
Corpo JSON della richiesta:
{ "contents": [{ "role": "user", "parts": [{ "text": "TEXT" }] }], "tools": [{ "retrieval": { "vertexAiSearch": { "datastore": projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID } } }], "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID" }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "candidates": [ { "content": { "role": "model", "parts": [ { "text": "You can make an appointment on the website https://dmv.gov/" } ] }, "finishReason": "STOP", "safetyRatings": [ "..." ], "groundingMetadata": { "retrievalQueries": [ "How to make appointment to renew driving license?" ], "groundingChunks": [ { "retrievedContext": { "uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AXiHM.....QTN92V5ePQ==", "title": "dmv" } } ], "groundingSupport": [ { "segment": { "startIndex": 25, "endIndex": 147 }, "segment_text": "ipsum lorem ...", "supportChunkIndices": [1, 2], "confidenceScore": [0.9541752, 0.97726375] }, { "segment": { "startIndex": 294, "endIndex": 439 }, "segment_text": "ipsum lorem ...", "supportChunkIndices": [1], "confidenceScore": [0.9541752, 0.9325467] } ] } } ], "usageMetadata": { "..." } }
Python
NodeJS
Java
Passaggi successivi
Per una documentazione dettagliata, consulta quanto segue: