Como parte de tu experiencia de Generación mejorada por recuperación (RAG) en Aplicaciones con IA, puedes verificar la fundamentación para determinar qué tan fundamentado está un fragmento de texto (llamado candidato a respuesta) en un conjunto determinado de textos de referencia (llamados hechos).
La API de Check Grounding devuelve una puntuación de compatibilidad general de 0 a 1, que indica el grado de coincidencia entre la respuesta candidata y los hechos proporcionados. La respuesta también incluye citas de los hechos que respaldan cada afirmación en el candidato de respuesta.
La fundamentación perfecta requiere que cada afirmación en la respuesta candidata esté respaldada por uno o más de los hechos proporcionados. En otras palabras, la reclamación se deriva por completo de los hechos. Si la implicación es solo parcial, no se considera fundamentada. Por ejemplo, la afirmación "Larry Page y Sergey Brin fundaron Google en 1975" es solo parcialmente correcta (los nombres de los fundadores son correctos, pero la fecha es incorrecta) y, por lo tanto, se considera que toda la afirmación no está fundamentada. En esta versión de la API de fundamentación de verificaciones, una oración se considera una sola afirmación.
Puedes usar la API de verificación de fundamentación para verificar cualquier fragmento de texto. Puede ser una descripción generada por humanos o una respuesta generada por una máquina. Un caso de uso típico es verificar una respuesta generada por un LLM en función de un conjunto determinado de hechos. La API de verificación de fundamentación está diseñada para ser rápida, con una latencia inferior a 500 ms. Esta velocidad permite que los chatbots llamen a la API de verificación de fundamentación durante cada inferencia, sin generar una ralentización significativa. La API de verificación de fundamentación también puede proporcionar referencias para respaldar sus hallazgos, de modo que los usuarios puedan saber qué partes de la respuesta generada son confiables. La API también proporciona una puntuación de asistencia para indicar la precisión general de la respuesta. Si se establece un umbral de citas, los chatbots pueden filtrar las respuestas en el momento de la inferencia que probablemente contengan afirmaciones alucinadas.
En esta página, se describe cómo verificar la fundamentación con la API de check grounding.
Funciones experimentales
Si quieres probar las siguientes funciones experimentales disponibles para la API de verificación de fundamentación, comunícate con tu equipo de cuentas de Google y solicita que te agreguen a la lista de entidades permitidas:
Anti-citations: La función de anti-citations te brinda una puntuación de contradicción que indica en qué medida la respuesta candidata contradice los hechos proporcionados. La respuesta también incluye citas de los hechos contradictorios para cada afirmación. Para obtener más información, consulta Cómo obtener una puntuación de contradicción para un candidato a respuesta.
Puntuación de utilidad: La puntuación de utilidad es una medida de qué tan bien el candidato a respuesta responde una solicitud determinada. Para obtener más información, consulta Cómo obtener una puntuación de utilidad para una respuesta candidata.
Fundamentación con un almacén de datos: Obtén los hechos de fundamentación de un almacén de datos de Vertex AI Search en lugar de proporcionar hechos intercalados. Para obtener más información, consulta Cómo verificar la fundamentación con un almacén de datos.
Términos definidos y explicados
Antes de usar la API de Check Grounding, es útil comprender las entradas y salidas, y cómo estructurar los hechos de fundamentación para obtener los mejores resultados.
Datos de entrada
La API de Check grounding requiere las siguientes entradas en la solicitud.
Respuesta candidata: Una respuesta candidata puede ser cualquier fragmento de texto cuya fundamentación quieras verificar. Por ejemplo, en el contexto de Vertex AI Search, el candidato a respuesta podría ser el resumen de búsqueda generado que responde una consulta. Luego, la API determinaría qué tan fundamentado está el resumen en los hechos de entrada. Una respuesta candidata puede tener una longitud máxima de 4,096 tokens, en la que un token se define como una palabra en una oración o un punto (un signo de puntuación que se usa para finalizar la oración). Por ejemplo, la oración "They wore off-the-rack clothes in 2024" tiene siete tokens, incluidas seis palabras y un punto.
Hechos: Es un conjunto de segmentos de texto que se usarán como referencias para la fundamentación. Se puede proporcionar un conjunto de atributos de metadatos (pares clave-valor) con cada segmento de texto. Por ejemplo, "Autor" y "Título" son claves de atributos típicas.
El servicio admite hasta 200 hechos, cada uno con un máximo de 10,000 caracteres.
Google no recomienda proporcionar un hecho muy grande que contenga toda la información. En cambio, puedes obtener mejores resultados si divides los hechos grandes en hechos más pequeños y proporcionas los atributos adecuados para los hechos más pequeños. Por ejemplo, puedes dividir un hecho extenso por título, autor o URL, y proporcionar esta información en atributos.
Umbral de citas: Es un valor de número de punto flotante de 0 a 1 que controla la confianza en las citas que respaldan la respuesta candidata. Un umbral más alto impone una confianza más estricta. Por lo tanto, un umbral más alto genera menos citas, pero más sólidas.
Datos de salida
La API de Check Grounding devuelve lo siguiente para una respuesta candidata:
Puntuación de fundamentación: La puntuación de fundamentación es un número entre 0 y 1 que indica qué tan fundamentada está una respuesta candidata en el conjunto de hechos proporcionado. Aproxima de forma general la fracción de afirmaciones en la respuesta candidata que se fundamentaron en uno o más de los hechos proporcionados.
Fragmentos citados: Los fragmentos citados son partes de los datos de entrada que respaldan la respuesta candidata.
Afirmaciones y citas: Las afirmaciones y las citas conectan una afirmación (por lo general, una oración) del candidato a respuesta con uno o más fragmentos citados que corroboran la afirmación.
Una reclamación se demarca con sus posiciones de inicio y finalización. Son las posiciones de bytes de la cadena de reclamo codificada en UTF-8. Ten en cuenta que esto no se mide en caracteres y, por lo tanto, se debe renderizar en la interfaz de usuario teniendo en cuenta que algunos caracteres ocupan más de un byte. Por ejemplo, si el texto del reclamo contiene caracteres que no son ASCII, las posiciones de inicio y finalización varían cuando se miden en caracteres (dependientes del lenguaje de programación) y cuando se miden en bytes (independientes del lenguaje de programación).
Puntuación de respaldo a nivel de la afirmación: Cuando se habilita la puntuación a nivel de la afirmación, con cada afirmación, se devuelve una puntuación de respaldo como un número del 0 al 1 que indica qué tan fundamentada está la afirmación en el conjunto de hechos proporcionado. Para obtener más información, consulta Cómo obtener puntuaciones a nivel de la afirmación para un candidato a respuesta.
Se requiere una verificación de fundamentación: Con cada afirmación, se devuelve un valor booleano de grounding-check-required. Cuando se muestra como
False
, significa que el sistema considera que la afirmación no requiere fundamentación y, por lo tanto, no se muestran citas ni refutaciones. Por ejemplo, una oración como "Esto es lo que encontré" no es un hecho en sí y, por lo tanto, no requiere una verificación de fundamentación.Cuando la verificación de fundamentación devuelve
true
, significa que se realizó una verificación de fundamentación y se devolvieron las puntuaciones de asistencia, las citas y las anticitas, si las hubiera.
Obtén una puntuación de asistencia para una respuesta candidata
Para saber qué tan fundamentada está una respuesta candidata en un conjunto de hechos, sigue estos pasos:
Prepara tu conjunto de hechos. Para obtener más información y ejemplos, consulta Términos definidos y explicados.
Llama al método
check
con el siguiente código:
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"
}
}'
Reemplaza lo siguiente:
PROJECT_ID
: Es el número o ID de tu proyecto Google Cloud .CANDIDATE
: Es la cadena de candidato a respuesta para la que deseas obtener una puntuación de asistencia. Por ejemplo,Titanic was directed by James Cameron. It was released in 1997.
. Un candidato a respuesta puede tener una longitud máxima de 4,096 tokens, en la que un token se define como una palabra en una oración o un punto (un signo de puntuación que se usa para finalizar la oración). Por ejemplo, la oración "They wore off-the-rack clothes in 2024" tiene siete tokens, incluidas seis palabras y un punto.TEXT
: Es el segmento de texto que se usará para la fundamentación, por ejemplo,Titanic is a 1997 American epic... Academy Awards.
(consulta el texto completo en Ejemplos de hechos).ATTRIBUTE
: Es el nombre de un atributo de metadatos asociado con el hecho, por ejemplo,author
otitle
. Es una etiqueta definida por el usuario para agregar más información al texto del hecho. Por ejemplo, si el texto de un hechoToronto is the capital of Ontario
tiene un atributoauthor
con el valorWikipedia
, se considera que las siguientes afirmaciones se basan en el hecho:Wikipedia cites that Toronto is the capital of Ontario
Toronto is the capital of Ontario
Sin embargo, la afirmación de que
Government of Ontario claims that Toronto is the capital of Ontario
no está tan fundamentada como las dos primeras.
VALUE
: Es el valor del atributo; por ejemplo,Simple Wikipedia
oTitanic (1997 film)
.CITATION_THRESHOLD
: Es un valor de número de punto flotante de 0 a 1 que determina si se debe citar un hecho para una afirmación en el candidato a respuesta. Un umbral más alto genera menos citas, pero más sólidas, y un umbral más bajo genera más citas, pero más débiles. Si no se configura, el valor de umbral predeterminado es0.6
.
Python
Para obtener más información, consulta la documentación de referencia de la API de AI Applications Python.
Para autenticarte en AI Applications, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ejemplos de hechos
A continuación, se muestran algunos ejemplos de hechos y sus atributos. Estos ejemplos te ayudarán a comprender la respuesta de fundamentación y el formato del comando curl.
Fact 0
Texto:
"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."
Atributos:
{"Author": "Simple Wikipedia"}
Dato 1
Texto:
"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."
Atributos:
{"Author": "Rotten Tomatoes"}
Ejemplo de solicitud
Después de preparar los hechos, puedes enviar la siguiente solicitud y reemplazar el campo CANDIDATE por diferentes cadenas cuya fundamentación quieras verificar.
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"
}
}'
Ejemplos de respuestas posibles y respuestas fundamentadas
En la siguiente tabla, se muestran ejemplos de diferentes candidatos a respuestas y respuestas cuando envías la solicitud de ejemplo, según los datos de ejemplo.
Respuesta candidata | Verifica la respuesta de fundamentación |
---|---|
Here is what I found. Titanic was directed by James Cameron.
|
Puntuación de asistencia: 0.99 Fragmentos citados:
|
Titanic was directed by James Cameron. It was released in
1997.
|
Puntuación de asistencia: 0.99 Fragmentos citados:
|
Titanic was directed by James Cameron. It was based on the sinking
of the RMS Titanic that led to the death of 1500 people.
|
Puntuación de asistencia: 0.95 Fragmentos citados:
|
Titanic was directed by James Cameron. It starred Brad Pitt and
Kate Winslet
|
Puntuación de asistencia: 0.54 Fragmentos citados:
"It starred Brad Pitt and Kate Winslet" no es completamente verdadera, no recibe citas. En este caso, puedes llamar al método con las anti-citaciones habilitadas para obtener una puntuación de contradicción.
Para obtener más información, consulta Cómo obtener una puntuación de contradicción para un candidato a respuesta. |
Obtén puntuaciones a nivel del reclamo para una respuesta candidata
Además de la puntuación de compatibilidad a nivel de la respuesta, puedes obtener una puntuación de compatibilidad a nivel de la afirmación para cada afirmación en una respuesta candidata.
Para obtener las puntuaciones a nivel del reclamo, sigue estos pasos:
Prepara tu conjunto de hechos. Para obtener más información y ejemplos, consulta Términos definidos y explicados.
Llama al método
check
con el siguiente comando cURL: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", } }'
Reemplaza lo siguiente:
PROJECT_ID
: Es el número o ID de tu proyectoGoogle Cloud .CANDIDATE
: Es la cadena de respuesta candidata para la que deseas obtener una puntuación de apoyo, por ejemplo,Titanic was directed by James Cameron. It was released in 1997.
. Una respuesta candidata puede tener una longitud máxima de 4,096 tokens, donde un token se define como una palabra en una oración o un punto (un signo de puntuación que se usa para finalizar la oración). Por ejemplo, la oración "Se vistieron con ropa de confección en 2024" tiene siete tokens, incluidas seis palabras y un punto.TEXT
: Es el segmento de texto que se usará para la fundamentación, por ejemplo,Titanic is a 1997 American epic... Academy Awards.
(consulta el texto completo en Ejemplos de hechos).ATTRIBUTE
: Es el nombre de un atributo de metadatos asociado con el hecho, por ejemplo,author
otitle
. Es una etiqueta definida por el usuario para agregar más información al texto del hecho. Por ejemplo, si el texto de hechoToronto is the capital of Ontario
tiene un atributoauthor
con su valor comoWikipedia
, las siguientes afirmaciones están bien fundamentadas:Wikipedia cites that Toronto is the capital of Ontario
Toronto is the capital of Ontario
Sin embargo, la afirmación de que
Government of Ontario claims that Toronto is the capital of Ontario
no está tan fundamentada.VALUE
: Es el valor del atributo, por ejemplo,Simple Wikipedia
oTitanic (1997 film)
.CITATION_THRESHOLD
: Es un valor de número de punto flotante de 0 a 1 que determina si se debe citar un hecho para una afirmación en el candidato a respuesta. Un umbral más alto genera menos citas, pero más sólidas, para respaldar la afirmación, y un umbral más bajo genera más citas, pero más débiles. Si no se establece, el valor predeterminado del umbral es 0.6.ENABLE_CLAIM_LEVEL_SCORE
: Es un valor booleano. Configura este campo entrue
para habilitar la función de puntuación a nivel del reclamo. Para desactivar esta función, quita este campo o configúralo comofalse
.
Ejemplo de solicitud
Con los ejemplos de hechos de la sección anterior, puedes enviar la siguiente solicitud. Reemplaza el campo CANDIDATE
por diferentes cadenas cuya fundamentación por reclamo deseas verificar.
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,
}
}'
Ejemplo de respuestas con puntuaciones a nivel del reclamo
En la siguiente tabla, se muestra un ejemplo de respuesta candidata y su respuesta cuando envías la solicitud de ejemplo, según los datos de ejemplo.
Respuesta candidata | Verifica la respuesta de fundamentación |
---|---|
Here is what I found. Titanic was directed by James Cameron. It
starred Kate Winslet and Leonardo DiCaprio.
|
Puntuación de asistencia: 0.99 Fragmentos citados:
|
Cómo obtener una puntuación de contradicción para una respuesta candidata
Junto con la puntuación de compatibilidad, también puedes obtener una puntuación de contradicción. La puntuación de contradicción aproxima de forma imprecisa la fracción de afirmaciones que contradicen los hechos proporcionados.
Para probar esta función experimental, comunícate con tu equipo de cuentas de Google y solicita que te agreguen a la lista de entidades permitidas.
Obtén una puntuación de contradicción
Para obtener la puntuación de contradicción, sigue estos pasos:
Prepara tu conjunto de hechos. Para obtener más información y ejemplos, consulta Términos definidos y explicados.
Llama al método
check
con el siguiente comando cURL: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", } }'
Reemplaza lo siguiente:
PROJECT_ID
: Es el número o ID de tu proyectoGoogle Cloud .CANDIDATE
: Es la cadena de respuesta candidata para la que deseas obtener una puntuación de apoyo, por ejemplo,Titanic was directed by James Cameron. It was released in 1997.
. Una respuesta candidata puede tener una longitud máxima de 4,096 tokens, donde un token se define como una palabra en una oración o un punto (un signo de puntuación que se usa para finalizar la oración). Por ejemplo, la oración "Se vistieron con ropa de confección en 2024" tiene siete tokens, incluidas seis palabras y un punto.TEXT
: Es el segmento de texto que se usará para la fundamentación, por ejemplo,Titanic is a 1997 American epic... Academy Awards.
(consulta el texto completo en Ejemplos de hechos).ATTRIBUTE
: Es el nombre de un atributo de metadatos asociado con el hecho, por ejemplo,author
otitle
. Es una etiqueta definida por el usuario para agregar más información al texto del hecho. Por ejemplo, si el texto de hechoToronto is the capital of Ontario
tiene un atributoauthor
con su valor comoWikipedia
, las siguientes afirmaciones están bien fundamentadas:Wikipedia cites that Toronto is the capital of Ontario
Toronto is the capital of Ontario
Sin embargo, la afirmación de que
Government of Ontario claims that Toronto is the capital of Ontario
no está tan fundamentada.VALUE
: Es el valor del atributo, por ejemplo,Simple Wikipedia
oTitanic (1997 film)
.CITATION_THRESHOLD
: Es un valor de número de punto flotante de 0 a 1 que determina si se debe citar un hecho para una afirmación en el candidato a respuesta. Un umbral más alto genera menos citas, pero más sólidas, para respaldar la afirmación, y un umbral más bajo genera más citas, pero más débiles, para respaldar la afirmación. Si no se establece, el valor predeterminado del umbral es 0.6.ENABLE_ANTI_CITATION
: Es un valor booleano. Establece este campo entrue
para habilitar la función experimental que evalúa la puntuación de contradicción. Quita este campo o configúralo comofalse
para inhabilitar esta función.ANTI_CITATION_THRESHOLD
: Es un valor de número de punto flotante de 0 a 1 que determina si se debe citar un hecho como contradictorio de una afirmación en la respuesta candidata. Un umbral más alto genera menos citas, pero más sólidas, que contradicen la afirmación, y un umbral más bajo genera más citas, pero más débiles, que contradicen la afirmación. Si no se establece, el valor predeterminado del umbral es 0.8.
Ejemplo de solicitud
Con los ejemplos de hechos de la sección anterior, puedes enviar la siguiente solicitud. Reemplaza el campo CANDIDATE
por diferentes cadenas cuyos fundamentos y contradicciones deseas verificar.
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",
}
}'
Ejemplo de respuestas con contradicciones
En la siguiente tabla, se muestra un ejemplo de respuesta candidata y su respuesta cuando envías la solicitud de ejemplo, según los datos de ejemplo.
Respuesta candidata | Verifica la respuesta de fundamentación |
---|---|
Titanic was directed by James Cameron. It starred Brad Pitt and
Kate Winslet
|
Puntuación de compatibilidad: 0.36 Puntuación de contradicción: 0.49 Fragmentos citados:
|
Obtener una puntuación de utilidad para una posible respuesta
Para probar esta función experimental, comunícate con tu equipo de cuentas de Google y solicita que te agreguen a la lista de entidades permitidas.
Además de la puntuación de compatibilidad y la puntuación de contradicción, la API de verificación de fundamentación puede proporcionar una puntuación de utilidad. Una respuesta útil es aquella que satisface de manera eficaz la solicitud del usuario (como se indica en la instrucción) de forma informativa. La calificación de utilidad es una medida de qué tan bien la respuesta cumple con los siguientes criterios:
- Aborda la intención principal de la instrucción.
- Proporciona detalles completos y, a la vez, es conciso
- Responde directamente la pregunta o completa la tarea solicitada en la instrucción.
- Ofrece información pertinente
- Es clara y directa.
- Evita detalles innecesarios y jerga
Para obtener una puntuación de utilidad junto con la puntuación de fundamentación, debes proporcionar una instrucción junto con las respuestas candidatas y los hechos. La API de Check grounding revisa la respuesta candidata con la instrucción y otorga una puntuación que indica qué tan útil es la respuesta candidata para responder la instrucción. La puntuación se encuentra en el rango de [0, 1], en el que cuanto mayor sea la puntuación, más útil será la respuesta.
Cómo obtener una puntuación de utilidad
Para obtener la puntuación de utilidad, sigue estos pasos:
Prepara tu instrucción y la respuesta candidata.
Llama al método
check
con el siguiente comando cURL: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", }'
Reemplaza lo siguiente:
PROJECT_ID
: Es el número o ID de tu proyectoGoogle Cloud .CANDIDATE
: Es la cadena de respuesta candidata para la que deseas obtener una puntuación de utilidad, por ejemplo,Titanic was directed by James Cameron. It was released in 1997.
. Una respuesta candidata puede tener una longitud máxima de 4,096 tokens.TEXT
: Es el segmento de texto que se usará para la fundamentación, por ejemplo,Titanic is a 1997 American epic... Academy Awards.
(consulta el texto completo en Ejemplos de hechos).ATTRIBUTE
: Es el nombre de un atributo de metadatos asociado con el hecho, por ejemplo,author
otitle
. Es una etiqueta definida por el usuario para agregar más información al texto del hecho. Por ejemplo, si el texto de hechoToronto is the capital of Ontario
tiene un atributoauthor
con su valor comoWikipedia
, las siguientes afirmaciones están bien fundamentadas:Wikipedia cites that Toronto is the capital of Ontario
Toronto is the capital of Ontario
Sin embargo, la afirmación de que
Government of Ontario claims that Toronto is the capital of Ontario
no está tan fundamentada.VALUE
: Es el valor del atributo, por ejemplo,Simple Wikipedia
oTitanic (1997 film)
.PROMPT
: La instrucción es la búsqueda para la que se generó la respuesta candidata, por ejemplo,Who directed and starred in the movie Titanic?
.
Ejemplo de solicitud
Con los ejemplos de hechos de la sección anterior, puedes enviar la siguiente solicitud. Reemplaza el campo CANDIDATE
por diferentes candidatos de respuesta para obtener una puntuación de utilidad de la respuesta.
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?"
}'
Ejemplo de respuestas con puntuaciones de utilidad
En la siguiente tabla, se muestran ejemplos de candidatos a respuestas con sus puntuaciones de utilidad. En cada caso, la instrucción es Who directed and starred in the Titanic?
.
Respuesta candidata | Puntuación de utilidad | Explicación de la puntuación |
---|---|---|
Titanic was directed by James Cameron. It starred Leonardo DiCaprio and
Kate Winslet.
|
0.980
|
Puntuación concisa y completa |
Cameron, DiCaprio and Winslet.
|
0.947
|
Incompleto |
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
|
No es conciso |
Verifica la fundamentación con un almacén de datos
De forma predeterminada, la fundamentación se verifica con un conjunto de hechos que se proporcionan de forma intercalada en la llamada a la API de Check Grounding. Sin embargo, como alternativa a proporcionar los hechos intercalados, puedes verificar la respuesta candidata con todos los hechos en un almacén de datos de Vertex AI Search.
Cuando llamas a la API de verificación de fundamentación, proporcionas el nombre de una app de búsqueda de Vertex AI. A su vez, los almacenes de datos no estructurados asociados con esa app de búsqueda contienen el conjunto de hechos que se usan para verificar la fundamentación de la respuesta candidata.
Para probar esta función experimental, comunícate con tu equipo de cuentas de Google y solicita que te agreguen a la lista de entidades permitidas.
Para verificar la fundamentación en un almacén de datos, sigue estos pasos:
Identifica una app de búsqueda personalizada que esté asociada con al menos un almacén de datos que contenga datos no estructurados. Los documentos de este almacén de datos sirven como fuente de tus hechos fundamentales.
Para obtener información sobre cómo crear un almacén de datos y una app de búsqueda, consulta Crea un almacén de datos de búsqueda y Crea una app de búsqueda.
Busca el ID de tu app. Si ya tienes el ID de tu app, ve al siguiente paso.
En la consola de Google Cloud , ve a la página AI Applications.
Ve a Apps.
En la página Apps, busca el nombre de tu app y obtén su ID en la columna ID.
Llama al método
check
con el siguiente comando cURL: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" } } }'
Reemplaza lo siguiente:
PROJECT_ID
: Es el número o ID de tu proyectoGoogle Cloud .SOURCE_PROJECT_ID
: Es el número o ID del proyecto que contiene la app para la fundamentación.Este proyecto de origen debe estar en la misma región que tu proyecto, por ejemplo, ambos deben ser
global
oeu
. (Para obtener información general sobre las multirregiones, consulta Ubicación).CANDIDATE
: Es la cadena de respuesta candidata para la que deseas obtener una puntuación de apoyo, por ejemplo,Titanic was directed by James Cameron. It was released in 1997.
. Una respuesta candidata puede tener una longitud máxima de 4,096 tokens, donde un token se define como una palabra en una oración o un punto (un signo de puntuación que se usa para finalizar la oración). Por ejemplo, la oración "Se vistieron con ropa de confección en 2024" tiene siete tokens, incluidas seis palabras y un punto.APP_ID
: Es el ID de la app de búsqueda de Vertex AI cuyos almacenes de datos no estructurados contienen los hechos que deseas usar como fuente de fundamentación.