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 Vertex AI Agent Builder, vous pouvez vérifier l'ancrage pour déterminer dans quelle mesure un extrait de texte (appelé réponse candidate) est ancré dans un ensemble donné de textes de référence (appelés faits).

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

Une ancrage parfaite exige que chaque affirmation de la réponse candidate soit étayée par un ou plusieurs des faits donnés. En d'autres termes, l'affirmation est entièrement impliquée par les faits. Si la réclamation n'est que partiellement impliquée, elle n'est pas considérée comme fondé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 erronée). Par conséquent, l'ensemble de l'affirmation est considéré comme infondé. Dans cette version de l'API de justification des contrôles, une phrase est considérée comme une seule réclamation.

Vous pouvez utiliser l'API check grounding 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 à comparer une réponse générée par un LLM à un ensemble de faits donné. L'API check grounding est conçue pour être rapide, avec une latence inférieure à 500 ms. Cette vitesse permet aux bots de chat d'appeler l'API de vérification de l'ancrage lors de chaque inférence, sans ralentissement significatif. L'API de vérification de l'ancrage peut également fournir des références pour étayer ses résultats, afin que les utilisateurs puissent identifier les parties de la réponse générée qui sont fiables. 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 hallucinatoires.

Cette page explique comment vérifier la mise à la terre à 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 de vérification de la mise à la terre, contactez l'équipe de gestion de votre compte Google et demandez à être ajouté à la liste d'autorisation:

Définition et explication des termes

Avant d'utiliser l'API de vérification de la mise à la terre, il est utile de comprendre les entrées et les sorties, et de savoir comment structurer vos informations de mise à la terre pour obtenir les meilleurs résultats.

Données d'entrée

L'API de vérification de la mise à la terre nécessite les entrées suivantes dans la requête.

  • Réponse candidate:toute partie de texte dont vous souhaitez vérifier la pertinence peut être une réponse candidate. Par exemple, dans le contexte de Vertex AI Search, la réponse candidate peut être le résumé de recherche généré qui répond à une requête. L'API déterminera ensuite dans quelle mesure le résumé est basé sur les faits saisis. Une réponse candidate peut avoir 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 prêts à porter en 2024." compte sept jetons, dont six mots et un point.

  • Faits:ensemble de segments de texte à utiliser comme référence 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 pouvant comporter jusqu'à 10 000 caractères.

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

  • Seuil de citation: valeur à virgule flottante comprise entre 0 et 1 qui contrôle la confiance pour les citations qui appuient la réponse candidate. Un seuil plus élevé impose un niveau de confiance plus strict. Par conséquent, un seuil plus élevé génère moins de citations, mais plus fortes.

Données de sortie

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

  • Score d'appui:il s'agit d'un nombre compris entre 0 et 1 qui indique dans quelle mesure une réponse candidate est fondée sur l'ensemble de faits fourni. Il donne une approximation approximative de la fraction des affirmations de la réponse candidate qui ont été jugées fondées sur un ou plusieurs des faits donnés.

  • Segments cités:les segments cités sont des parties des faits saisis qui étayent la réponse candidate.

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

    Lorsque le score au niveau de la revendication est activé, un score d'éligibilité est renvoyé pour chaque revendication sous la forme d'un nombre compris entre 0 et 1, qui indique dans quelle mesure la revendication est fondée sur l'ensemble de faits fourni. Pour en savoir plus, consultez la section Obtenir des scores au niveau de la revendication pour une réponse candidate.

  • Vérification de la mise à la terre requise: pour chaque réclamation, une valeur booléenne "grounding-check-required" est renvoyée. Lorsque cette valeur est renvoyée sous la forme False, cela signifie que le système considère que la revendication n'a pas besoin d'être justifiée. Par conséquent, les citations et les anti-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 la pertinence.

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

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

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

  1. Préparez votre ensemble de faits. Pour en savoir plus et obtenir des exemples, consultez la section Définition et explication des termes.

  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 d'assistance (par exemple, Titanic was directed by James Cameron. It was released in 1997.). Une réponse candidate peut avoir 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 prêts à porter en 2024." compte 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.). Consultez 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 de la fiche. Par exemple, si le texte factuel Toronto is the capital of Ontario possède un attribut author dont la valeur est Wikipedia, les affirmations suivantes sont considérées comme fondées sur 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 fondée que les deux premières n'est pas tout à fait exacte.

  • 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é entraîne moins de citations, mais plus fortes, tandis qu'un seuil plus faible entraîne plus de citations, mais plus faibles. Si elle n'est pas définie, la valeur par défaut du seuil est 0.6.

Python

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

Pour vous authentifier auprès de Vertex AI Agent Builder, 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 visent à vous aider à comprendre la réponse de mise à la terre et le format de la commande curl.

  • Fait 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 la mise à la terre.

    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 de justification

Le tableau suivant présente des exemples de réponses et de réponses candidates différentes lorsque vous envoyez l'exemple de requête, en fonction des faits.

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

Blocs cités :
  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.....
Allégations et citations:
  • 0. Here is what I found.
    Vérification de la mise à la terre requise: 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 d'éligibilité: 0.99

Blocs cités :
  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....
Allégations 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 d'éligibilité: 0.95

Blocs cités :
  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....
Allégations 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 d'éligibilité: 0.54

Blocs cités :
  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....
Allégations 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, elle ne reçoit aucune citation, car l'affirmation "It starred Brad Pitt and Kate Winslet" n'est pas tout à fait vraie. 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 la section Obtenir un score de contradiction pour une réponse candidate.

Obtenir un score de contradiction pour une réponse candidate

En plus du score d'assistance, vous pouvez également obtenir un score de contradiction. Le score de contradiction donne une approximation approximative de la fraction des 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 la section Définition et explication des termes.

  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 projet Google Cloud.

    • 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 avoir 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 prêts à porter en 2024." compte 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.). Consultez 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 plus d'informations au texte de la vérification. Par exemple, si le texte factuel Toronto is the capital of Ontario possède un attribut author dont la valeur est Wikipedia, les affirmations suivantes sont fondé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 n'est pas 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é entraîne moins de citations, mais plus solides pour étayer l'affirmation, tandis qu'un seuil plus faible entraîne plus de citations, mais moins solides pour étayer l'affirmation. Si elle n'est pas définie, la valeur par défaut du seuil est 0,6.

    • ENABLE_ANTI_CITATION: valeur booléenne. Définissez ce champ sur true pour permettre à la fonctionnalité expérimentale d'évaluer le score de contradiction. Pour désactiver cette fonctionnalité, supprimez ce champ ou définissez-le sur false.

    • 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 contredisant l'affirmation, mais celles-ci sont plus fortes. Un seuil plus faible entraîne plus de citations contredisant l'affirmation, mais celles-ci sont plus faibles. Si elle n'est pas définie, la valeur par défaut du seuil est 0,8.

Exemple de requête

À l'aide des exemples de faits 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 la justification 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",
    }
    }'

Exemples de réponses contradictoires

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

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

Score de contradiction: 0.49

Fragments cités :
  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....
Allégations 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 d'appui et du score de contradiction, l'API check grounding peut fournir un score d'utilité. Une réponse utile est celle qui répond efficacement à la requête de l'utilisateur (comme indiqué dans l'invite) de manière informative. Le score d'utilité mesure dans quelle mesure la réponse:

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

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 la pertinence examine la réponse candidate avec l'invite et attribue un score qui indique dans quelle mesure la réponse candidate répond à l'invite. Le score est compris dans la plage [0,1]. Plus le score 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 invite et votre réponse au candidat.

  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 projet Google 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 peut avoir une longueur maximale de 4 096 jetons.

    • TEXT: segment de texte à utiliser pour l'ancrage (par exemple, Titanic is a 1997 American epic... Academy Awards.). Consultez 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 plus d'informations au texte de la vérification. Par exemple, si le texte factuel Toronto is the capital of Ontario possède un attribut author dont la valeur est Wikipedia, les affirmations suivantes sont fondé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 n'est pas fondée.

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

    • PROMPT: l'invite est la requête à laquelle la réponse candidate a été générée (par exemple, Who directed and starred in the movie Titanic?).

Exemple de requête

À l'aide des exemples de faits de la section précédente, vous pouvez envoyer la requête suivante. Remplacez le champ CANDIDATE par différentes réponses candidates 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?"
    }'

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

Le tableau suivant présente des exemples de réponses candidates avec leur score 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 concis et complet
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 Non concise

Obtenir des scores au niveau de la revendication pour une réponse candidate

En plus du score d'éligibilité au niveau de la réponse, vous pouvez obtenir un score d'éligibilité au niveau de la revendication pour chaque revendication d'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.

Pour obtenir les scores au niveau de la revendication, procédez comme suit:

  1. Préparez votre ensemble de faits. Pour en savoir plus et obtenir des exemples, consultez la section Définition et explication des termes.

  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",
      "enableClaimLevelScore": "ENABLE_CLAIM_LEVEL_SCORE",
    }
    }'
    

    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 d'assistance (par exemple, Titanic was directed by James Cameron. It was released in 1997.). Une réponse candidate peut avoir 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 prêts à porter en 2024." compte 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.). Consultez 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 plus d'informations au texte de la vérification. Par exemple, si le texte factuel Toronto is the capital of Ontario possède un attribut author dont la valeur est Wikipedia, les affirmations suivantes sont fondé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 n'est pas 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é entraîne moins de citations, mais plus solides pour étayer l'affirmation, tandis qu'un seuil plus faible entraîne plus de citations, mais moins solides pour étayer l'affirmation. Si elle n'est pas définie, la valeur par défaut du seuil 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 revendication. Pour désactiver cette fonctionnalité, supprimez ce champ ou définissez-le sur false.

Exemple de requête

À l'aide des exemples de faits 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 revendication.

    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",
      "enableClaimLevelScore": true,
    }
    }'

Exemples 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 faits.

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

Blocs cités :
  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.....
Allégations et citations:
  • 0. Here is what I found.
    Vérification de la mise à la terre requise: 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

Vérifier la mise à la terre avec un data store

Par défaut, la mise à la terre est vérifiée par rapport à un ensemble de faits fournis en ligne dans l'appel d'API de vérification de la mise à la terre. Toutefois, au lieu de fournir les faits en ligne, vous pouvez comparer la réponse candidate à tous les faits d'un data store Vertex AI Search.

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

Pour vérifier la mise à la terre par rapport à un data store, procédez comme suit:

  1. Identifiez une application de recherche générique 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 data store de recherche et Créer une application de recherche.

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

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

      Accédez à "Applications".

    2. Sur la page Applications, recherchez le nom de votre application et obtenez 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": "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 projet Google Cloud.

    • SOURCE_PROJECT_ID: numéro ou ID du projet contenant l'application de mise à la terre.

      Ce projet source doit se trouver dans la même région que votre projet (par exemple, global ou eu). (Pour en savoir plus sur les zones multirégionales, consultez la section Zone.)

    • 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 avoir 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 prêts à porter en 2024." compte sept jetons, dont six mots et un point.

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