Vérifier l'ancrage avec le RAG

Dans le cadre de votre expérience de génération augmentée par récupération (RAG) dans les applications d'IA, vous pouvez vérifier l'ancrage pour déterminer dans quelle mesure un texte (appelé candidat de réponse) est ancré dans un ensemble donné de textes de référence (appelés faits).

L'API Check Grounding renvoie un score de soutien global compris entre 0 et 1, qui indique dans quelle mesure la réponse candidate est en accord avec les faits donnés. La réponse inclut également des citations des faits qui étayent chaque affirmation de la réponse candidate.

Pour que l'ancrage soit parfait, chaque affirmation de la réponse candidate doit être étayée par un ou plusieurs des faits fournis. En d'autres termes, l'affirmation est entièrement impliquée par les faits. Si l'affirmation n'est qu'en partie impliquée, elle n'est pas considérée comme ancrée. Par exemple, l'affirmation "Google a été fondé par Larry Page et Sergey Brin en 1975" n'est que partiellement correcte (les noms des fondateurs sont corrects, mais la date est fausse). Par conséquent, l'ensemble de l'affirmation est considéré comme non ancré. Dans cette version de l'API de vérification de l'ancrage, une phrase est considérée comme une seule affirmation.

Vous pouvez utiliser l'API de vérification de l'ancrage pour vérifier n'importe quel texte. Il peut s'agir d'un texte généré par un humain ou d'une réponse générée par une machine. Un cas d'utilisation typique consiste à vérifier une réponse générée par un LLM par rapport à un ensemble de faits donnés. L'API de vérification de l'ancrage est conçue pour être rapide, avec une latence inférieure à 500 ms. Cette vitesse permet aux chatbots d'appeler l'API de vérification de l'ancrage à chaque inférence, sans ralentissement important. L'API de vérification de l'ancrage peut également fournir des références pour étayer ses conclusions, afin que les utilisateurs puissent identifier les parties fiables de la réponse générée. L'API fournit également un score d'assistance pour indiquer la précision globale de la réponse. En définissant un seuil de citation, les chatbots peuvent filtrer les réponses au moment de l'inférence qui sont susceptibles de contenir des affirmations hallucinées.

Cette page explique comment vérifier l'ancrage à l'aide de l'API check grounding.

Fonctionnalités expérimentales

Si vous souhaitez essayer les fonctionnalités expérimentales suivantes disponibles pour l'API check grounding, contactez l'équipe de votre compte Google et demandez à être ajouté à la liste d'autorisation :

  • Anti-citations : cette fonctionnalité vous fournit un score de contradiction qui indique dans quelle mesure la réponse candidate contredit les faits donnés. La réponse inclut également des citations des faits contradictoires pour chaque affirmation. Pour en savoir plus, consultez Obtenir un score de contradiction pour une réponse candidate.

  • Score d'utilité : le score d'utilité mesure la qualité de la réponse fournie par le candidat à une requête donnée. Pour en savoir plus, consultez Obtenir un score d'utilité pour une réponse candidate.

  • Ancrage avec un data store : obtenez les faits d'ancrage à partir d'un data store Vertex AI Search au lieu de fournir des faits intégrés. Pour en savoir plus, consultez Vérifier l'ancrage avec un data store.

Termes définis et expliqués

Avant d'utiliser l'API de vérification de l'ancrage, il est utile de comprendre les entrées et les sorties, et comment structurer vos faits d'ancrage pour obtenir les meilleurs résultats.

Données d'entrée

L'API de vérification de l'ancrage nécessite les entrées suivantes dans la requête.

  • Réponse candidate : une réponse candidate peut être n'importe quel élément de texte dont vous souhaitez vérifier l'ancrage. Par exemple, dans le contexte de Vertex AI Search, le candidat de réponse peut être le résumé de recherche généré qui répond à une requête. L'API détermine ensuite dans quelle mesure le résumé est ancré dans les faits saisis. La longueur maximale d'une réponse candidate est de 4 096 jetons. Un jeton est défini comme un mot dans une phrase ou un point (un signe de ponctuation utilisé pour terminer la phrase). Par exemple, la phrase "Ils portaient des vêtements prêts-à-porter en 2024" comporte sept jetons, dont six mots et un point.

  • Faits : ensemble de segments de texte à utiliser comme références pour l'ancrage. Un ensemble d'attributs de métadonnées (paires clé/valeur) peut être fourni avec chaque segment de texte. Par exemple, "Auteur" et "Titre" sont des clés d'attributs typiques.

    Le service accepte jusqu'à 200 faits, chacun comportant au maximum 10 000 caractères.

    Google déconseille de fournir un fait très volumineux contenant toutes les informations. Vous obtiendrez de meilleurs résultats en divisant les faits volumineux en faits plus petits et en fournissant les attributs appropriés pour ces faits plus petits. Par exemple, vous pouvez diviser un fait important par titre, auteur ou URL, et fournir ces informations dans des attributs.

  • Seuil de citation : valeur flottante comprise entre 0 et 1 qui contrôle le niveau de confiance des citations qui étayent la réponse candidate. Un seuil plus élevé impose une confiance plus stricte. Par conséquent, un seuil plus élevé génère moins de citations, mais plus pertinentes.

Données de sortie

L'API Check Grounding renvoie les éléments suivants pour une réponse candidate :

  • Score de soutien : nombre compris entre 0 et 1 qui indique le niveau d'ancrage d'une réponse candidate dans l'ensemble de faits fourni. Elle correspond approximativement à la fraction des affirmations de la réponse candidate qui ont été jugées ancrées dans un ou plusieurs des faits fournis.

  • Segments cités : il s'agit de portions des faits d'entrée qui étayent la réponse candidate.

  • Revendications et citations : les revendications et les citations relient une revendication (généralement une phrase) du candidat de réponse à un ou plusieurs des blocs cités qui corroborent la revendication.

    Une affirmation est délimitée par ses positions de début et de fin. Il s'agit des positions d'octets de la chaîne de revendication encodée au format UTF-8. Notez que cette valeur n'est pas mesurée en caractères. Elle doit donc être affichée dans l'interface utilisateur en gardant à l'esprit que certains caractères prennent plus d'un octet. Par exemple, si le texte de la revendication contient des caractères non ASCII, les positions de début et de fin varient selon qu'elles sont mesurées en caractères (selon le langage de programmation) ou en octets (indépendamment du langage de programmation).

  • Score de soutien au niveau de l'affirmation : lorsque le score au niveau de l'affirmation est activé, un score de soutien est renvoyé pour chaque affirmation. Il s'agit d'un nombre compris entre 0 et 1 qui indique le niveau d'ancrage de l'affirmation dans l'ensemble de faits fourni. Pour en savoir plus, consultez Obtenir des scores au niveau de l'affirmation pour une réponse candidate.

  • Vérification de l'ancrage requise : un booléen "grounding-check-required" est renvoyé pour chaque affirmation. Lorsque la valeur renvoyée est False, cela signifie que le système estime que l'affirmation ne nécessite pas d'ancrage. Par conséquent, les citations et les contre-citations ne sont pas renvoyées. Par exemple, une phrase comme "Voici ce que j'ai trouvé" n'est pas un fait en soi et ne nécessite donc pas de vérification de l'ancrage.

    Lorsque la valeur true est renvoyée pour grounding-check-required, cela signifie qu'une vérification de l'ancrage a été effectuée et que les scores de soutien, les citations et les anti-citations, le cas échéant, sont renvoyés.

Obtenir un score de soutien pour une réponse candidate

Pour savoir dans quelle mesure une réponse candidate est ancrée dans un ensemble de faits, procédez comme suit :

  1. Préparez votre ensemble de faits. Pour en savoir plus et obtenir des exemples, consultez Termes définis et expliqués.

  2. Appelez la méthode check à l'aide du code suivant :

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_ID" \
"https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/groundingConfigs/default_grounding_config:check" \
-d '{
  "answerCandidate": "CANDIDATE",
  "facts": [
  {
    "factText": "TEXT_0",
    "attributes": {"ATTRIBUTE_A": "VALUE_A0","ATTRIBUTE_B": "VALUE_B0"}
  },
  {
    "factText": "TEXT_1",
    "attributes": {"ATTRIBUTE_A": "VALUE_A1","ATTRIBUTE_B": "VALUE_B1"}
  },
  {
    "factText": "TEXT_2",
    "attributes": {"ATTRIBUTE_A": "VALUE_A2","ATTRIBUTE_B": "VALUE_B2"}
  }
  ],
  "groundingSpec": {
    "citationThreshold": "CITATION_THRESHOLD"
  }
}'

Remplacez les éléments suivants :

  • PROJECT_ID : numéro ou ID de votre projet Google Cloud .

  • CANDIDATE : chaîne de réponse candidate pour laquelle vous souhaitez obtenir un score de soutien (par exemple, Titanic was directed by James Cameron. It was released in 1997.). Une réponse candidate peut comporter jusqu'à 4 096 jetons, où un jeton est défini comme un mot dans une phrase ou un point (un signe de ponctuation utilisé pour terminer la phrase). Par exemple, la phrase "Ils portaient des vêtements de prêt-à-porter en 2024" comporte sept jetons, dont six mots et un point.

  • TEXT : segment de texte à utiliser pour l'ancrage, par exemple Titanic is a 1997 American epic... Academy Awards. (voir le texte complet dans Exemples de faits).

  • ATTRIBUTE : nom d'un attribut de métadonnées associé au fait, par exemple author ou title. Il s'agit d'un libellé défini par l'utilisateur pour ajouter des informations au texte factuel. Par exemple, si le texte factuel Toronto is the capital of Ontario comporte un attribut author dont la valeur est Wikipedia, les affirmations suivantes sont considérées comme ancrées dans le fait :

    • Wikipedia cites that Toronto is the capital of Ontario
    • Toronto is the capital of Ontario

      Toutefois, l'affirmation selon laquelle Government of Ontario claims that Toronto is the capital of Ontario n'est pas aussi ancrée que les deux premières.

  • VALUE : valeur de l'attribut (par exemple, Simple Wikipedia ou Titanic (1997 film)).

  • CITATION_THRESHOLD : valeur flottante comprise entre 0 et 1 qui détermine si un fait doit être cité pour une affirmation dans la réponse candidate. Un seuil plus élevé génère moins de citations, mais plus pertinentes, tandis qu'un seuil plus bas génère plus de citations, mais moins pertinentes. Si elle n'est pas définie, la valeur seuil par défaut est 0.6.

Python

Pour en savoir plus, consultez la documentation de référence de l'API AI Applications Python.

Pour vous authentifier auprès des applications d'IA, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

from google.cloud import discoveryengine_v1 as discoveryengine

# TODO(developer): Uncomment these variables before running the sample.
# project_id = "YOUR_PROJECT_ID"

client = discoveryengine.GroundedGenerationServiceClient()

# The full resource name of the grounding config.
# Format: projects/{project_id}/locations/{location}/groundingConfigs/default_grounding_config
grounding_config = client.grounding_config_path(
    project=project_id,
    location="global",
    grounding_config="default_grounding_config",
)

request = discoveryengine.CheckGroundingRequest(
    grounding_config=grounding_config,
    answer_candidate="Titanic was directed by James Cameron. It was released in 1997.",
    facts=[
        discoveryengine.GroundingFact(
            fact_text=(
                "Titanic is a 1997 American epic romantic disaster movie. It was directed, written,"
                " and co-produced by James Cameron. The movie is about the 1912 sinking of the"
                " RMS Titanic. It stars Kate Winslet and Leonardo DiCaprio. The movie was released"
                " on December 19, 1997. It received positive critical reviews. The movie won 11 Academy"
                " Awards, and was nominated for fourteen total Academy Awards."
            ),
            attributes={"author": "Simple Wikipedia"},
        ),
        discoveryengine.GroundingFact(
            fact_text=(
                'James Cameron\'s "Titanic" is an epic, action-packed romance'
                "set against the ill-fated maiden voyage of the R.M.S. Titanic;"
                "the pride and joy of the White Star Line and, at the time,"
                "the largest moving object ever built. "
                'She was the most luxurious liner of her era -- the "ship of dreams" -- '
                "which ultimately carried over 1,500 people to their death in the "
                "ice cold waters of the North Atlantic in the early hours of April 15, 1912."
            ),
            attributes={"author": "Simple Wikipedia"},
        ),
    ],
    grounding_spec=discoveryengine.CheckGroundingSpec(citation_threshold=0.6),
)

response = client.check_grounding(request=request)

# Handle the response
print(response)

Exemples de faits

Voici quelques exemples de faits et de leurs attributs. Ces exemples vous aident à comprendre la réponse d'ancrage et le format de la commande curl.

  • Fact 0

    • Texte : "Titanic is a 1997 American epic romantic disaster movie. It was directed, written, and co-produced by James Cameron. The movie is about the 1912 sinking of the RMS Titanic. It stars Kate Winslet and Leonardo DiCaprio. The movie was released on December 19, 1997. It received positive critical reviews. The movie won 11 Academy Awards, and was nominated for fourteen total Academy Awards."

    • Attributs : {"Author": "Simple Wikipedia"}

  • Fait 1

    • Texte : "James Cameron's "Titanic" is an epic, action-packed romance set against the ill-fated maiden voyage of the R.M.S. Titanic; the pride and joy of the White Star Line and, at the time, the largest moving object ever built. She was the most luxurious liner of her era -- the "ship of dreams" -- which ultimately carried over 1,500 people to their death in the ice cold waters of the North Atlantic in the early hours of April 15, 1912."

    • Attributs : {"Author": "Rotten Tomatoes"}

Exemple de requête

Après avoir préparé les faits, vous pouvez envoyer la requête suivante, en remplaçant le champ CANDIDATE par différentes chaînes dont vous souhaitez vérifier l'ancrage.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/groundingConfigs/default_grounding_config:check" \
    -d '{
    "answerCandidate": "CANDIDATE",
    "facts": [
     {
      "factText": "Titanic is a 1997 American epic romantic disaster movie. It was directed, written, and co-produced by James Cameron. The movie is about the 1912 sinking of the RMS Titanic. It stars Kate Winslet and Leonardo DiCaprio. The movie was released on December 19, 1997. It received positive critical reviews. The movie won 11 Academy Awards, and was nominated for fourteen total Academy Awards.",
      "attributes": {"author":"Simple Wikipedia"}
     },
     {
      "factText": "James Cameron's \"Titanic\" is an epic, action-packed romance set against the ill-fated maiden voyage of the R.M.S. Titanic; the pride and joy of the White Star Line and, at the time, the largest moving object ever built. She was the most luxurious liner of her era -- the \"ship of dreams\" -- which ultimately carried over 1,500 people to their death in the ice cold waters of the North Atlantic in the early hours of April 15, 1912.",
      "attributes": {"author":"Simple Wikipedia"}
     }
    ],
    "groundingSpec": {
      "citationThreshold": "0.6"
    }
    }'

Exemples de réponses candidates et de réponses ancrées

Le tableau suivant présente des exemples de différents candidats de réponse et de réponses lorsque vous envoyez la requête exemple, en fonction des faits exemples.

Réponse candidate Vérifier la réponse d'ancrage
Here is what I found. Titanic was directed by James Cameron. Score de soutien : 0.99

Extrait cité :
  1. [From FACT 0]....Titanic is a 1997 American epic romantic disaster movie. It was directed, written, and co-produced by James Cameron. It stars Kate Winslet and Leonardo DiCaprio. The movie was released on December 19, 1997. It received positive critical reviews. The movie won 11 Academy Awards, and was nominated for fourteen total Academy Awards.....
Affirmations et citations :
  • 0. Here is what I found.
    Grounding check required: false
  • 1. Titanic was directed by James Cameron.
    Citations : [0]
    Vérification de l'ancrage requise : true
Titanic was directed by James Cameron. It was released in 1997. Score de soutien : 0.99

Extrait cité :
  1. [From FACT 0]....Titanic is a 1997 American epic romantic disaster movie. It was directed, written, and co-produced by James Cameron. It stars Kate Winslet and Leonardo DiCaprio. The movie was released on December 19, 1997. It received positive critical reviews. The movie won 11 Academy Awards, and was nominated for fourteen total Academy Awards.....
  2. [From FACT 1]...Titanic is an epic, action-packed romance set against the ill-fated maiden voyage of the R.M.S. Titanic; the pride and joy of the White Star Line and, at the time, the largest moving object ever built. She was the most luxurious liner of her era which ultimately carried over 1,500 people to their death in the ice cold waters of the North Atlantic in the early hours of April 15, 1912....
Affirmations et citations :
  • 0. Titanic was directed by James Cameron.
    Citations : [0]
    Vérification de l'ancrage requise : true
  • 1. It was released in 1997.
    Citations : [1]
    Vérification de l'ancrage requise : true
Titanic was directed by James Cameron. It was based on the sinking of the RMS Titanic that led to the death of 1500 people. Score de soutien : 0.95

Extrait cité :
  1. [From FACT 0]....Titanic is a 1997 American epic romantic disaster movie. It was directed, written, and co-produced by James Cameron. It stars Kate Winslet and Leonardo DiCaprio. The movie was released on December 19, 1997. It received positive critical reviews. The movie won 11 Academy Awards, and was nominated for fourteen total Academy Awards.....
  2. [From FACT 1]...Titanic is an epic, action-packed romance set against the ill-fated maiden voyage of the R.M.S. Titanic; the pride and joy of the White Star Line and, at the time, the largest moving object ever built. She was the most luxurious liner of her era which ultimately carried over 1,500 people to their death in the ice cold waters of the North Atlantic in the early hours of April 15, 1912....
Affirmations et citations :
  • 0. Cited chunks: Titanic was directed by James Cameron.
    Citations : [0]
    Vérification de l'ancrage requise : true
  • 1. Cited chunks: It was based on the sinking of the RMS Titanic that led to the death of 1500 people.
    Citations : [1]
    Vérification de l'ancrage requise : true
Titanic was directed by James Cameron. It starred Brad Pitt and Kate Winslet Score de soutien : 0.54

Extrait cité :
  1. [From FACT 0]....Titanic is a 1997 American epic romantic disaster movie. It was directed, written, and co-produced by James Cameron. It stars Kate Winslet and Leonardo DiCaprio. The movie was released on December 19, 1997. It received positive critical reviews. The movie won 11 Academy Awards, and was nominated for fourteen total Academy Awards.....
  2. [From FACT 1]...Titanic is an epic, action-packed romance set against the ill-fated maiden voyage of the R.M.S. Titanic; the pride and joy of the White Star Line and, at the time, the largest moving object ever built. She was the most luxurious liner of her era which ultimately carried over 1,500 people to their death in the ice cold waters of the North Atlantic in the early hours of April 15, 1912....
Affirmations et citations :
  • 0. Titanic was directed by James Cameron.
    Citations : [0]
    Vérification de l'ancrage requise : true
  • 1. It starred Brad Pitt and Kate Winslet
    Citations : []
    Vérification de l'ancrage requise : true
Remarque : Même si Kate Winslet a joué dans le film, l'affirmation "It starred Brad Pitt and Kate Winslet" n'étant pas entièrement vraie, elle ne reçoit aucune citation. Dans ce cas, vous pouvez appeler la méthode avec les anti-citations activées pour obtenir un score de contradiction. Pour en savoir plus, consultez Obtenir un score de contradiction pour une réponse candidate.

Obtenir des scores au niveau de l'affirmation pour une réponse candidate

En plus du score de soutien au niveau de la réponse, vous pouvez obtenir un score de soutien au niveau de l'affirmation pour chaque affirmation dans une réponse candidate.

Pour obtenir les scores au niveau des revendications, procédez comme suit :

  1. Préparez votre ensemble de faits. Pour en savoir plus et obtenir des exemples, consultez Termes définis et expliqués.

  2. Appelez la méthode check à l'aide de la commande curl suivante :

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/groundingConfigs/default_grounding_config:check" \
    -d '{
    "answerCandidate": "CANDIDATE",
    "facts": [
     {
      "factText": "TEXT_0",
      "attributes": {"ATTRIBUTE_A": "VALUE_A0","ATTRIBUTE_B": "VALUE_B0"}
     },
     {
      "factText": "TEXT_1",
      "attributes": {"ATTRIBUTE_A": "VALUE_A1","ATTRIBUTE_B": "VALUE_B1"}
     },
     {
      "factText": "TEXT_2",
      "attributes": {"ATTRIBUTE_A": "VALUE_A2","ATTRIBUTE_B": "VALUE_B2"}
     },
    ],
    "groundingSpec": {
      "citationThreshold": "CITATION_THRESHOLD",
      "enableClaimLevelScore": "ENABLE_CLAIM_LEVEL_SCORE",
    }
    }'
    

    Remplacez les éléments suivants :

    • PROJECT_ID : numéro ou ID de votre projetGoogle Cloud .

    • CANDIDATE : chaîne de réponse candidate pour laquelle vous souhaitez obtenir un score de soutien (par exemple, Titanic was directed by James Cameron. It was released in 1997.). Une réponse candidate peut comporter jusqu'à 4 096 jetons, où un jeton est défini comme un mot dans une phrase ou un point (un signe de ponctuation utilisé pour terminer la phrase). Par exemple, la phrase "Ils portaient des vêtements de prêt-à-porter en 2024" comporte sept jetons, dont six mots et un point.

    • TEXT : segment de texte à utiliser pour l'ancrage, par exemple Titanic is a 1997 American epic... Academy Awards. (voir le texte complet dans Exemples de faits).

    • ATTRIBUTE : nom d'un attribut de métadonnées associé au fait, par exemple author ou title. Il s'agit d'un libellé défini par l'utilisateur pour ajouter des informations au texte factuel. Par exemple, si le texte factuel Toronto is the capital of Ontario comporte un attribut author dont la valeur est Wikipedia, les affirmations suivantes sont bien ancrées :

      • Wikipedia cites that Toronto is the capital of Ontario
      • Toronto is the capital of Ontario

      Toutefois, l'affirmation selon laquelle Government of Ontario claims that Toronto is the capital of Ontario n'est pas aussi bien fondée.

    • VALUE : valeur de l'attribut (par exemple, Simple Wikipedia ou Titanic (1997 film)).

    • CITATION_THRESHOLD : valeur flottante comprise entre 0 et 1 qui détermine si un fait doit être cité pour une affirmation dans la réponse candidate. Un seuil élevé permet d'obtenir moins de citations, mais plus pertinentes, pour étayer l'affirmation. Un seuil bas permet d'obtenir plus de citations, mais moins pertinentes. Si elle n'est pas définie, la valeur de seuil par défaut est 0,6.

    • ENABLE_CLAIM_LEVEL_SCORE : valeur booléenne. Définissez ce champ sur true pour activer la fonctionnalité de score au niveau de la réclamation. Pour désactiver cette fonctionnalité, supprimez ce champ ou définissez-le sur false.

Exemple de requête

En utilisant les faits de l'exemple de la section précédente, vous pouvez envoyer la requête suivante. Remplacez le champ CANDIDATE par différentes chaînes dont vous souhaitez vérifier l'ancrage par affirmation.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/groundingConfigs/default_grounding_config:check" \
    -d '{
    "answerCandidate": "CANDIDATE",
    "facts": [
     {
      "factText": "Titanic is a 1997 American epic romantic disaster movie. It was directed, written, and co-produced by James Cameron. The movie is about the 1912 sinking of the RMS Titanic. It stars Kate Winslet and Leonardo DiCaprio. The movie was released on December 19, 1997. It received positive critical reviews. The movie won 11 Academy Awards, and was nominated for fourteen total Academy Awards.",
      "attributes": {"author":"Simple Wikipedia"}
     },
     {
      "factText": "James Cameron's \"Titanic\" is an epic, action-packed romance set against the ill-fated maiden voyage of the R.M.S. Titanic; the pride and joy of the White Star Line and, at the time, the largest moving object ever built. She was the most luxurious liner of her era -- the \"ship of dreams\" -- which ultimately carried over 1,500 people to their death in the ice cold waters of the North Atlantic in the early hours of April 15, 1912.",
      "attributes": {"author":"Simple Wikipedia"}
     }
    ],
    "groundingSpec": {
      "citationThreshold": "0.6",
      "enableClaimLevelScore": true,
    }
    }'

Exemple de réponses avec des scores au niveau de la revendication

Le tableau suivant présente un exemple de réponse candidate et sa réponse lorsque vous envoyez l'exemple de requête, en fonction des exemples de faits.

Réponse candidate Vérifier la réponse d'ancrage
Here is what I found. Titanic was directed by James Cameron. It starred Kate Winslet and Leonardo DiCaprio. Score de soutien : 0.99

Extrait cité :
  1. [From FACT 0]....Titanic is a 1997 American epic romantic disaster movie. It was directed, written, and co-produced by James Cameron. It stars Kate Winslet and Leonardo DiCaprio. The movie was released on December 19, 1997. It received positive critical reviews. The movie won 11 Academy Awards, and was nominated for fourteen total Academy Awards.....
Affirmations et citations :
  • 0. Here is what I found.
    Grounding check required: false
  • 1. Titanic was directed by James Cameron.
    Citations : [0]
    Vérification de l'ancrage requise : true
    Score : 0.99
  • 2. It starred Kate Winslet and Leonardo DiCaprio.
    Citations : [0]
    Vérification de l'ancrage requise : true
    Score : 0.99

Obtenir un score de contradiction pour une réponse candidate

En plus du score de soutien, vous pouvez également obtenir un score de contradiction. Le score de contradiction correspond approximativement à la fraction d'affirmations qui contredisent les faits fournis.

Pour essayer cette fonctionnalité expérimentale, contactez l'équipe chargée de votre compte Google et demandez à être ajouté à la liste d'autorisation.

Obtenir un score de contradiction

Pour obtenir le score de contradiction, procédez comme suit :

  1. Préparez votre ensemble de faits. Pour en savoir plus et obtenir des exemples, consultez Termes définis et expliqués.

  2. Appelez la méthode check à l'aide de la commande curl suivante :

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/groundingConfigs/default_grounding_config:check" \
    -d '{
    "answerCandidate": "CANDIDATE",
    "facts": [
     {
      "factText": "TEXT_0",
      "attributes": {"ATTRIBUTE_A": "VALUE_A0","ATTRIBUTE_B": "VALUE_B0"}
     },
     {
      "factText": "TEXT_1",
      "attributes": {"ATTRIBUTE_A": "VALUE_A1","ATTRIBUTE_B": "VALUE_B1"}
     },
     {
      "factText": "TEXT_2",
      "attributes": {"ATTRIBUTE_A": "VALUE_A2","ATTRIBUTE_B": "VALUE_B2"}
     },
    ],
    "groundingSpec": {
      "citationThreshold": "CITATION_THRESHOLD",
      "enableAntiCitations": "ENABLE_ANTI_CITATION",
      "antiCitationThreshold": "ANTI_CITATION_THRESHOLD",
    }
    }'
    

    Remplacez les éléments suivants :

    • PROJECT_ID : numéro ou ID de votre projetGoogle Cloud .

    • CANDIDATE : chaîne de réponse candidate pour laquelle vous souhaitez obtenir un score de soutien (par exemple, Titanic was directed by James Cameron. It was released in 1997.). Une réponse candidate peut comporter jusqu'à 4 096 jetons, où un jeton est défini comme un mot dans une phrase ou un point (un signe de ponctuation utilisé pour terminer la phrase). Par exemple, la phrase "Ils portaient des vêtements de prêt-à-porter en 2024" comporte sept jetons, dont six mots et un point.

    • TEXT : segment de texte à utiliser pour l'ancrage, par exemple Titanic is a 1997 American epic... Academy Awards. (voir le texte complet dans Exemples de faits).

    • ATTRIBUTE : nom d'un attribut de métadonnées associé au fait, par exemple author ou title. Il s'agit d'un libellé défini par l'utilisateur pour ajouter des informations au texte factuel. Par exemple, si le texte factuel Toronto is the capital of Ontario comporte un attribut author dont la valeur est Wikipedia, les affirmations suivantes sont bien ancrées :

      • Wikipedia cites that Toronto is the capital of Ontario
      • Toronto is the capital of Ontario

      Toutefois, l'affirmation selon laquelle Government of Ontario claims that Toronto is the capital of Ontario n'est pas aussi bien fondée.

    • VALUE : valeur de l'attribut (par exemple, Simple Wikipedia ou Titanic (1997 film)).

    • CITATION_THRESHOLD : valeur flottante comprise entre 0 et 1 qui détermine si un fait doit être cité pour une affirmation dans la réponse candidate. Un seuil plus élevé génère moins de citations, mais plus pertinentes, pour étayer l'affirmation. Un seuil plus bas génère plus de citations, mais moins pertinentes, pour étayer l'affirmation. Si elle n'est pas définie, la valeur de seuil par défaut est 0,6.

    • ENABLE_ANTI_CITATION : valeur booléenne. Définissez ce champ sur true pour activer la fonctionnalité expérimentale permettant d'évaluer le score de contradiction. Supprimez ce champ ou définissez-le sur false pour désactiver cette fonctionnalité.

    • ANTI_CITATION_THRESHOLD : valeur flottante comprise entre 0 et 1 qui détermine si un fait doit être cité comme contredisant une affirmation dans la réponse candidate. Un seuil plus élevé entraîne moins de citations, mais plus pertinentes, qui contredisent l'affirmation. Un seuil plus bas entraîne plus de citations, mais moins pertinentes, qui contredisent l'affirmation. Si elle n'est pas définie, la valeur de seuil par défaut est de 0,8.

Exemple de requête

En utilisant les faits de l'exemple de la section précédente, vous pouvez envoyer la requête suivante. Remplacez le champ CANDIDATE par différentes chaînes dont vous souhaitez vérifier l'ancrage et les contradictions.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/groundingConfigs/default_grounding_config:check" \
    -d '{
    "answerCandidate": "CANDIDATE",
    "facts": [
     {
      "factText": "Titanic is a 1997 American epic romantic disaster movie. It was directed, written, and co-produced by James Cameron. The movie is about the 1912 sinking of the RMS Titanic. It stars Kate Winslet and Leonardo DiCaprio. The movie was released on December 19, 1997. It received positive critical reviews. The movie won 11 Academy Awards, and was nominated for fourteen total Academy Awards.",
      "attributes": {"author":"Simple Wikipedia"}
     },
     {
      "factText": "James Cameron's \"Titanic\" is an epic, action-packed romance set against the ill-fated maiden voyage of the R.M.S. Titanic; the pride and joy of the White Star Line and, at the time, the largest moving object ever built. She was the most luxurious liner of her era -- the \"ship of dreams\" -- which ultimately carried over 1,500 people to their death in the ice cold waters of the North Atlantic in the early hours of April 15, 1912.",
      "attributes": {"author":"Simple Wikipedia"}
     }
    ],
    "groundingSpec": {
      "citationThreshold": "0.6",
      "enableAntiCitations": true,
      "antiCitationThreshold": "0.8",
    }
    }'

Exemple de réponses avec des contradictions

Le tableau suivant présente un exemple de réponse candidate et sa réponse lorsque vous envoyez l'exemple de requête, en fonction des exemples de faits.

Réponse candidate Vérifier la réponse d'ancrage
Titanic was directed by James Cameron. It starred Brad Pitt and Kate Winslet Score de pertinence : 0.36

Score de contradiction : 0.49

Extrait cité :
  1. [From FACT 0]....Titanic is a 1997 American epic romantic disaster movie. It was directed, written, and co-produced by James Cameron. It stars Kate Winslet and Leonardo DiCaprio. The movie was released on December 19, 1997. It received positive critical reviews. The movie won 11 Academy Awards, and was nominated for fourteen total Academy Awards.....
  2. [From FACT 1]...Titanic is an epic, action-packed romance set against the ill-fated maiden voyage of the R.M.S. Titanic; the pride and joy of the White Star Line and, at the time, the largest moving object ever built. She was the most luxurious liner of her era which ultimately carried over 1,500 people to their death in the ice cold waters of the North Atlantic in the early hours of April 15, 1912....
Affirmations et citations :
  • 0. Titanic was directed by James Cameron.
    Citations : [0] Anti-citations : []
    Vérification de l'ancrage requise : true
  • 1. It starred Brad Pitt and Kate Winslet
    Citations : [] Anti-citations : [0]
    Vérification de l'ancrage requise : true

Obtenir un score d'utilité pour une réponse candidate

Pour essayer cette fonctionnalité expérimentale, contactez l'équipe chargée de votre compte Google et demandez à être ajouté à la liste d'autorisation.

En plus du score de soutien et du score de contradiction, l'API Check Grounding peut fournir un score d'utilité. Une réponse utile est une réponse qui répond efficacement à la demande de l'utilisateur (telle qu'indiquée dans la requête) de manière informative. Le score d'utilité mesure la qualité de la réponse en fonction des critères suivants :

  • Répond à l'intention première de la requête
  • Fournit des informations complètes tout en étant concis
  • Répond directement à la question posée ou effectue la tâche demandée dans la requête
  • Fournit des informations pertinentes
  • est claire et directe ;
  • Évite les détails et le jargon inutiles

Pour obtenir un score d'utilité en plus du score d'ancrage, vous devez fournir une invite avec les réponses candidates et les faits. L'API de vérification de l'ancrage examine la réponse candidate avec la requête et attribue un score qui indique dans quelle mesure la réponse candidate répond à la requête. Le score est compris dans la plage [0,1]. Plus il est élevé, plus la réponse est utile.

Obtenir un score d'utilité

Pour obtenir le score d'utilité, procédez comme suit :

  1. Préparez votre requête et votre réponse candidate.

  2. Appelez la méthode check à l'aide de la commande curl suivante :

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/groundingConfigs/default_grounding_config:check" \
    -d '{
    "answerCandidate": "CANDIDATE",
    "facts": [
    {
      "factText": "TEXT_0",
      "attributes": {"ATTRIBUTE_A": "VALUE_A0","ATTRIBUTE_B": "VALUE_B0"}
    },
    {
      "factText": "TEXT_1",
      "attributes": {"ATTRIBUTE_A": "VALUE_A1","ATTRIBUTE_B": "VALUE_B1"}
    },
    {
      "factText": "TEXT_2",
      "attributes": {"ATTRIBUTE_A": "VALUE_A2","ATTRIBUTE_B": "VALUE_B2"}
    }
    ],
    "groundingSpec": {
      "enableHelpfulnessScore": true
    },
    "prompt": "PROMPT",
    }'
    

    Remplacez les éléments suivants :

    • PROJECT_ID : numéro ou ID de votre projetGoogle Cloud .

    • CANDIDATE : chaîne de réponse candidate pour laquelle vous souhaitez obtenir un score d'utilité (par exemple, Titanic was directed by James Cameron. It was released in 1997.). Une réponse candidate ne peut pas comporter plus de 4 096 jetons.

    • TEXT : segment de texte à utiliser pour l'ancrage, par exemple Titanic is a 1997 American epic... Academy Awards. (voir le texte complet dans Exemples de faits).

    • ATTRIBUTE : nom d'un attribut de métadonnées associé au fait, par exemple author ou title. Il s'agit d'un libellé défini par l'utilisateur pour ajouter des informations au texte factuel. Par exemple, si le texte factuel Toronto is the capital of Ontario comporte un attribut author dont la valeur est Wikipedia, les affirmations suivantes sont bien ancrées :

      • Wikipedia cites that Toronto is the capital of Ontario
      • Toronto is the capital of Ontario

      Toutefois, l'affirmation selon laquelle Government of Ontario claims that Toronto is the capital of Ontario n'est pas aussi bien fondée.

    • VALUE : valeur de l'attribut (par exemple, Simple Wikipedia ou Titanic (1997 film)).

    • PROMPT : la requête à laquelle le candidat-réponse a été généré pour répondre (par exemple, Who directed and starred in the movie Titanic?).

Exemple de requête

En utilisant les faits de l'exemple de la section précédente, vous pouvez envoyer la requête suivante. Remplacez le champ CANDIDATE par différents candidats de réponse pour obtenir un score d'utilité pour la réponse.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/groundingConfigs/default_grounding_config:check" \
    -d '{
    "answerCandidate": "CANDIDATE",
    "facts": [
     {
      "factText": "Titanic is a 1997 American epic romantic disaster movie. It was directed, written, and co-produced by James Cameron. The movie is about the 1912 sinking of the RMS Titanic. It stars Kate Winslet and Leonardo DiCaprio. The movie was released on December 19, 1997. It received positive critical reviews. The movie won 11 Academy Awards, and was nominated for fourteen total Academy Awards.",
      "attributes": {"author":"Simple Wikipedia"}
     },
     {
      "factText": "James Cameron's \"Titanic\" is an epic, action-packed romance set against the ill-fated maiden voyage of the R.M.S. Titanic; the pride and joy of the White Star Line and, at the time, the largest moving object ever built. She was the most luxurious liner of her era -- the \"ship of dreams\" -- which ultimately carried over 1,500 people to their death in the ice cold waters of the North Atlantic in the early hours of April 15, 1912.",
      "attributes": {"author":"Simple Wikipedia"}
     }
    ],
    "groundingSpec": {
      "enableHelpfulnessScore": true
    },
    "prompt": "Who directed and starred in the movie Titanic?"
    }'

Exemple de réponses avec des scores d'utilité

Le tableau suivant présente des exemples de candidats de réponse avec leurs scores d'utilité. Dans chaque cas, l'invite est Who directed and starred in the Titanic?.

Réponse candidate Score d'utilité Explication du score
Titanic was directed by James Cameron. It starred Leonardo DiCaprio and Kate Winslet. 0.980 Score de concision et d'exhaustivité
Cameron, DiCaprio and Winslet. 0.947 Incomplet
James Cameron's 1997 masterpiece, Titanic, captured the hearts of audiences worldwide with its tragic love story set against the backdrop of the ill-fated maiden voyage of the "unsinkable" ship. The film, a mesmerizing blend of historical drama and fictional romance, starred Leonardo DiCaprio as Jack Dawson, a penniless artist who falls for Rose DeWitt Bukater, a young woman trapped by her social standing and played exquisitely by Kate Winslet. Their passionate love affair unfolds amidst the grandeur and opulence of the Titanic, a floating palace of dreams that ultimately succumbs to a devastating fate. 0.738 Pas concis

Vérifier l'ancrage avec un data store

Par défaut, l'ancrage est vérifié par rapport à un ensemble de faits fournis en ligne dans l'appel de l'API Check Grounding. Toutefois, au lieu de fournir les faits de manière intégrée, vous pouvez vérifier le candidat de réponse par rapport à tous les faits d'un data store Vertex AI Search.

Lorsque vous appelez l'API check grounding, vous fournissez le nom d'une application de recherche Vertex AI. En retour, les datastores non structurés associés à cette application de recherche contiennent l'ensemble des faits utilisés pour vérifier l'ancrage de la réponse candidate.

Pour essayer cette fonctionnalité expérimentale, contactez l'équipe chargée de votre compte Google et demandez à être ajouté à la liste d'autorisation.

Pour vérifier l'ancrage par rapport à un data store, procédez comme suit :

  1. Identifiez une application de recherche personnalisée associée à au moins un data store contenant des données non structurées. Les documents de ce data store servent de source pour vos faits d'ancrage.

    Pour savoir comment créer un data store et une application de recherche, consultez Créer un datastore de recherche et Créer une application de recherche.

  2. Trouvez l'ID de votre application. Si vous avez déjà votre ID d'application, passez à l'étape suivante.

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

      Accédez à "Applications".

    2. Sur la page Applications, recherchez le nom de votre application et récupérez son ID dans la colonne ID.

  3. Appelez la méthode check à l'aide de la commande curl suivante :

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/groundingConfigs/default_grounding_config:check" \
    -d '{
        "answerCandidate": "CANDIDATE",
        "groundingSource": {
          "searchSource": {
            "servingConfig": "projects/SOURCE_PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search"
          }
        }
    }'
    

    Remplacez les éléments suivants :

    • PROJECT_ID : numéro ou ID de votre projetGoogle Cloud .

    • SOURCE_PROJECT_ID : numéro ou ID du projet contenant l'application pour l'ancrage.

      Ce projet source doit se trouver dans la même région que votre projet (par exemple, global ou eu). (Pour obtenir des informations générales sur les régions multiples, consultez Emplacement.)

    • CANDIDATE : chaîne de réponse candidate pour laquelle vous souhaitez obtenir un score d'assistance (par exemple, Titanic was directed by James Cameron. It was released in 1997.). Une réponse candidate peut comporter une longueur maximale de 4 096 jetons, où un jeton est défini comme un mot dans une phrase ou un point (un signe de ponctuation utilisé pour terminer la phrase). Par exemple, la phrase "Ils portaient des vêtements de prêt-à-porter en 2024" comporte sept jetons, dont six mots et un point.

    • APP_ID : ID de l'application Vertex AI Search dont les datastores de données non structurées contiennent les faits que vous souhaitez utiliser comme source d'ancrage.