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 :
Préparez votre ensemble de faits. Pour en savoir plus et obtenir des exemples, consultez Termes définis et expliqués.
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 exempleTitanic 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 exempleauthor
outitle
. Il s'agit d'un libellé défini par l'utilisateur pour ajouter des informations au texte factuel. Par exemple, si le texte factuelToronto is the capital of Ontario
comporte un attributauthor
dont la valeur estWikipedia
, 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
ouTitanic (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 est0.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.
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é :
|
Titanic was directed by James Cameron. It was released in
1997.
|
Score de soutien : 0.99 Extrait cité :
|
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é :
|
Titanic was directed by James Cameron. It starred Brad Pitt and
Kate Winslet
|
Score de soutien : 0.54 Extrait cité :
"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 :
Préparez votre ensemble de faits. Pour en savoir plus et obtenir des exemples, consultez Termes définis et expliqués.
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 exempleTitanic 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 exempleauthor
outitle
. Il s'agit d'un libellé défini par l'utilisateur pour ajouter des informations au texte factuel. Par exemple, si le texte factuelToronto is the capital of Ontario
comporte un attributauthor
dont la valeur estWikipedia
, 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
ouTitanic (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 surtrue
pour activer la fonctionnalité de score au niveau de la réclamation. Pour désactiver cette fonctionnalité, supprimez ce champ ou définissez-le surfalse
.
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é :
|
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 :
Préparez votre ensemble de faits. Pour en savoir plus et obtenir des exemples, consultez Termes définis et expliqués.
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 exempleTitanic 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 exempleauthor
outitle
. Il s'agit d'un libellé défini par l'utilisateur pour ajouter des informations au texte factuel. Par exemple, si le texte factuelToronto is the capital of Ontario
comporte un attributauthor
dont la valeur estWikipedia
, 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
ouTitanic (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 surtrue
pour activer la fonctionnalité expérimentale permettant d'évaluer le score de contradiction. Supprimez ce champ ou définissez-le surfalse
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é :
|
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 :
Préparez votre requête et votre réponse candidate.
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 exempleTitanic 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 exempleauthor
outitle
. Il s'agit d'un libellé défini par l'utilisateur pour ajouter des informations au texte factuel. Par exemple, si le texte factuelToronto is the capital of Ontario
comporte un attributauthor
dont la valeur estWikipedia
, 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
ouTitanic (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 :
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.
Trouvez l'ID de votre application. Si vous avez déjà votre ID d'application, passez à l'étape suivante.
Dans la console Google Cloud , accédez à la page AI Applications.
Sur la page Applications, recherchez le nom de votre application et récupérez son ID dans la colonne ID.
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
oueu
). (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.