Cette page décrit deux façons d'ancrer les réponses d'un modèle avec Vertex AI et vous montre comment faire fonctionner l'ancrage dans vos applications à l'aide de l'API d'ancrage.
Vertex AI vous permet d'ancrer les sorties de modèle à l'aide des sources de données suivantes :
- Recherche Google : ancre les réponses à l'aide de données Web accessibles au public.
- Vos données : ancre les réponses à l'aide de vos données provenant de Vertex AI Search (version preview).
Ancrage avec la recherche Google
Si vous souhaitez associer votre modèle à des connaissances du monde entier, à un large éventail de sujets ou à des informations à jour sur Internet, utilisez l'ancrage avec la recherche Google.
L'ancrage avec la recherche Google est compatible avec la récupération dynamique, qui vous permet de générer des réponses ancrées avec la recherche Google. Par conséquent, la configuration de récupération dynamique évalue si une requête nécessite des connaissances sur les événements récents et active la fonctionnalité Grounding avec la recherche Google. Pour en savoir plus, consultez la section Récupération dynamique.
Pour en savoir plus sur l'ancrage des modèles dans Vertex AI, consultez la page Présentation de l'ancrage.
Modèles compatibles
Le tableau suivant liste les modèles compatibles avec l'ancrage. Pour découvrir comment chaque modèle génère des réponses ancrées, essayez le modèle dans la console Google Cloud, puis activez l'option Ancrage.
Modèle | Description | Essayer un modèle |
---|---|---|
Gemini 1.5 Pro |
Saisie de texte uniquement | Essayer le modèle Gemini 1.5 Pro |
Gemini 1.5 Flash |
Saisie de texte uniquement | Essayer le modèle Gemini 1.5 Flash |
Gemini 1.0 Pro |
Saisie de texte uniquement | Essayer le modèle Gemini 1.0 Pro |
Gemini 2.0 Flash |
Texte, code, images, audio, vidéo, vidéo avec audio, PDF La récupération dynamique n'est pas prise en charge. Pour en savoir plus, consultez la section Considérations. |
Essayer le modèle Gemini 2.0 Flash |
Langues disponibles
Pour obtenir la liste des langues acceptées, consultez la page Langues.
Ancrer votre modèle avec la recherche Google
Suivez les instructions ci-dessous pour ancrer un modèle avec des données Web accessibles au public.
Récupération dynamique
Vous pouvez utiliser la récupération dynamique dans votre requête pour choisir quand désactiver l'ancrage dans la recherche Google. Cela est utile lorsque la requête ne nécessite pas de réponse basée sur la recherche Google et que les modèles compatibles peuvent fournir une réponse basée sur leurs connaissances sans ancrage. Cela vous permet de gérer plus efficacement la latence, la qualité et les coûts.
Avant d'appeler la configuration de récupération dynamique dans votre requête, comprenez la terminologie suivante :
Score de prédiction : lorsque vous demandez une réponse fondée, Vertex AI attribue un score de prédiction à la requête. Le score de prédiction est une valeur à virgule flottante comprise entre 0 et 1. Sa valeur dépend de la possibilité de l'ancrer avec les informations les plus récentes de la recherche Google. Par conséquent, une requête qui nécessite une réponse basée sur les faits les plus récents sur le Web a un score de prédiction plus élevé. Une requête pour laquelle une réponse générée par le modèle est suffisante a un score de prédiction plus faible.
Voici des exemples de suggestions et leurs scores de prédiction.
Requête Score de prédiction Commentaire "Écris un poème sur les pivoines" 0,13 Le modèle peut s'appuyer sur ses connaissances et la réponse n'a pas besoin d'être ancrée "Propose un jouet pour un enfant de 2 ans" 0,36 Le modèle peut s'appuyer sur ses connaissances et la réponse n'a pas besoin d'être ancrée "Peux-tu me donner la recette d'un guacamole d'inspiration asiatique ?" 0.55 La recherche Google peut fournir une réponse fondée, mais la justification n'est pas strictement nécessaire. Les connaissances du modèle peuvent suffire. "Qu'est-ce qu'Agent Builder ? Comment est facturé l'ancrage dans Agent Builder ?" 0.72 Nécessite la recherche Google pour générer une réponse pertinente "Qui a remporté le dernier Grand Prix de F1 ?" 0,97 Nécessite la recherche Google pour générer une réponse pertinente Seuil : dans votre requête, vous pouvez spécifier une configuration de récupération dynamique avec un seuil. Le seuil est une valeur à virgule flottante comprise entre 0 et 1, et sa valeur par défaut est 0,7. Si la valeur du seuil est nulle, la réponse est toujours ancrée dans la recherche Google. Pour toutes les autres valeurs de seuil, les règles suivantes s'appliquent :
- Si le score de prédiction est supérieur ou égal au seuil, la réponse est basée sur la recherche Google. Un seuil plus faible implique que davantage de requêtes ont des réponses générées à l'aide de l'ancrage avec la recherche Google.
- Si le score de prédiction est inférieur au seuil, le modèle peut générer la réponse, mais elle n'est pas ancrée dans la recherche Google.
Pour trouver un seuil adapté à vos besoins commerciaux, vous pouvez créer un ensemble représentatif de requêtes que vous êtes susceptible de rencontrer. Vous pouvez ensuite trier les requêtes en fonction du score de prédiction dans la réponse et sélectionner un seuil adapté à votre cas d'utilisation.
Remarques
Pour utiliser l'ancrage avec la recherche Google, vous devez activer les suggestions de recherche Google. Pour en savoir plus, consultez Suggestions de recherche Google.
Pour obtenir des résultats optimaux, utilisez une température de
0.0
. Pour en savoir plus sur la définition de cette configuration, consultez le corps de la requête API Gemini dans la documentation de référence du modèle.La fonctionnalité d'ancrage avec la recherche Google est limitée à un million de requêtes par jour. Si vous avez d'autres questions, contactez l'assistanceGoogle Cloud pour obtenir de l'aide.
Seuls les modèles Gemini 1.0 et Gemini 1.5 sont compatibles avec la récupération dynamique. Les modèles Gemini 2.0 ne sont pas compatibles avec la récupération dynamique.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- LOCATION : région dans laquelle traiter la requête.
- PROJECT_ID : l'ID de votre projet.
- MODEL_ID : ID du modèle multimodal. Seuls les modèles Gemini 1.0 et Gemini 1.5 sont compatibles avec la récupération dynamique. Les modèles Gemini 2.0 ne sont pas compatibles avec la récupération dynamique.
- TEXT : instructions textuelles à inclure dans la requête.
- DYNAMIC_THRESHOLD : champ facultatif permettant de définir le seuil pour appeler la configuration de récupération dynamique. Il s'agit d'une valeur à virgule flottante comprise entre 0 et 1. Si vous ne définissez pas le champ
dynamicThreshold
, la valeur du seuil est définie par défaut sur 0,7.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent
Corps JSON de la requête :
{ "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" }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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": { "..." } }
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Node.js.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
LOCATION: région dans laquelle traiter la requête.
PROJECT_ID: ID de votre projet.
MODEL_ID: ID du modèle multimodal. Seuls les modèles Gemini 1.0 et Gemini 1.5 sont compatibles avec la récupération dynamique. Les modèles Gemini 2.0 ne sont pas compatibles avec la récupération dynamique.
TEXT: instructions textuelles à inclure dans la requête.
DYNAMIC_THRESHOLD: champ facultatif permettant de définir le seuil pour appeler la configuration de récupération dynamique. Il s'agit d'une valeur à virgule flottante comprise dans la plage
[0,1]
. Si vous ne définissez pas le champdynamicThreshold
, la valeur du seuil est définie par défaut sur0.7
.
const {VertexAI} = require('@google-cloud/vertexai');
// Initialize Vertex with your Cloud project and location
const vertex_ai = new VertexAI({project: PROJECT_ID, location: LOCATION});
const model = MODEL_ID;
// Instantiate the models
const generativeModel = vertex_ai.preview.getGenerativeModel({
model: model,
generationConfig: {
'maxOutputTokens': 8192,
'temperature': 1,
'topP': 0.95,
},
safetySettings: [
{
'category': 'HARM_CATEGORY_HATE_SPEECH',
'threshold': 'OFF',
},
{
'category': 'HARM_CATEGORY_DANGEROUS_CONTENT',
'threshold': 'OFF',
},
{
'category': 'HARM_CATEGORY_SEXUALLY_EXPLICIT',
'threshold': 'OFF',
},
{
'category': 'HARM_CATEGORY_HARASSMENT',
'threshold': 'OFF',
}
],
tools: [
{
googleSearchRetrieval: {
dynamicRetrievalConfig: {
mode: "MODE_DYNAMIC",
dynamicThreshold: DYNAMIC_THRESHOLD
}
},
},
],
});
async function generateContent() {
const req = {
contents: [
{role: 'user', parts: [{text: `TEXT`}]}
],
};
const streamingResp = await generativeModel.generateContentStream(req);
for await (const item of streamingResp.stream) {
process.stdout.write('stream chunk: ' + JSON.stringify(item) + '\n');
}
process.stdout.write('aggregated response: ' + JSON.stringify(await streamingResp.response));
}
generateContent();
Console
Pour utiliser l'ancrage avec la recherche Google avec Vertex AI Studio, procédez comme suit :
- Dans la console Google Cloud, accédez à la page Studio Vertex AI.
- Cliquez sur l'onglet Forme libre.
- Dans le panneau latéral, cliquez sur le bouton d'activation Ancrer des réponses de modèle.
- Cliquez sur Personnaliser et définissez la recherche Google comme source.
- Saisissez votre requête dans la zone de texte et cliquez sur Envoyer.
Vos réponses de requête sont désormais basées sur la recherche Google.
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Comprendre votre réponse
Si la requête de votre modèle est correctement ancrée dans la recherche Google depuis Vertex AI Studio ou depuis l'API, les réponses incluent des métadonnées avec des liens sources (URL Web). Toutefois, il existe plusieurs raisons pour lesquelles ces métadonnées peuvent ne pas être fournies et la réponse de la requête ne sera pas ancrée. Cela peut être dû à une faible pertinence de la source ou à des informations incomplètes dans la réponse du modèle.
Citations
Nous vous recommandons vivement d'afficher des citations. Elles aident les utilisateurs à valider les réponses des éditeurs eux-mêmes et à trouver d'autres moyens d'apprendre.
Les citations des réponses provenant de sources de la recherche Google doivent être affichées à la fois de manière intégrée et globale. Consultez l'image suivante pour savoir comment procéder.
Utilisation d'options de moteur de recherche alternatives
L'utilisation de la fonctionnalité de référencement avec la recherche Google par le Client ne l'empêche pas d'offrir d'autres options de moteur de recherche, de définir ces options comme option par défaut pour les applications du Client ou d'afficher ses propres suggestions de recherche ou résultats de recherche dans les applications du Client, à condition que ces services autres que la recherche Google ou les résultats associés soient affichés séparément des résultats de référencement et des suggestions de recherche, et qu'ils ne puissent pas raisonnablement être attribués à Google ni être confondus avec les résultats fournis par Google.
Ancrer Gemini sur vos données
Cette section vous explique comment ancrer des réponses textuelles dans un data store Vertex AI Agent Builder à l'aide de l'API Vertex AI. Vous ne pouvez pas spécifier un datastore de données de recherche sur un site Web comme source d'ancrage.
Modèles compatibles
Les modèles suivants sont compatibles avec l'ancrage :
- Gemini 1.5 Pro avec saisie de texte uniquement
- Gemini 1.5 Flash avec saisie de texte uniquement
- Gemini 1.0 Pro avec saisie de texte uniquement
- Gemini 2.0 Flash
Prérequis
Certaines conditions préalables sont requises avant de pouvoir ancrer la sortie du modèle à vos données.
- Activez Vertex AI Agent Builder et activez l'API.
- Créer une source de données et une application Vertex AI Agent Builder
- Associez votre data store à votre application dans Vertex AI Agent Builder. La source de données sert de base pour l'ancrage de Gemini 1.0 Pro dans Vertex AI. Vous ne pouvez pas spécifier un datastore de données de recherche sur un site Web comme source d'ancrage.
- Activez l'édition Enterprise pour votre data store.
Pour en savoir plus, consultez la Présentation de Vertex AI Search.
Activer Vertex AI Agent Builder
Dans la console Google Cloud, accédez à la page Agent Builder.
Lisez et acceptez les conditions d'utilisation, puis cliquez sur Continuer et activer l'API.
Vertex AI Agent Builder est disponible dans l'emplacement global
ou dans les emplacements multirégionaux eu
et us
. Pour en savoir plus, consultez la page Emplacements Vertex AI Agent Builder.
Créer un data store dans Vertex AI Agent Builder
Pour ancrer vos modèles sur vos données sources, vous devez avoir préparé et enregistré vos données dans Vertex AI Search. Pour ce faire, vous devez créer un data store dans Vertex AI Agent Builder.
Si vous partez de zéro, vous devez préparer vos données pour l'ingestion dans Vertex AI Agent Builder. Pour commencer, consultez la page Préparer les données pour l'ingestion. Selon la taille de vos données, l'ingestion peut prendre de quelques minutes à plusieurs heures. Seuls les data stores non structurés sont compatibles avec l'ancrage.
Une fois que vous avez préparé vos données pour l'ingestion, vous pouvez Créer un data store de recherche. Une fois que vous avez créé un data store, vous devez Créer une application de recherche à associer à ce data store et activer l'édition Enterprise.
Exemple : Ancrer le modèle Flash Gemini 1.5
Suivez les instructions ci-dessous pour ancrer un modèle avec vos propres données.
Si vous ne connaissez pas votre ID de data store, procédez comme suit :
Dans la console Google Cloud, accédez à la page Vertex AI Agent Builder et cliquez sur Data stores (Dépôts de données) dans le menu de navigation.
Cliquez sur le nom de votre data store.
Sur la page Données de votre data store, obtenez l'ID du data store. Vous ne pouvez pas spécifier un datastore de données de recherche sur un site Web comme source de référence.
REST
Pour tester une requête de texte à l'aide de l'API Vertex AI, envoyez une requête POST au point de terminaison du modèle de l'éditeur.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- LOCATION : région dans laquelle traiter la requête.
- PROJECT_ID : l'ID de votre projet.
- MODEL_ID : ID du modèle multimodal.
- TEXT : instructions textuelles à inclure dans la requête.
Méthode HTTP et URL :
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent
Corps JSON de la requête :
{ "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" }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "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": { "..." } }
Comprendre la réponse ancrée dans la recherche Google
Lorsqu'un résultat ancré est généré, les métadonnées contiennent un URI qui redirige vers l'éditeur du contenu utilisé pour générer le résultat ancré. Les métadonnées contiennent également le domaine de l'éditeur. Les URI fournis restent accessibles pendant 30 jours après la génération du résultat.
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Console
Pour ancrer la sortie de votre modèle sur Vertex AI Agent Builder à l'aide de Vertex AI Studio dans la console Google Cloud, procédez comme suit :
- Dans la console Google Cloud, accédez à la page Studio Vertex AI.
- Cliquez sur l'onglet Forme libre.
- Dans le panneau latéral, cliquez sur le bouton Ancrer les réponses du modèle pour activer l'ancrage.
- Cliquez sur Personnaliser et définissez Vertex AI Agent Builder comme source. Le chemin d'accès doit respecter le format suivant : projects/project_id/locations/global/collections/default_collection/dataStores/data_store_id.
- Saisissez votre requête dans la zone de texte et cliquez sur Envoyer.
Vos réponses aux requêtes sont désormais basées sur Vertex AI Agent Builder.
Autres ressources sur l'IA générative
- Pour savoir comment envoyer des requêtes d'invite de chat, consultez la section Chat multi-échanges.
- Pour en savoir plus sur les bonnes pratiques d'IA responsable et les filtres de sécurité de Vertex AI, consultez Bonnes pratiques de sécurité.
- Pour savoir comment ancrer les modèles PaLM, consultez la section Ancrage dans Vertex AI.