Cómo verificar la conexión a tierra con RAG

Como parte de tu experiencia de Generación mejorada por recuperación (RAG) en Vertex AI Agent Builder, puedes verificar la fundamentación para determinar qué tan fundamentado está un texto (llamado respuesta candidata) en un conjunto determinado de textos de referencia (llamados hechos).

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

La justificación perfecta requiere que cada afirmación de la respuesta candidata se base en uno o más de los hechos dados. En otras palabras, los hechos implican por completo la afirmación. Si el reclamo solo se implica de forma parcial, no se considera fundamentado. Por ejemplo, la afirmación "Larry Page y Sergey Brin fundaron Google en 1975" solo es correcta en parte (los nombres de los fundadores son correctos, pero la fecha es incorrecta) y, por lo tanto, se considera que toda la afirmación no tiene fundamento. En esta versión de la API de verificación de conexión a tierra, una oración se considera un solo reclamo.

Puedes usar la API de verificación de conexión a tierra para verificar cualquier texto. Puede ser un texto generado por humanos o una respuesta generada por máquinas. 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 conexión a tierra está diseñada para ser rápida, con una latencia inferior a 500 ms. Esta velocidad permite que los bots de chat llamen a la API de verificación de conexión a tierra durante cada inferencia, sin generar una ralentización significativa. La API de verificación de conexión a tierra también puede proporcionar referencias para respaldar sus conclusiones, de modo que los usuarios puedan saber qué partes de la respuesta generada son confiables. La API también proporciona una puntuación de compatibilidad para indicar la precisión general de la respuesta. Si estableces un umbral de cita, 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 el aislamiento con la API de verificación de aislamiento.

Funciones experimentales

Si quieres probar las siguientes funciones experimentales que están disponibles para la API de check grounding, comunícate con tu equipo de Cuentas de Google y solicita que te agreguen a la lista de entidades permitidas:

Términos definidos y explicados

Antes de usar la API de verificación de puesta a tierra, es útil comprender las entradas y salidas, y cómo estructurar tus datos de puesta a tierra para obtener los mejores resultados.

Datos de entrada

La API de verificación de conexión a tierra requiere las siguientes entradas en la solicitud.

  • Respuesta candidata: Una respuesta candidata puede ser cualquier fragmento de texto cuya fundamentación deseas verificar. Por ejemplo, en el contexto de Vertex AI Search, la respuesta candidata 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, 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 "Usaban ropa de catálogo en 2024" tiene siete tokens, incluidas seis palabras y un punto.

  • Datos: Es un conjunto de segmentos de texto que se usarán como referencias para la justificació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 datos, cada uno con un máximo de 10,000 caracteres.

    Google recomienda no proporcionar un hecho muy extenso 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 los atributos.

  • Umbral de citaciones: Es un valor de número de punto 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 de Check Grounding muestra lo siguiente para una respuesta candidata:

  • Puntuación de respaldo: La puntuación de respaldo es un número de 0 a 1 que indica qué tan fundamentada está una respuesta candidata en el conjunto de hechos proporcionado. Se aproxima de manera imprecisa a la fracción de afirmaciones en la respuesta candidata que se determinó que se basaban en uno o más de los hechos dados.

  • Fragmentos citados: Los fragmentos citados son partes de los datos de entrada que respaldan la respuesta candidata.

  • Afirmaciones y citas: Las afirmaciones y citas conectan una afirmación (por lo general, una oración) de la respuesta candidata a uno o más de los fragmentos citados que la corroboran.

    Cuando se habilita la puntuación a nivel del reclamo, con cada reclamo, se muestra una puntuación de respaldo como un número de 0 a 1 que indica qué tan fundamentado está el reclamo en el conjunto de hechos proporcionado. Para obtener más información, consulta Obtén puntuaciones a nivel de la declaración para una respuesta candidata.

  • Verificación de conexión a tierra obligatoria: Con cada reclamo, se muestra un valor booleano de verificación de conexión a tierra obligatoria. Cuando se muestra como False, significa que el sistema considera que la declaración no requiere justificación y, por lo tanto, no se muestran citas ni contracitas. 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 los fundamentos.

    Cuando grounding-check-required se muestra como true, significa que se realizó una verificación de conexión a tierra y se muestran las puntuaciones de asistencia, las citas y las anticitas, si las hay.

Cómo obtener una puntuación de compatibilidad para una respuesta candidata

Para saber qué tan fundamentada está 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"
  }
}'

Reemplaza lo siguiente:

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

  • CANDIDATE: Es la cadena de respuesta candidata para la que deseas obtener una puntuación de compatibilidad, 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 "Usaban ropa de catálogo en 2024" tiene siete tokens, incluidas seis palabras y un punto.

  • TEXT: Es el segmento de texto que se usará para la justificació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 o title. Esta es una etiqueta definida por el usuario para agregar más información al texto del hecho. Por ejemplo, si el texto del hecho Toronto is the capital of Ontario tiene un atributo author con el valor Wikipedia, las siguientes afirmaciones se consideran fundamentadas 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 afirmaciones.

  • VALUE: Es el valor del atributo, por ejemplo, Simple Wikipedia o Titanic (1997 film).

  • CITATION_THRESHOLD: Un valor de punto flotante de 0 a 1 que determina si se debe citar un hecho para una afirmación en la respuesta candidata. Un umbral más alto genera menos citas, pero más sólidas, mientras que 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.

Python

Para obtener más información, consulta la documentación de referencia de la API de Python del compilador de agentes de Vertex AI.

Para autenticarte en Vertex AI Agent Builder, 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.

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 algunos ejemplos de hechos y sus atributos. Estos ejemplos te ayudarán a comprender la respuesta de puesta a tierra 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"}

  • 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 datos, puedes enviar la siguiente solicitud y reemplazar el campo CANDIDATE por diferentes cadenas cuya conexión a tierra 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"
    }
    }'

Ejemplos de respuestas candidatas y respuestas de justificación

En la siguiente tabla, se muestran ejemplos de diferentes respuestas y candidatos a respuestas cuando envías la solicitud de ejemplo, según los datos de ejemplo.

Candidato de respuesta Cómo verificar la respuesta a la puesta a tierra
Here is what I found. Titanic was directed by James Cameron. Puntuación de compatibilidad: 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.
    Verificación de conexión a tierra obligatoria: false
  • 1. Titanic was directed by James Cameron.
    Citas: [0]
    Verificación de puesta a tierra obligatoria: true
Titanic was directed by James Cameron. It was released in 1997. Puntuación de compatibilidad: 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]
    Verificación de puesta a tierra obligatoria: true
  • 1. It was released in 1997.
    Citas: [1]
    Verificación de puesta a tierra obligatoria: 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 compatibilidad: 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]
    Verificación de puesta a tierra obligatoria: true
  • 1. Cited chunks: It was based on the sinking of the RMS Titanic that led to the death of 1500 people.
    Citas: [1]
    Verificación de puesta a tierra obligatoria: true
Titanic was directed by James Cameron. It starred Brad Pitt and Kate Winslet Puntuación de compatibilidad: 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]
    Verificación de puesta a tierra obligatoria: true
  • 1. It starred Brad Pitt and Kate Winslet
    Citas: []
    Verificación de puesta a tierra obligatoria: true
Nota: Aunque Kate Winslet protagonizó la película, como la afirmación "It starred Brad Pitt and Kate Winslet" no es del todo cierta, no recibe citas. 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 Cómo obtener una puntuación de contradicción para una respuesta candidata.

Cómo obtener una puntuación de contradicción para una respuesta candidata

Además de la puntuación de apoyo, también puedes obtener una puntuación de contradicción. La puntuación de contradicción se aproxima de forma aproximada a la fracción de afirmaciones que contradicen los hechos proporcionados.

Para probar esta función experimental, comunícate con el 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:

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

    Reemplaza lo siguiente:

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

    • CANDIDATE: Es la cadena de respuesta candidata para la que deseas obtener una puntuación de compatibilidad, 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 "Usaban ropa de catálogo en 2024" tiene siete tokens, incluidas seis palabras y un punto.

    • TEXT: Es el segmento de texto que se usará para la justificació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 o title. Es una etiqueta definida por el usuario para agregar más información al texto de los datos. Por ejemplo, si el texto de hechos Toronto is the capital of Ontario tiene un atributo author con el valor Wikipedia, las siguientes afirmaciones están 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 bien fundamentada.

    • VALUE: Es el valor del atributo, por ejemplo, Simple Wikipedia o Titanic (1997 film).

    • CITATION_THRESHOLD: Un valor de punto flotante de 0 a 1 que determina si se debe citar un hecho para una afirmación en la respuesta candidata. Un umbral más alto genera menos citas, pero sólidas, para respaldar la afirmación, y un umbral más bajo genera más citas, pero 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 en true para habilitar la función experimental y que evalúe la puntuación de contradicción. Quita este campo o configúralo como false para inhabilitar esta función.

    • ANTI_CITATION_THRESHOLD: Un valor de punto flotante de 0 a 1 que determina si se debe citar un hecho como una contradicción 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 datos de ejemplo de la sección anterior, puedes enviar la siguiente solicitud. Reemplaza el campo CANDIDATE por diferentes cadenas cuyas bases 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.

Candidato de respuesta Cómo verificar la respuesta a la puesta a tierra
Titanic was directed by James Cameron. It starred Brad Pitt and Kate Winslet Puntuación de apoyo: 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: []
    Verificación de puesta a tierra obligatoria: true
  • 1. It starred Brad Pitt and Kate Winslet
    Citas: [] Anticitas: [0]
    Verificación de puesta a tierra obligatoria: true

Cómo obtener una puntuación de utilidad para una respuesta candidata

Para probar esta función experimental, comunícate con el equipo de Cuentas de Google y solicita que te agreguen a la lista de entidades permitidas.

Además de la puntuación de apoyo y la puntuación de contradicción, la API de verificación de justificació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 una manera informativa. La calificación de utilidad es una medida de qué tan bien la respuesta realiza las siguientes acciones:

  • Aborda el objetivo principal de la instrucción
  • Proporciona detalles completos y, al mismo tiempo, es conciso.
  • Responde directamente la pregunta formulada o completa la tarea solicitada en la instrucción
  • Ofrece información relevante
  • Es clara y directa.
  • Evita detalles y jerga innecesarios.

Para obtener una puntuación de utilidad junto con la puntuación de fundamentación, debes proporcionar una instrucción junto con los hechos y las respuestas candidatas. La API de verificación de justificación revisa la respuesta candidata con la instrucción y le asigna una puntuación que indica qué tan útil es la respuesta candidata para responder la instrucción. La puntuación está en el rango [0,1], y cuanto mayor sea, más útil será la respuesta.

Obtén una puntuación de utilidad

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

  1. Prepara tu instrucción y responde al candidato.

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

    Reemplaza lo siguiente:

    • PROJECT_ID: El número o ID de tu proyecto de Google 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 justificació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 o title. Es una etiqueta definida por el usuario para agregar más información al texto de los datos. Por ejemplo, si el texto de hechos Toronto is the capital of Ontario tiene un atributo author con el valor Wikipedia, las siguientes afirmaciones están 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 bien fundamentada.

    • VALUE: Es el valor del atributo, por ejemplo, Simple Wikipedia o Titanic (1997 film).

    • PROMPT: La instrucción es la consulta para la que se generó la respuesta candidata, por ejemplo, Who directed and starred in the movie Titanic?.

Ejemplo de solicitud

Con los datos de ejemplo de la sección anterior, puedes enviar la siguiente solicitud. Reemplaza el campo CANDIDATE con diferentes respuestas candidatas para obtener una puntuación de utilidad para 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 instrucción es Who directed and starred in the Titanic?.

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

Obtén puntuaciones a nivel de la declaración 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 declaración para cada declaración en una respuesta candidata.

Para probar esta función experimental, comunícate con el equipo de Cuentas de Google y solicita que te agreguen a la lista de entidades permitidas.

Para obtener las puntuaciones a nivel del reclamo, 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",
      "enableClaimLevelScore": "ENABLE_CLAIM_LEVEL_SCORE",
    }
    }'
    

    Reemplaza lo siguiente:

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

    • CANDIDATE: Es la cadena de respuesta candidata para la que deseas obtener una puntuación de compatibilidad, 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 "Usaban ropa de catálogo en 2024" tiene siete tokens, incluidas seis palabras y un punto.

    • TEXT: Es el segmento de texto que se usará para la justificació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 o title. Es una etiqueta definida por el usuario para agregar más información al texto de los datos. Por ejemplo, si el texto del hecho Toronto is the capital of Ontario tiene un atributo author con el valor Wikipedia, las siguientes afirmaciones están 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 bien fundamentada.

    • VALUE: Es el valor del atributo, por ejemplo, Simple Wikipedia o Titanic (1997 film).

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

    • ENABLE_CLAIM_LEVEL_SCORE: Es un valor booleano. Establece este campo en true para habilitar la función de puntuación a nivel del reclamo. Para desactivar esta función, quita este campo o configúralo como false.

Ejemplo de solicitud

Con los datos de ejemplo de la sección anterior, puedes enviar la siguiente solicitud. Reemplaza el campo CANDIDATE por diferentes cadenas cuya justificació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/v1alpha/projects/PROJECT_ID/locations/global/groundingConfigs/default_grounding_config:check" \
    -d '{
    "answerCandidate": "CANDIDATE",
    "facts": [
     {
      "factText": "Titanic is a 1997 American epic romantic disaster movie. It was directed, written, and co-produced by James Cameron. The movie is about the 1912 sinking of the RMS Titanic. It stars Kate Winslet and Leonardo DiCaprio. The movie was released on December 19, 1997. It received positive critical reviews. The movie won 11 Academy Awards, and was nominated for fourteen total Academy Awards.",
      "attributes": {"author":"Simple Wikipedia"}
     },
     {
      "factText": "James Cameron's \"Titanic\" is an epic, action-packed romance set against the ill-fated maiden voyage of the R.M.S. Titanic; the pride and joy of the White Star Line and, at the time, the largest moving object ever built. She was the most luxurious liner of her era -- the \"ship of dreams\" -- which ultimately carried over 1,500 people to their death in the ice cold waters of the North Atlantic in the early hours of April 15, 1912.",
      "attributes": {"author":"Simple Wikipedia"}
     }
    ],
    "groundingSpec": {
      "citationThreshold": "0.6",
      "enableClaimLevelScore": true,
    }
    }'

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.

Candidato de respuesta Cómo verificar la respuesta a la puesta a tierra
Here is what I found. Titanic was directed by James Cameron. It starred Kate Winslet and Leonardo DiCaprio. Puntuación de compatibilidad: 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.
    Verificación de conexión a tierra obligatoria: false
  • 1. Titanic was directed by James Cameron.
    Citas: [0]
    Verificación de fundamentación obligatoria: true
    Puntuación: 0.99
  • 2. It starred Kate Winslet and Leonardo DiCaprio.
    Citas: [0]
    Verificación de fundamentación obligatoria: true
    Puntuación: 0.99

Cómo verificar la conexión a tierra con un almacén de datos

De forma predeterminada, la conexión a tierra se verifica en función de un conjunto de hechos que se proporcionan intercalados en la llamada a la API de Check Grounding. Sin embargo, como alternativa a proporcionar los hechos intercalados, puedes verificar la respuesta candidata en función de todos los hechos de 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 almacenan el conjunto de hechos que se usan para verificar la fundamentación de la respuesta candidata.

Para verificar la conexión a tierra en un almacén de datos, sigue estos pasos:

  1. Identifica una app de búsqueda genérica 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 de justificación.

    Para crear un almacén de datos y una app de búsqueda, consulta Cómo crear un almacén de datos de búsqueda y Cómo crear una app de búsqueda.

  2. Busca el ID de tu app. Si ya tienes el ID de tu app, ve al siguiente paso.

    1. En la consola de Google Cloud, ve a la página Agent Builder.

      Ve a Apps.

    2. En la página Apps, busca el nombre de tu app y obtén su ID de 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": "projects/SOURCE_PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search"
        }
    }'
    

    Reemplaza lo siguiente:

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

    • SOURCE_PROJECT_ID: El número o ID del proyecto que contiene la app para la puesta a tierra.

      Este proyecto de origen debe estar en la misma región que tu proyecto, por ejemplo, ambos global o ambos eu. (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 compatibilidad, 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 "Usaban ropa de catálogo 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.