Comprobar la información con RAG

Como parte de tu experiencia de generación aumentada por recuperación (RAG) en aplicaciones de IA, puedes comprobar la fundamentación para determinar cómo se fundamenta un fragmento de texto (llamado respuesta candidata) en un conjunto de textos de referencia (llamados datos).

La API Check Grounding devuelve una puntuación de asistencia general de 0 a 1, que indica en qué medida la respuesta candidata coincide con los hechos proporcionados. La respuesta también incluye citas de los hechos que respaldan cada afirmación de la respuesta candidata.

Para que una respuesta sea perfecta, todas las afirmaciones que contenga deben estar respaldadas por uno o varios de los hechos proporcionados. Es decir, la reclamación se deriva totalmente de los hechos. Si la reclamación solo se implica parcialmente, no se considera fundamentada. Por ejemplo, la afirmación "Google fue fundada por Larry Page y Sergey Brin en 1975" solo es parcialmente correcta (los nombres de los fundadores son correctos, pero la fecha no) y, por lo tanto, se considera infundada. En esta versión de la API de comprobación de la base, una frase se considera una sola afirmación.

Puedes usar la API de comprobación de la fundamentación para comprobar cualquier fragmento de texto. Puede ser un texto breve generado por una persona o una respuesta generada automáticamente. Un caso práctico habitual es comprobar una respuesta generada por un LLM con un conjunto de datos determinado. La API check grounding se ha diseñado para que sea rápida, con una latencia inferior a 500 ms. Esta velocidad permite que los chatbots llamen a la API de comprobación de la base durante cada inferencia sin que se produzca una ralentización significativa. La API de comprobación de la base también puede proporcionar referencias para respaldar sus conclusiones, de modo que los usuarios puedan saber qué partes de la respuesta generada son fiables. La API también proporciona una puntuación de asistencia para indicar la precisión general de la respuesta. Al definir 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 comprobar la información de base mediante la API check grounding.

Funciones experimentales

Si quieres probar las siguientes funciones experimentales que están disponibles para la API de comprobación de la base, ponte en contacto con el equipo de tu cuenta de Google y pide que te añadan a la lista de permitidos:

Términos definidos y explicados

Antes de usar la API de comprobación de fundamentos, es útil conocer las entradas y salidas, así como la estructura de los hechos de los fundamentos para obtener los mejores resultados.

Datos de entrada

La API de comprobación de la base requiere las siguientes entradas en la solicitud.

  • Respuesta candidata: una respuesta candidata puede ser cualquier fragmento de texto cuya fundamentación quieras comprobar. Por ejemplo, en el contexto de Vertex AI Search, el candidato a respuesta puede ser el resumen de búsqueda generado que responde a una consulta. A continuación, la API determinaría hasta qué punto se basa el resumen en los datos de entrada. Una respuesta candidata puede tener una longitud máxima de 4096 tokens, donde un token se define como una palabra de una frase o un punto (un signo de puntuación que se usa para terminar la frase). Por ejemplo, la frase "They wore off-the-rack clothes in 2024" tiene siete tokens, incluidas seis palabras y un punto.

  • Datos: conjunto de segmentos de texto que se usarán como referencias para fundamentar la respuesta. 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 atributo habituales.

    El servicio admite hasta 200 datos, 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 su lugar, puede obtener mejores resultados dividiendo los datos grandes en datos más pequeños y proporcionando los atributos adecuados para estos datos. Por ejemplo, puede desglosar un hecho de gran tamaño por título, autor o URL, y proporcionar esta información en atributos.

  • Umbral de citas: valor flotante de 0 a 1 que controla la confianza de 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 Check Grounding devuelve lo siguiente para una respuesta candidata:

  • Puntuación de asistencia: es un número entre 0 y 1 que indica el grado de fundamentación de una respuesta candidata en el conjunto de datos proporcionado. Aproxima de forma general la fracción de reclamaciones de la respuesta candidata que se ha determinado que se basan en uno o varios de los hechos proporcionados.

  • 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 (normalmente, una frase) del candidato de respuesta con uno o varios fragmentos citados que corroboran la afirmación.

    Una reclamación se delimita mediante sus posiciones de inicio y de finalización. Estas son las posiciones de los bytes de la cadena de la reclamación codificada en UTF-8. Ten en cuenta que no se mide en caracteres y, por lo tanto, debe renderizarse en la interfaz de usuario teniendo en cuenta que algunos caracteres ocupan más de un byte. Por ejemplo, si el texto de la reclamación contiene caracteres no ASCII, las posiciones de inicio y fin varían si se miden en caracteres (depende del lenguaje de programación) o en bytes (no depende del lenguaje de programación).

  • Puntuación de asistencia a nivel de reclamación: cuando se habilita la puntuación a nivel de reclamación, con cada reclamación se devuelve una puntuación de asistencia como un número del 0 al 1 que indica el grado de fundamentación de la reclamación en el conjunto de hechos proporcionado. Para obtener más información, consulta Obtener puntuaciones a nivel de reclamación de una respuesta candidata.

  • Se requiere una comprobación de la información: con cada reclamación, se devuelve un valor booleano de comprobación de la información. Si se devuelve False, significa que el sistema considera que la afirmación no requiere pruebas y, por lo tanto, no se devuelven citas ni anticitas. Por ejemplo, una frase como "Esto es lo que he encontrado" no es un hecho por sí misma y, por lo tanto, no requiere una comprobación de la base.

    Cuando grounding-check-required devuelve true, significa que se ha realizado una comprobación de grounding y se devuelven las puntuaciones de asistencia, las citas y las anticitas, si las hay.

Obtener una puntuación de asistencia para una respuesta candidata

Para saber cómo se basa una respuesta candidata en un conjunto de hechos, sigue estos pasos:

  1. Prepara tu conjunto de datos. Para obtener más información y ejemplos, consulta Términos definidos y explicados.

  2. 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"
  }
}'

Haz los cambios siguientes:

  • PROJECT_ID: el número o el ID de tu Google Cloud proyecto.

  • CANDIDATE: la cadena de respuesta candidata de la que quieres obtener una puntuación de asistencia. Por ejemplo, Titanic was directed by James Cameron. It was released in 1997.. Una respuesta candidata puede tener una longitud máxima de 4096 tokens, donde un token se define como una palabra de una frase o un punto (un signo de puntuación que se usa para terminar la frase). Por ejemplo, la frase "They wore off-the-rack clothes in 2024" (Llevaban ropa de confección en el 2024) tiene siete tokens, incluidas seis palabras y un punto.

  • TEXT: el segmento de texto que se va a usar para fundamentar la respuesta. Por ejemplo, Titanic is a 1997 American epic... Academy Awards. (consulta el texto completo en Ejemplos de hechos).

  • ATTRIBUTE: el nombre de un atributo de metadatos asociado al hecho (por ejemplo, author o title). Es una etiqueta definida por el usuario para añadir más información al texto del hecho. Por ejemplo, si el texto de la verificación Toronto is the capital of Ontario tiene un atributo author con el valor Wikipedia, 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: el valor del atributo, por ejemplo, Simple Wikipedia o Titanic (1997 film).

  • CITATION_THRESHOLD: valor flotante entre 0 y 1 que determina si se debe citar un hecho para una afirmación en la respuesta candidata. Cuanto más alto sea el umbral, menos citas habrá, pero serán más sólidas. Cuanto más bajo sea el umbral, más citas habrá, pero serán menos sólidas. Si no se define, el valor predeterminado del umbral es 0.6.

Python

Para obtener más información, consulta la documentación de referencia de la API AI Applications Python.

Para autenticarte en las aplicaciones de IA, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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)

Ejemplos de hechos

A continuación, se muestran un par de ejemplos de hechos y sus atributos. Estos ejemplos te ayudarán a entender la respuesta de fundamentación y el formato del comando curl.

  • Dato 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"}

  • Hecho 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"}

Solicitud de ejemplo

Después de preparar los datos, puedes enviar la siguiente solicitud y sustituir el campo CANDIDATE por diferentes cadenas cuya base quieras comprobar.

    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 candidatas y respuestas fundamentadas

En la siguiente tabla se muestran ejemplos de diferentes respuestas candidatas y respuestas cuando envías la solicitud de ejemplo, en función de los datos de ejemplo.

Candidato a respuesta Comprobar la respuesta de la base
Here is what I found. Titanic was directed by James Cameron. Puntuación de asistencia: 0.99

Fragmentos citados:
  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.....
Afirmaciones y citas:
  • 0. Here is what I found.
    Se requiere una comprobación de la base: false
  • 1. Titanic was directed by James Cameron.
    Citas: [0]
    Comprobación de la base necesaria: true
Titanic was directed by James Cameron. It was released in 1997. Puntuación de asistencia: 0.99

Fragmentos citados:
  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....
Afirmaciones y citas:
  • 0. Titanic was directed by James Cameron.
    Citas: [0]
    Comprobación de la base necesaria: true
  • 1. It was released in 1997.
    Citas: [1]
    Comprobación de la base necesaria: 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. Puntuación de asistencia: 0.95

Fragmentos citados:
  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....
Afirmaciones y citas:
  • 0. Cited chunks: Titanic was directed by James Cameron.
    Citas: [0]
    Comprobación de la información necesaria: true
  • 1. Cited chunks: It was based on the sinking of the RMS Titanic that led to the death of 1500 people.
    Citas: [1]
    Comprobación de la base obligatoria: true
Titanic was directed by James Cameron. It starred Brad Pitt and Kate Winslet Puntuación de asistencia: 0.54

Fragmentos citados:
  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....
Afirmaciones y citas:
  • 0. Titanic was directed by James Cameron.
    Citas: [0]
    Comprobación de la base necesaria: true
  • 1. It starred Brad Pitt and Kate Winslet
    Citas: []
    Comprobación de la base necesaria: true
Nota: Aunque Kate Winslet protagonizó la película, como la afirmación "It starred Brad Pitt and Kate Winslet" no es totalmente cierta, no recibe ninguna cita. En este caso, puedes llamar al método con las anticitas habilitadas para obtener una puntuación de contradicción. Para obtener más información, consulta Obtener una puntuación de contradicción de una respuesta candidata.

Obtener puntuaciones a nivel de reclamación de una respuesta candidata

Además de la puntuación de asistencia a nivel de respuesta, puedes obtener una puntuación de asistencia a nivel de reclamación para cada reclamación de una respuesta candidata.

Para obtener las puntuaciones a nivel de reclamación, siga estos pasos:

  1. Prepara tu conjunto de datos. Para obtener más información y ejemplos, consulta Términos definidos y explicados.

  2. 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",
    }
    }'
    

    Haz los cambios siguientes:

    • PROJECT_ID: el número o el ID de tuGoogle Cloud proyecto.

    • CANDIDATE: la cadena de respuesta candidata de la que quieres obtener una puntuación de asistencia. Por ejemplo, Titanic was directed by James Cameron. It was released in 1997.. Una respuesta candidata puede tener una longitud máxima de 4096 tokens, donde un token se define como una palabra de una frase o un punto (un signo de puntuación que se usa para terminar la frase). Por ejemplo, la frase "They wore off-the-rack clothes in 2024" tiene siete tokens, incluidas seis palabras y un punto.

    • TEXT: el segmento de texto que se va a usar para la fundamentación. Por ejemplo, Titanic is a 1997 American epic... Academy Awards. (consulta el texto completo en Ejemplos de hechos).

    • ATTRIBUTE: el nombre de un atributo de metadatos asociado al hecho (por ejemplo, author o title). Es una etiqueta definida por el usuario para añadir más información al texto del hecho. Por ejemplo, si el texto de un hecho Toronto is the capital of Ontario tiene un atributo author con el valor Wikipedia, 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: el valor del atributo, por ejemplo, Simple Wikipedia o Titanic (1997 film).

    • CITATION_THRESHOLD: valor flotante entre 0 y 1 que determina si se debe citar un hecho para una afirmación en la respuesta candidata. Cuanto más alto sea el umbral, menos citas habrá, pero serán más sólidas para respaldar la afirmación. Cuanto más bajo sea el umbral, más citas habrá, pero serán menos sólidas. Si no se define, el valor predeterminado del umbral es 0,6.

    • ENABLE_CLAIM_LEVEL_SCORE: valor booleano. Asigna el valor true a este campo para habilitar la función de puntuación a nivel de reclamación. Para desactivar esta función, quita este campo o asigna el valor false a este campo.

Solicitud de ejemplo

A partir de los datos de ejemplo de la sección anterior, puedes enviar la siguiente solicitud. Sustituye el campo CANDIDATE por diferentes cadenas de texto cuya fundamentación por reclamación quieras comprobar.

    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 de reclamación

En la siguiente tabla se muestra un ejemplo de respuesta y su respuesta cuando envías la solicitud de ejemplo, basada en los datos de ejemplo.

Candidato a respuesta Comprobar la respuesta de la base
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:
  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.....
Afirmaciones y citas:
  • 0. Here is what I found.
    Se requiere una comprobación de la base: false
  • 1. Titanic was directed by James Cameron.
    Citas: [0]
    Comprobación de la base necesaria: true
    Puntuación: 0.99
  • 2. It starred Kate Winslet and Leonardo DiCaprio.
    Citas: [0]
    Comprobación de la base necesaria: true
    Puntuación: 0.99

Obtener una puntuación de contradicción para una respuesta candidata

Además de la puntuación de asistencia, también puedes obtener una puntuación de contradicción. La puntuación de contradicción aproxima la fracción de las afirmaciones que contradicen los hechos proporcionados.

Para probar esta función experimental, ponte en contacto con el equipo de tu cuenta de Google y pide que te añadan a la lista de permitidos.

Obtener una puntuación de contradicción

Para obtener la puntuación de contradicción, sigue estos pasos:

  1. Prepara tu conjunto de datos. Para obtener más información y ejemplos, consulta Términos definidos y explicados.

  2. 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",
    }
    }'
    

    Haz los cambios siguientes:

    • PROJECT_ID: el número o el ID de tuGoogle Cloud proyecto.

    • CANDIDATE: la cadena de respuesta candidata de la que quieres obtener una puntuación de asistencia. Por ejemplo, Titanic was directed by James Cameron. It was released in 1997.. Una respuesta candidata puede tener una longitud máxima de 4096 tokens, donde un token se define como una palabra de una frase o un punto (un signo de puntuación que se usa para terminar la frase). Por ejemplo, la frase "They wore off-the-rack clothes in 2024" tiene siete tokens, incluidas seis palabras y un punto.

    • TEXT: el segmento de texto que se va a usar para la fundamentación. Por ejemplo, Titanic is a 1997 American epic... Academy Awards. (consulta el texto completo en Ejemplos de hechos).

    • ATTRIBUTE: el nombre de un atributo de metadatos asociado al hecho (por ejemplo, author o title). Es una etiqueta definida por el usuario para añadir más información al texto del hecho. Por ejemplo, si el texto de un hecho Toronto is the capital of Ontario tiene un atributo author con el valor Wikipedia, 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: el valor del atributo, por ejemplo, Simple Wikipedia o Titanic (1997 film).

    • CITATION_THRESHOLD: valor flotante entre 0 y 1 que determina si se debe citar un hecho para una afirmación en la respuesta candidata. Un umbral más alto da lugar a menos citas, pero más sólidas, para respaldar la afirmación, mientras que un umbral más bajo da lugar a más citas, pero más débiles, para respaldar la afirmación. Si no se define, el valor predeterminado del umbral es 0,6.

    • ENABLE_ANTI_CITATION: valor booleano. Define este campo como true para habilitar la función experimental y evaluar la puntuación de contradicción. Quita este campo o asigna el valor false a este campo para desactivar esta función.

    • ANTI_CITATION_THRESHOLD: un valor flotante entre 0 y 1 que determina si se debe citar un hecho como contradictorio a una afirmación en la respuesta candidata. Un umbral más alto da lugar a menos citas, pero más sólidas, que contradicen la afirmación, mientras que un umbral más bajo da lugar a más citas, pero más débiles, que contradicen la afirmación. Si no se define, el valor predeterminado del umbral es 0,8.

Solicitud de ejemplo

A partir de los datos de ejemplo de la sección anterior, puedes enviar la siguiente solicitud. Sustituye el campo CANDIDATE por diferentes cadenas cuya base y contradicciones quieras comprobar.

    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 y su respuesta cuando envías la solicitud de ejemplo, basada en los datos de ejemplo.

Candidato a respuesta Comprobar la respuesta de la base
Titanic was directed by James Cameron. It starred Brad Pitt and Kate Winslet Puntuación de asistencia: 0.36

Puntuación de contradicción: 0.49

Fragmentos citados:
  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....
Afirmaciones y citas:
  • 0. Titanic was directed by James Cameron.
    Citas: [0] Anticitas: []
    Comprobación de la base necesaria: true
  • 1. It starred Brad Pitt and Kate Winslet
    Citas: [] Anticitas: [0]
    Comprobación de la base necesaria: true

Obtener una puntuación de utilidad de una respuesta candidata

Para probar esta función experimental, ponte en contacto con el equipo de tu cuenta de Google y pide que te añadan a la lista de permitidos.

Además de la puntuación de asistencia y la puntuación de contradicción, la API checkGrounding puede proporcionar una puntuación de utilidad. Una respuesta útil es aquella que cumple de forma eficaz la solicitud del usuario (tal como se indica en la petición) de forma informativa. La puntuación de utilidad mide la eficacia de la respuesta en los siguientes aspectos:

  • Responde a la intención principal de la petición
  • Proporciona todos los detalles de forma concisa
  • Responde directamente a la pregunta o completa la tarea solicitada en la petición
  • Ofrece información pertinente
  • Es clara y directa
  • Evita los detalles innecesarios y la jerga

Para obtener una puntuación de utilidad junto con la puntuación de fundamentación, debes proporcionar una petición junto con las respuestas y los datos candidatos. La API de comprobación de la base revisa la respuesta candidata con la petición y asigna una puntuación que indica lo útil que es la respuesta candidata para responder a la petición. La puntuación está comprendida entre 0 y 1. Cuanto mayor sea la puntuación, más útil será la respuesta.

Obtener una puntuación de utilidad

Para obtener la puntuación de utilidad, sigue estos pasos:

  1. Prepara la petición y la respuesta candidata.

  2. 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",
    }'
    

    Haz los cambios siguientes:

    • PROJECT_ID: el número o el ID de tuGoogle Cloud proyecto.

    • CANDIDATE: la cadena de respuesta candidata de la que quieres 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 4096 tokens.

    • TEXT: el segmento de texto que se va a usar para la fundamentación. Por ejemplo, Titanic is a 1997 American epic... Academy Awards. (consulta el texto completo en Ejemplos de hechos).

    • ATTRIBUTE: el nombre de un atributo de metadatos asociado al hecho (por ejemplo, author o title). Es una etiqueta definida por el usuario para añadir más información al texto del hecho. Por ejemplo, si el texto de un hecho Toronto is the capital of Ontario tiene un atributo author con el valor Wikipedia, 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: el valor del atributo, por ejemplo, Simple Wikipedia o Titanic (1997 film).

    • PROMPT: la petición es la consulta para la que se ha generado la respuesta candidata. Por ejemplo, Who directed and starred in the movie Titanic?.

Solicitud de ejemplo

A partir de los datos de ejemplo de la sección anterior, puedes enviar la siguiente solicitud. Sustituye el campo CANDIDATE por diferentes opciones 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 respuestas candidatas con sus puntuaciones de utilidad. En cada caso, la petición es Who directed and starred in the Titanic?

Candidato a respuesta 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

Comprobar la información de base con un almacén de datos

De forma predeterminada, la fundamentación se comprueba con un conjunto de hechos que se proporcionan en línea en la llamada a la API de comprobación de fundamentos. Sin embargo, como alternativa a proporcionar los hechos de forma directa, puedes comparar la respuesta candidata con todos los hechos de un almacén de datos de Vertex AI Search.

Cuando llamas a la API de comprobación de la vinculación, proporcionas el nombre de una aplicación de búsqueda de Vertex AI. A su vez, los almacenes de datos no estructurados asociados a esa aplicación de búsqueda contienen el conjunto de hechos que se utilizan para comprobar la vinculación de la respuesta candidata.

Para probar esta función experimental, ponte en contacto con el equipo de tu cuenta de Google y pide que te añadan a la lista de permitidos.

Para comprobar la fundamentación en un almacén de datos, sigue estos pasos:

  1. Identifica una aplicación de búsqueda personalizada asociada a al menos un almacén de datos que contenga datos sin estructurar. Los documentos de este almacén de datos sirven como fuente de los hechos que fundamentan las respuestas.

    Para saber cómo crear un almacén de datos y una aplicación de búsqueda, consulta Crear un almacén de datos de búsqueda y Crear una aplicación de búsqueda.

  2. Busca el ID de tu aplicación. Si ya tienes el ID de tu aplicación, ve al siguiente paso.

    1. En la Google Cloud consola, ve a la página Aplicaciones de IA.

      Ir a Aplicaciones

    2. En la página Aplicaciones, busca el nombre de tu aplicación y consulta su ID en la columna ID.

  3. 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"
          }
        }
    }'
    

    Haz los cambios siguientes:

    • PROJECT_ID: el número o el ID de tuGoogle Cloud proyecto.

    • SOURCE_PROJECT_ID: el número o el ID del proyecto que contiene la aplicación para la fundamentación.

      Este proyecto de origen debe estar en la misma región que el tuyo (por ejemplo, ambos en global o ambos en eu). Para obtener información general sobre las multirregiones, consulta Ubicación.

    • CANDIDATE: la cadena de respuesta candidata de la que quieres obtener una puntuación de asistencia. Por ejemplo, Titanic was directed by James Cameron. It was released in 1997.. Una respuesta candidata puede tener una longitud máxima de 4096 tokens, donde un token se define como una palabra de una frase o un punto (un signo de puntuación que se usa para terminar la frase). Por ejemplo, la frase "They wore off-the-rack clothes in 2024" tiene siete tokens, incluidas seis palabras y un punto.

    • APP_ID: el ID de la aplicación de búsqueda de Vertex AI cuyos almacenes de datos no estructurados contienen los datos que quieres usar como fuente de información.