Nell'AI generativa, il grounding è la capacità di collegare l'output del modello a fonti di informazione verificabili. 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 basare le uscite del modello nei seguenti modi:
- Eseguire il grounding con la Ricerca Google: esegui il grounding di un modello con 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 del 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
L'aggiornamento è disponibile solo per le richieste di testo.
Sintassi di esempio
Questo esempio mostra la sintassi per basare un modello e specificare la lingua supportata. Per il supporto delle lingue, consulta Lingue.
Specifica i valori per le seguenti variabili:
- PROMPT_TEXT: la richiesta di testo che invii a un modello linguistico per ricevere una risposta.
- SYSTEM_INSTRUCTION: un insieme di istruzioni che indicano al modello come comportarsi e rispondere ai prompt.
- FACT_TEXT_1: informazioni verificate utilizzate dal modello per generare una risposta.
- TITLE_1: il nome della tua fonte di informazioni verificata.
- URI_1: una stringa che identifica in modo univoco una posizione della tua fonte di informazioni verificata.
- AUTHOR_1: il fornitore delle informazioni verificate utilizzate dal modello per generare una risposta.
- FACT_TEXT_2: informazioni verificate utilizzate dal modello per generare una risposta.
- TITLE_2: il nome della tua fonte di informazioni verificata.
- URI_2: una stringa che identifica in modo univoco una posizione della tua fonte di informazioni verificata.
- FACT_TEXT_3: informazioni verificate utilizzate dal modello per generare una risposta.
- TITLE_3: il nome della tua fonte di informazioni verificata.
- URI_3: una stringa che identifica in modo univoco una posizione della tua fonte di informazioni verificata.
- PROJECT_NUMBER: identifica in modo univoco il tuo Google Cloud progetto, che contiene le tue risorse.
- APP_ID_1: un'applicazione che interagisce con il modello.
- APP_ID_2: un'applicazione che interagisce con il modello.
- MODEL_ID: identifica il modello con cui interagisce la tua applicazione.
- LANGUAGE_CODE: identifica il linguaggio utilizzato per generare una risposta basata su dati.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_NUMBER/locations/global:generateGroundedContent" \ -d ' { "contents": [ { "role": "user", "parts": [ { "text": "PROMPT_TEXT" } ] } ], "systemInstruction": { "parts": { "text": "SYSTEM_INSTRUCTION" } }, "groundingSpec": { "groundingSources": [ { "inlineSource": { "groundingFacts": [ { "factText": "FACT_TEXT_1", "attributes": { "title": "TITLE_1", "uri": "URI_1", "author": "AUTHOR_1" } } ] } }, { "inlineSource": { "groundingFacts": [ { "factText": "FACT_TEXT_2", "attributes": { "title": "TITLE_2", "uri": "URI_2" } }, { "factText": "FACT_TEXT_3", "attributes": { "title": "TITLE_3", "uri": "URI_3" } } ] } }, { "searchSource": { "servingConfig": "projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID_1/servingConfigs/default_search" } }, { "searchSource": { "servingConfig": "projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID_2/servingConfigs/default_search" } } ] }, "generationSpec": { "modelId": "MODEL_ID", "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, }, "user_context": { "languageCode: "LANGUAGE_CODE" "latLng": { "latitude": 46.7, "longitude": 8.9 }, }'
Elenco dei parametri
Per informazioni dettagliate sull'implementazione, consulta gli esempi.
GoogleSearchRetrieval
Basate 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 alle conoscenze esterne.
Parametri | |
---|---|
|
Obbligatorio: Esegui il grounding con le origini dati di Vertex AI Search. |
VertexAISearch
Parametri | |
---|---|
|
Obbligatorio: ID risorsa del datastore completamente qualificato di Vertex AI Search, nel
seguente formato: |
Esempi
Basamento della risposta sui dati web pubblici utilizzando la Ricerca Google
Basarla 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, apporta le seguenti sostituzioni:
- LOCATION: la regione in cui elaborare la richiesta.
- PROJECT_ID: il tuo ID progetto.
- MODEL_ID: l'ID del modello multimodale. Solo i modelli Gemini 1.0 e Gemini 1.5 supportano il recupero dinamico. I modelli Gemini 2.0 non supportano il recupero dinamico.
- TEXT: le istruzioni di testo da includere nel prompt.
- DYNAMIC_THRESHOLD: un campo facoltativo per impostare la soglia per invocare la configurazione del recupero dinamico. È un valore a virgola mobile
compreso nell'intervallo [0,1]. Se non imposti il campo
dynamicThreshold
, il valore predefinito della ngưỡng è 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
Eseguire il grounding della risposta sui dati privati utilizzando Vertex AI Search
Esegui il grounding della risposta con i dati di un datastore Vertex AI Search. Per ulteriori informazioni, consulta Vertex AI Agent Builder.
Prima di basare una risposta su dati privati, crea un datastore e un'app di ricerca.
AVVERTENZA: per il momento, questa interfaccia di "messa a terra" non supporta la "modalità chunk" di Vertex AI Search.
REST
Prima di utilizzare i dati della richiesta, apporta 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 la documentazione dettagliata, consulta quanto segue: