Ancrer des réponses pour les modèles Gemini

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

Utilisez l'ancrage avec la recherche Google si vous souhaitez associer le modèle à des connaissances du monde entier, à un large éventail de sujets ou à des informations à jour sur Internet.

Vous devez afficher les suggestions de recherche Google lorsque vous utilisez cette fonctionnalité. Pour en savoir plus sur ces exigences, consultez Suggestions de recherche Google.

Pour en savoir plus sur l'ancrage des modèles dans Vertex AI, consultez la page Présentation de l'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

Langues disponibles

  • Anglais (en)
  • Espagnol (es)
  • Japonais (ja)

Suivez les instructions ci-dessous pour ancrer un modèle avec des données Web accessibles au public.

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.

  • L'ancrage avec la recherche Google a une limite d'un million de requêtes par jour. Si vous en avez besoin d'un plus grand nombre, contactez votre équipe d'assistance.

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.
  • 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": [{
    "googleSearchRetrieval": {}
  }],
  "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": "....................."
         }
       }
     }
   ],
   "usageMetadata": { "..."
   }
 }

Console

Pour utiliser l'ancrage avec la recherche Google avec Vertex AI Studio, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Studio Vertex AI.

    Accéder à Vertex AI Studio

  2. Cliquez sur l'onglet Freeform (Forme libre).
  3. Dans le panneau latéral, cliquez sur le bouton d'activation Ancrer des réponses de modèle.
  4. Cliquez sur Personnaliser et définissez la recherche Google comme source.
  5. 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.

import vertexai

from vertexai.generative_models import (
    GenerationConfig,
    GenerativeModel,
    Tool,
    grounding,
)

# TODO (developer): update project_id
vertexai.init(project=PROJECT_ID, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-002")

# Use Google Search for grounding
tool = Tool.from_google_search_retrieval(grounding.GoogleSearchRetrieval())

prompt = "When is the next total solar eclipse in US?"
response = model.generate_content(
    prompt,
    tools=[tool],
    generation_config=GenerationConfig(
        temperature=0.0,
    ),
)

print(response.text)

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. Ces raisons incluent 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. Ils aident les utilisateurs à valider les réponses des éditeurs eux-mêmes et à découvrir de nouvelles possibilités d'apprentissage.

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 découvrir comment procéder.

Exemples de citation

Utilisation d'options de moteur de recherche alternatives

L'utilisation de l'ancrage avec la recherche Google n'empêche pas le Client de proposer d'autres options de moteur de recherche, d'utiliser d'autres options de recherche par défaut pour les applications client, ni d'afficher des suggestions ou résultats de recherche propres ou tierces dans les Applications du Client, à condition que ces services de recherche autres que Google ou les résultats associés s'affichent séparément des résultats et des points d'entrée de la recherche ancrés, et ne puissent pas être attribués avec raisons 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.

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

Prérequis

Certaines conditions préalables sont requises avant de pouvoir ancrer les résultats du modèle sur vos données.

  1. Activez Vertex AI Agent Builder et activez l'API.
  2. Créer une source de données et une application Vertex AI Agent Builder
  3. 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.
  4. 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

  1. Dans la console Google Cloud, accédez à la page Agent Builder.

    Agent Builder

  2. Lisez et acceptez les conditions d'utilisation, puis cliquez sur Continuer et activer l'API.

Vertex AI Agent Builder est disponible à 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 :

  1. Dans la console Google Cloud, accédez à la page Vertex AI Agent Builder et cliquez sur Data stores dans le menu de navigation.

    Accéder à la page "Datastores"

  2. Cliquez sur le nom de votre data store.

  3. Sur la page Données de votre data store, obtenez l'ID du data store.

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.

import vertexai

from vertexai.preview.generative_models import (
    GenerationConfig,
    GenerativeModel,
    Tool,
    grounding,
)

# TODO (developer): update project_id
vertexai.init(project=PROJECT_ID, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-002")

# TODO(developer): Update project id, location, and data store id for your Vertex AI Search data store.
# data_store_id = "DATA_STORE_ID"

tool = Tool.from_retrieval(
    grounding.Retrieval(
        grounding.VertexAISearch(
            datastore=data_store_id,
            project=PROJECT_ID,
            location="global",
        )
    )
)

prompt = "How do I make an appointment to renew my driver's license?"
response = model.generate_content(
    prompt,
    tools=[tool],
    generation_config=GenerationConfig(
        temperature=0.0,
    ),
)

print(response.text)

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 :

  1. Dans la console Google Cloud, accédez à la page Studio Vertex AI.

    Accéder à Vertex AI Studio

  2. Cliquez sur l'onglet Freeform (Forme libre).
  3. Dans le panneau latéral, cliquez sur le bouton Ground model responses (Ancrer les réponses du modèle) pour activer l'ancrage.
  4. 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.
  5. 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