Ancrer des réponses pour les modèles Gemini

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 un point d'entrée dans la recherche Google lorsque vous utilisez cette fonctionnalité. Pour en savoir plus sur ces exigences, consultez la section Point d'entrée de la 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.0 Pro

Si vous utilisez l'ancrage avec la recherche Google, nous vous suggérons d'utiliser 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.

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.
  • MODEL : projects/acme/locations/us-central1/publishers/google/models/gemini-pro
  • ROLE : rôle dans une conversation associée au contenu. La spécification d'un rôle est requise, même dans les cas d'utilisation à un seul tour. Les valeurs acceptées incluent les suivantes : USER : spécifie le contenu que vous envoyez.
  • TOOLS : ressource que vous utilisez pour l'ancrage. Utilisez googleSearchRetrieval pour l'ancrage avec la recherche Google.
  • TEXT : instructions textuelles à inclure dans l'invite.

Méthode HTTP et URL :

POST https://LOCATION-prediction-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": MODEL
}'

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's forecast: Today, March 1st, the weather is rainy, overcast, and chilly with highs in the low 50s. A jacket for the evenings is recommended, since the evenings will be closer to 30 degrees."
              }
           ]
        },
        "finishReason":"STOP",
        "safetyRatings":[
           "..."
        ],
        "groundingMetadata":{
           "webSearchQueries":[
              "What's the weather in Chicago this weekend and do I need to bring a coat?"
           ]
        }
     }
  ],
  "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 Multimodale.
  3. Cliquez sur Ouvrir pour afficher la page de conception d'invite unique.
  4. Dans le panneau latéral, cliquez sur Paramètres avancés pour afficher les paramètres avancés.
  5. Cliquez sur le bouton Activer l'ancrage.
  6. Cliquez sur Personnaliser et définissez la recherche Google comme source.
  7. Saisissez votre invite dans la zone de texte et cliquez sur Envoyer.

Vos réponses d'invite sont désormais basées sur la recherche Google.

Python

Pour savoir comment installer ou mettre à jour le SDK pour Python, consultez la page Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.

from typing import Optional

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

def generate_text_with_grounding(
    project_id: str, location: str, data_store_path: Optional[str] = None
) -> GenerationResponse:
    # Initialize Vertex AI
    vertexai.init(project=project_id, location=location)

    # Load the model
    model = GenerativeModel(model_name="gemini-1.0-pro")

    # Create Tool for grounding
    if data_store_path:
        # Use Vertex AI Search data store
        # Format: projects/{project_id}/locations/{location}/collections/default_collection/dataStores/{data_store_id}
        tool = Tool.from_retrieval(
            grounding.Retrieval(grounding.VertexAISearch(datastore=data_store_path))
        )
    else:
        # Use Google Search for grounding (Private Preview)
        tool = Tool.from_google_search_retrieval(grounding.GoogleSearchRetrieval())

    prompt = "What are the price, available colors, and storage size options of a Pixel Tablet?"
    response = model.generate_content(prompt, tools=[tool])

    print(response)

Comprendre votre réponse

Si l'invite 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 l'invite ne sera pas fondé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. Elles aident les utilisateurs à valider les réponses des éditeurs eux-mêmes et offrent des possibilités d'apprentissage supplémentaire.

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 Gemini 1.0 Pro sur un datastore Vertex AI Search à l'aide de l'API Vertex AI.

Les modèles suivants sont compatibles avec l'ancrage :

  • Gemini 1.0 Pro

Certaines conditions préalables sont requises avant de pouvoir ancrer Gemini 1.0 Pro.

  1. Activez Vertex AI Search et activez l'API.
  2. Créer une source de données et une application Vertex AI Search
  3. Associer votre data store à votre application dans Vertex AI Search. La source de données sert de base pour l'ancrage de Gemini 1.0 Pro dans Vertex AI.
  4. Activer l'édition Enterprise pour votre data store.

Pour en savoir plus, consultez la Présentation de Vertex AI Search.

Activer Vertex AI Search

  1. Dans la console Google Cloud, accédez à la page Search and Conversation.

    Search and Conversation

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

Vertex AI Search est disponible dans l'emplacement global ou dans les emplacements multirégionaux eu et us. Pour en savoir plus, consultez la section Emplacements Vertex AI Search.

Créer un data store dans Vertex AI Search

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 Search.

Si vous partez de zéro, vous devez préparer vos données pour l'ingestion dans Vertex AI Search. 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.

Ancrer le modèle Gemini 1.0 Pro

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 Search et cliquez sur Data stores dans le menu de navigation. <a{: class="button button-primary" l10n-attrs-original-order="href,target,class,track-name,track-type" l10n-encrypted-href="BU2UnTd/bvXw0I31NoHStFtigmNHgUGOXn/QVSGplOhB4J1rwNxdLslXsSNCBkPOFvWIDj0tv6yobddHSWXSow==" target="console" track-name="consoleLink" track-type="tasks" }="">Accéder à la page Data stores</a{:>
  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 invite de texte à l'aide de l'API Vertex AI, envoyez une requête POST au point de terminaison du modèle de l'éditeur.

PROJECT_ID=PROJECT_ID
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"  https://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:generateContent -d '{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": TEXT
    }]
  }],
  "model": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro",
  "tools": [{
    "retrieval": {
      "vertexAiSearch": {
        "datastore": projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID
      }
    }
  }]
}

Python

Pour savoir comment installer ou mettre à jour le SDK pour Python, consultez la page Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.

from typing import Optional

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

def generate_text_with_grounding(
    project_id: str, location: str, data_store_path: Optional[str] = None
) -> GenerationResponse:
    # Initialize Vertex AI
    vertexai.init(project=project_id, location=location)

    # Load the model
    model = GenerativeModel(model_name="gemini-1.0-pro")

    # Create Tool for grounding
    if data_store_path:
        # Use Vertex AI Search data store
        # Format: projects/{project_id}/locations/{location}/collections/default_collection/dataStores/{data_store_id}
        tool = Tool.from_retrieval(
            grounding.Retrieval(grounding.VertexAISearch(datastore=data_store_path))
        )
    else:
        # Use Google Search for grounding (Private Preview)
        tool = Tool.from_google_search_retrieval(grounding.GoogleSearchRetrieval())

    prompt = "What are the price, available colors, and storage size options of a Pixel Tablet?"
    response = model.generate_content(prompt, tools=[tool])

    print(response)

Console

Pour ancrer la sortie de votre modèle sur Vertex AI Search à 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 Langues.
  3. Cliquez sur Invite de texte pour afficher la page de conception d'invite unique.
  4. Dans le panneau latéral, cliquez sur Paramètres avancés pour afficher les paramètres avancés.
  5. Cliquez sur le bouton Activer l'ancrage pour activer l'ancrage.
  6. Cliquez sur Personnaliser et définissez Vertex AI Search comme source. Le chemin d'accès doit respecter le format suivant : projects/project_id/locations/global/collections/default_collection/dataStores/data_store_id.
  7. Saisissez votre invite dans la zone de texte et cliquez sur Envoyer.

Vos réponses d'invite sont désormais basées sur Vertex AI Search.

Étapes suivantes