Verifique a validação com RAG

Como parte da sua experiência de geração aumentada de obtenção (RAG) em aplicações de IA, pode verificar a fundamentação para determinar o quão fundamentado está um fragmento de texto (denominado candidato a resposta) num determinado conjunto de textos de referência (denominados factos).

A API de verificação da fundamentação devolve uma pontuação de apoio geral de 0 a 1, que indica o grau de concordância do candidato a resposta com os factos fornecidos. A resposta também inclui citações dos factos que fundamentam cada afirmação no candidato a resposta.

A fundamentação perfeita requer que todas as afirmações na resposta candidata sejam suportadas por um ou mais factos fornecidos. Por outras palavras, a afirmação é totalmente implicada pelos factos. Se a reivindicação for apenas parcialmente implícita, não é considerada fundamentada. Por exemplo, a afirmação "O Google foi fundado por Larry Page e Sergey Brin em 1975" só está parcialmente correta. Os nomes dos fundadores estão corretos, mas a data está errada. Como tal, toda a afirmação é considerada infundada. Nesta versão da API de fundamentação de verificações, uma frase é considerada uma única reivindicação.

Pode usar a API de verificação de fundamentação para verificar qualquer fragmento de texto. Pode ser um breve texto gerado por humanos ou uma resposta gerada automaticamente. Um exemplo de utilização típico é verificar uma resposta gerada por um MDI/CE com base num determinado conjunto de factos. A API check grounding foi concebida para ser rápida, com uma latência inferior a 500 ms. Esta velocidade permite que os bots de chat chamem a API check grounding durante cada inferência, sem incorrer numa desaceleração significativa. A API check grounding também pode fornecer referências para apoiar as respetivas conclusões, para que os utilizadores possam saber que partes da resposta gerada são fiáveis. A API também faculta uma pontuação de apoio técnico para indicar a precisão geral da resposta. Ao definir um limite de citações, os bots de chat podem filtrar respostas no momento da inferência que provavelmente contêm afirmações alucinadas.

Esta página descreve como verificar a fundamentação através da API check grounding.

Funcionalidades experimentais

Se quiser experimentar as seguintes funcionalidades experimentais disponíveis para a API check grounding, contacte a equipa da sua Conta Google e peça para ser adicionado à lista de autorizações:

Termos definidos e explicados

Antes de usar a API check grounding, é útil compreender as entradas e as saídas, bem como a forma de estruturar os factos de fundamentação para obter os melhores resultados.

Dados de entrada

A API de fundamentação de verificação requer as seguintes entradas no pedido.

  • Candidato a resposta: um candidato a resposta pode ser qualquer parte do texto cuja base quer verificar. Por exemplo, no contexto da pesquisa do Vertex AI, o candidato a resposta pode ser o resumo da pesquisa gerado que responde a uma consulta. Em seguida, a API determina o grau de fundamentação do resumo nos factos introduzidos. Um candidato a resposta pode ter um comprimento máximo de 4096 tokens, em que um token é definido como uma palavra numa frase ou um ponto final (um sinal de pontuação usado para terminar a frase). Por exemplo, a frase "They wore off-the-rack clothes in 2024." tem sete tokens, incluindo seis palavras e um ponto final.

  • Factos: um conjunto de segmentos de texto a usar como referências para fundamentação. Pode fornecer um conjunto de atributos de metadados (pares de chave-valor) com cada segmento de texto. Por exemplo, "Autor" e "Título" são chaves de atributos típicas.

    O serviço suporta até 200 factos, cada um com um máximo de 10 mil carateres.

    A Google recomenda que não forneça um facto muito grande que contenha todas as informações. Em alternativa, pode obter melhores resultados dividindo factos grandes em factos mais pequenos e fornecendo atributos adequados para os factos mais pequenos. Por exemplo, pode dividir um facto grande por título, autor ou URL e fornecer estas informações em atributos.

  • Limite de citações: um valor flutuante de 0 a 1 que controla a confiança para as citações que fundamentam a resposta candidata. Um limite mais elevado impõe uma confiança mais rigorosa. Por conseguinte, um limite mais elevado gera menos citações, mas mais fortes.

Dados de saída

A API check grounding devolve o seguinte para um candidato a resposta:

  • Classificação de apoio técnico: a classificação de apoio técnico é um número de 0 a 1 que indica o quão fundamentado está um candidato a resposta no conjunto de factos fornecido. Aproxima-se da fração de reivindicações no candidato a resposta que se verificou estarem fundamentadas num ou mais factos fornecidos.

  • Fragmentos citados: os fragmentos citados são partes dos factos introduzidos que suportam a resposta candidata.

  • Afirmações e citações: as afirmações e as citações associam uma afirmação (normalmente, uma frase) do candidato a resposta a um ou mais dos fragmentos citados que corroboram a afirmação.

    Uma reivindicação é demarcada através das respetivas posições de início e fim. Estas são as posições dos bytes da string de reivindicação codificada em UTF-8. Tenha em atenção que isto não é medido em carateres e, por isso, tem de ser renderizado na interface do utilizador, tendo em atenção que alguns carateres ocupam mais do que um byte. Por exemplo, se o texto da reivindicação contiver carateres não ASCII, as posições inicial e final variam quando medidas em carateres (dependente da linguagem de programação) e quando medidas em bytes (independente da linguagem de programação).

  • Classificação de apoio ao cliente ao nível da reivindicação: quando a classificação ao nível da reivindicação está ativada, com cada reivindicação, é devolvida uma classificação de apoio ao cliente como um número de 0 a 1 que indica o quão fundamentada está a reivindicação no conjunto de factos fornecido. Para mais informações, consulte o artigo Obtenha pontuações ao nível da reivindicação para um candidato a resposta.

  • Verificação de fundamentação necessária: com cada reivindicação, é devolvido um booleano de verificação de fundamentação necessária. Quando isto é devolvido como False, significa que o sistema considera que a reivindicação não requer fundamentação e, por isso, as citações e as anticitações não são devolvidas. Por exemplo, uma frase como "Aqui está o que encontrei" não é um facto em si e, por isso, não requer uma verificação de fundamentação.

    Quando o grounding-check-required é devolvido como true, significa que foi realizada uma verificação de fundamentação e são devolvidas pontuações de apoio, citações e anticitações, se existirem.

Obtenha uma pontuação de apoio técnico para um candidato a resposta

Para saber o quão fundamentada está uma resposta candidata num conjunto de factos, siga estes passos:

  1. Prepare o seu conjunto de factos. Para mais informações e exemplos, consulte o artigo Termos definidos e explicados.

  2. Chame o método check com o seguinte 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"
  }
}'

Substitua o seguinte:

  • PROJECT_ID: o número ou o ID do projeto do seu projeto do Google Cloud .

  • CANDIDATE: a string candidata a resposta para a qual quer obter uma pontuação de apoio técnico. Por exemplo, Titanic was directed by James Cameron. It was released in 1997. Uma candidata a resposta pode ter um comprimento máximo de 4096 tokens, em que um token é definido como uma palavra numa frase ou um ponto final (um sinal de pontuação usado para terminar a frase). Por exemplo, a frase "They wore off-the-rack clothes in 2024." tem sete tokens, incluindo seis palavras e um ponto final.

  • TEXT: o segmento de texto a usar para fundamentação, por exemplo, Titanic is a 1997 American epic... Academy Awards. (veja o texto completo em Exemplos de factos).

  • ATTRIBUTE: o nome de um atributo de metadados associado ao facto, por exemplo, author ou title. Esta é uma etiqueta definida pelo utilizador para adicionar mais informações ao texto do facto. Por exemplo, se o texto do facto Toronto is the capital of Ontario tiver um atributo author com o valor Wikipedia, as seguintes afirmações são consideradas fundamentadas no facto:

    • Wikipedia cites that Toronto is the capital of Ontario
    • Toronto is the capital of Ontario

      No entanto, a afirmação de que Government of Ontario claims that Toronto is the capital of Ontario não é tão fundamentada como as duas primeiras afirmações.

  • VALUE: o valor do atributo, por exemplo, Simple Wikipedia ou Titanic (1997 film).

  • CITATION_THRESHOLD: um valor flutuante de 0 a 1 que determina se um facto tem de ser citado para uma reivindicação no candidato a resposta. Um limite mais elevado resulta em menos citações, mas mais fortes, e um limite mais baixo resulta em mais citações, mas mais fracas. Se não estiver definido, o valor do limite predefinido é 0.6.

Python

Para mais informações, consulte a documentação de referência da API Python de aplicações de IA.

Para se autenticar em aplicações de IA, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento 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)

Exemplos de factos

Seguem-se alguns exemplos de factos e respetivos atributos. Estes exemplos destinam-se a ajudar a compreender a resposta de fundamentação e o formato do comando curl.

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

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

Exemplo de pedido

Depois de preparar os factos, pode enviar o seguinte pedido, substituindo o campo CANDIDATE por diferentes strings cuja base quer 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"
    }
    }'

Exemplos de candidatos a respostas e respostas fundamentadas

A tabela seguinte mostra exemplos de diferentes candidatos a respostas e respostas quando envia o pedido de exemplo, com base nos factos de exemplo.

Candidato a resposta Verifique a resposta de fundamentação
Here is what I found. Titanic was directed by James Cameron. Pontuação de apoio técnico: 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.....
Afirmações e citações:
  • 0. Here is what I found.
    Verificação de fundamentação necessária: false
  • 1. Titanic was directed by James Cameron.
    Citações: [0]
    Verificação de fundamentação necessária: true
Titanic was directed by James Cameron. It was released in 1997. Pontuação de apoio técnico: 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....
Afirmações e citações:
  • 0. Titanic was directed by James Cameron.
    Citações: [0]
    Verificação de fundamentação necessária: true
  • 1. It was released in 1997.
    Citações: [1]
    Verificação de fundamentação necessária: 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. Pontuação de apoio técnico: 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....
Afirmações e citações:
  • 0. Cited chunks: Titanic was directed by James Cameron.
    Citações: [0]
    Verificação de fundamentação necessária: true
  • 1. Cited chunks: It was based on the sinking of the RMS Titanic that led to the death of 1500 people.
    Citações: [1]
    Verificação de fundamentação necessária: true
Titanic was directed by James Cameron. It starred Brad Pitt and Kate Winslet Pontuação de apoio técnico: 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....
Afirmações e citações:
  • 0. Titanic was directed by James Cameron.
    Citações: [0]
    Verificação de fundamentação necessária: true
  • 1. It starred Brad Pitt and Kate Winslet
    Citações: []
    Verificação de fundamentação necessária: true
Nota: embora Kate Winslet tenha participado no filme, como a afirmação "It starred Brad Pitt and Kate Winslet" não é totalmente verdadeira, não recebe citações. Neste caso, pode chamar o método com as anticitações ativadas para receber uma pontuação de contradição. Para mais informações, consulte o artigo Obtenha uma pontuação de contradição para uma resposta candidata.

Obtenha pontuações ao nível da reivindicação para uma resposta candidata

Além da pontuação de apoio técnico ao nível da resposta, pode obter uma pontuação de apoio técnico ao nível da reivindicação para cada reivindicação num candidato a resposta.

Para obter as classificações ao nível da reivindicação, siga estes passos:

  1. Prepare o seu conjunto de factos. Para mais informações e exemplos, consulte o artigo Termos definidos e explicados.

  2. Chame o método check através do seguinte 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",
    }
    }'
    

    Substitua o seguinte:

    • PROJECT_ID: o número ou o ID do projeto do seu Google Cloud projeto.

    • CANDIDATE: a string candidata à resposta para a qual quer obter uma pontuação de apoio técnico. Por exemplo, Titanic was directed by James Cameron. It was released in 1997. Uma candidata à resposta pode ter um comprimento máximo de 4096 tokens, em que um token é definido como uma palavra numa frase ou um ponto final (um sinal de pontuação usado para terminar a frase). Por exemplo, a frase "They wore off-the-rack clothes in 2024." tem sete tokens, incluindo seis palavras e um ponto final.

    • TEXT: o segmento de texto a usar para fundamentação, por exemplo, Titanic is a 1997 American epic... Academy Awards. (veja o texto completo em Exemplos de factos).

    • ATTRIBUTE: o nome de um atributo de metadados associado ao facto, por exemplo, author ou title. É uma etiqueta definida pelo utilizador para adicionar mais informações ao texto do facto. Por exemplo, se o texto do facto Toronto is the capital of Ontario tiver um atributo author com o valor Wikipedia, as seguintes afirmações são bem fundamentadas:

      • Wikipedia cites that Toronto is the capital of Ontario
      • Toronto is the capital of Ontario

      No entanto, a afirmação de que Government of Ontario claims that Toronto is the capital of Ontario não está tão bem fundamentada.

    • VALUE: o valor do atributo, por exemplo, Simple Wikipedia ou Titanic (1997 film).

    • CITATION_THRESHOLD: um valor flutuante de 0 a 1 que determina se um facto tem de ser citado para uma reivindicação no candidato a resposta. Um limite mais elevado resulta em citações mais fortes, mas em menor número, para apoiar a afirmação, e um limite mais baixo resulta em citações mais fracas, mas em maior número. Se não estiver definido, o valor do limite predefinido é 0,6.

    • ENABLE_CLAIM_LEVEL_SCORE: um valor booleano. Defina este campo como true para ativar a funcionalidade de pontuação ao nível da reivindicação. Para desativar esta funcionalidade, remova este campo ou defina este campo como false.

Exemplo de pedido

Usando os factos de exemplo da secção anterior, pode enviar o seguinte pedido. Substitua o campo CANDIDATE por diferentes strings cuja fundamentação por reivindicação quer 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,
    }
    }'

Exemplo de respostas com classificações ao nível da reivindicação

A tabela seguinte mostra um exemplo de candidato a resposta e a respetiva resposta quando envia o pedido de exemplo, com base nos factos de exemplo.

Candidato a resposta Verifique a resposta de fundamentação
Here is what I found. Titanic was directed by James Cameron. It starred Kate Winslet and Leonardo DiCaprio. Pontuação de apoio técnico: 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.....
Afirmações e citações:
  • 0. Here is what I found.
    Verificação de fundamentação necessária: false
  • 1. Titanic was directed by James Cameron.
    Citações: [0]
    Verificação de fundamentação necessária: true
    Pontuação: 0.99
  • 2. It starred Kate Winslet and Leonardo DiCaprio.
    Citações: [0]
    Verificação de fundamentação necessária: true
    Pontuação: 0.99

Obtenha uma pontuação de contradição para um candidato a resposta

Juntamente com a pontuação de apoio, também pode obter uma pontuação de contradição. A pontuação de contradição aproxima-se da fração de afirmações que contradizem os factos fornecidos.

Para experimentar esta funcionalidade experimental, contacte a equipa da sua Conta Google e peça para ser adicionado à lista de autorizações.

Obtenha uma pontuação de contradição

Para obter a pontuação de contradição, siga estes passos:

  1. Prepare o seu conjunto de factos. Para mais informações e exemplos, consulte o artigo Termos definidos e explicados.

  2. Chame o método check através do seguinte 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",
    }
    }'
    

    Substitua o seguinte:

    • PROJECT_ID: o número ou o ID do projeto do seu Google Cloud projeto.

    • CANDIDATE: a string candidata à resposta para a qual quer obter uma pontuação de apoio técnico. Por exemplo, Titanic was directed by James Cameron. It was released in 1997. Uma candidata à resposta pode ter um comprimento máximo de 4096 tokens, em que um token é definido como uma palavra numa frase ou um ponto final (um sinal de pontuação usado para terminar a frase). Por exemplo, a frase "They wore off-the-rack clothes in 2024." tem sete tokens, incluindo seis palavras e um ponto final.

    • TEXT: o segmento de texto a usar para fundamentação, por exemplo, Titanic is a 1997 American epic... Academy Awards. (veja o texto completo em Exemplos de factos).

    • ATTRIBUTE: o nome de um atributo de metadados associado ao facto, por exemplo, author ou title. É uma etiqueta definida pelo utilizador para adicionar mais informações ao texto do facto. Por exemplo, se o texto do facto Toronto is the capital of Ontario tiver um atributo author com o valor Wikipedia, as seguintes afirmações são bem fundamentadas:

      • Wikipedia cites that Toronto is the capital of Ontario
      • Toronto is the capital of Ontario

      No entanto, a afirmação de que Government of Ontario claims that Toronto is the capital of Ontario não está tão bem fundamentada.

    • VALUE: o valor do atributo, por exemplo, Simple Wikipedia ou Titanic (1997 film).

    • CITATION_THRESHOLD: um valor flutuante de 0 a 1 que determina se um facto tem de ser citado para uma reivindicação no candidato a resposta. Um limite mais elevado resulta em citações menos numerosas, mas fortes, para apoiar a afirmação, e um limite mais baixo resulta em citações mais numerosas, mas mais fracas, para apoiar a afirmação. Se não estiver definido, o valor do limite predefinido é 0,6.

    • ENABLE_ANTI_CITATION: um valor booleano. Defina este campo como true para ativar a funcionalidade experimental para avaliar a pontuação de contradição. Remova este campo ou defina este campo como false para desativar esta funcionalidade.

    • ANTI_CITATION_THRESHOLD: um valor flutuante de 0 a 1 que determina se um facto tem de ser citado como contraditório com uma reivindicação no candidato a resposta. Um limite mais elevado leva a citações mais fortes, mas em menor número, que contradizem a afirmação, e um limite mais baixo leva a citações mais fracas, mas em maior número, que contradizem a afirmação. Se não estiver definido, o valor do limite predefinido é 0,8.

Exemplo de pedido

Usando os factos de exemplo da secção anterior, pode enviar o seguinte pedido. Substitua o campo CANDIDATE por diferentes strings cuja base e contradições quer 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",
    }
    }'

Exemplo de respostas com contradições

A tabela seguinte mostra um exemplo de candidato a resposta e a respetiva resposta quando envia o pedido de exemplo, com base nos factos de exemplo.

Candidato a resposta Verifique a resposta de fundamentação
Titanic was directed by James Cameron. It starred Brad Pitt and Kate Winslet Pontuação de apoio técnico: 0.36

Pontuação de contradição: 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....
Afirmações e citações:
  • 0. Titanic was directed by James Cameron.
    Citações: [0] Anticitações: []
    Verificação de fundamentação necessária: true
  • 1. It starred Brad Pitt and Kate Winslet
    Citações: [] Anticitações: [0]
    Verificação de fundamentação necessária: true

Obtenha uma pontuação de utilidade para um candidato a resposta

Para experimentar esta funcionalidade experimental, contacte a equipa da sua Conta Google e peça para ser adicionado à lista de autorizações.

Além da pontuação de apoio e da pontuação de contradição, a API check grounding pode fornecer uma pontuação de utilidade. Uma resposta útil é aquela que cumpre eficazmente o pedido do utilizador (conforme indicado no comando) de forma informativa. A pontuação de utilidade é uma medida de quão bem a resposta faz o seguinte:

  • Aborda a intenção principal do comando
  • Fornece detalhes completos de forma concisa
  • Responde diretamente à pergunta feita ou conclui a tarefa pedida no comando
  • Oferece informações relevantes
  • É clara e simples
  • Evita detalhes desnecessários e gíria

Para obter uma classificação de utilidade juntamente com a classificação de fundamentação, tem de fornecer um comando juntamente com os candidatos a respostas e os factos. A API check grounding revisa o candidato a resposta com o comando e atribui uma pontuação que indica a utilidade com que o candidato a resposta responde ao comando. A pontuação está no intervalo [0,1], em que quanto maior for a pontuação, mais útil é a resposta.

Obtenha uma pontuação de utilidade

Para obter a classificação de utilidade, siga estes passos:

  1. Prepare o comando e o candidato à resposta.

  2. Chame o método check através do seguinte 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",
    }'
    

    Substitua o seguinte:

    • PROJECT_ID: o número ou o ID do projeto do seu Google Cloud projeto.

    • CANDIDATE: a string candidata de resposta para a qual quer obter uma classificação de utilidade. Por exemplo, Titanic was directed by James Cameron. It was released in 1997. Uma resposta candidata pode ter um comprimento máximo de 4096 tokens.

    • TEXT: o segmento de texto a usar para fundamentação, por exemplo, Titanic is a 1997 American epic... Academy Awards. (veja o texto completo em Exemplos de factos).

    • ATTRIBUTE: o nome de um atributo de metadados associado ao facto, por exemplo, author ou title. É uma etiqueta definida pelo utilizador para adicionar mais informações ao texto do facto. Por exemplo, se o texto do facto Toronto is the capital of Ontario tiver um atributo author com o valor Wikipedia, as seguintes afirmações são bem fundamentadas:

      • Wikipedia cites that Toronto is the capital of Ontario
      • Toronto is the capital of Ontario

      No entanto, a afirmação de que Government of Ontario claims that Toronto is the capital of Ontario não está tão bem fundamentada.

    • VALUE: o valor do atributo, por exemplo, Simple Wikipedia ou Titanic (1997 film).

    • PROMPT: o comando é a consulta para a qual o candidato a resposta foi gerado para responder, por exemplo, Who directed and starred in the movie Titanic?.

Exemplo de pedido

Usando os factos de exemplo da secção anterior, pode enviar o seguinte pedido. Substitua o campo CANDIDATE por diferentes candidatos de respostas para receber uma classificação de utilidade da resposta.

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

Exemplo de respostas com classificações de utilidade

A tabela seguinte mostra exemplos de candidatos a respostas com as respetivas classificações de utilidade. Em cada caso, o comando é Who directed and starred in the Titanic?

Candidato a resposta Pontuação de utilidade Explicação da pontuação
Titanic was directed by James Cameron. It starred Leonardo DiCaprio and Kate Winslet. 0.980 Pontuação concisa e 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 Não é conciso

Verifique a fundamentação com um repositório de dados

Por predefinição, a fundamentação é verificada em relação a um conjunto de factos fornecidos incorporados na chamada API check grounding. No entanto, como alternativa à apresentação dos factos incorporados, pode verificar o candidato a resposta em relação a todos os factos num arquivo de dados do Vertex AI Search.

Quando chama a API de verificação de fundamentação, fornece o nome de uma app de pesquisa do Vertex AI. Por sua vez, os armazenamentos de dados não estruturados associados a essa app de pesquisa contêm o conjunto de factos que são usados para verificar a fundamentação do candidato a resposta.

Para experimentar esta funcionalidade experimental, contacte a equipa da sua Conta Google e peça para ser adicionado à lista de autorizações.

Para verificar a fundamentação em relação a um repositório de dados, siga estes passos:

  1. Identificar uma app de pesquisa personalizada associada a, pelo menos, um arquivo de dados que contenha dados não estruturados. Os documentos neste repositório de dados servem como a origem dos factos de base.

    Para saber como criar um arquivo de dados e uma app de pesquisa, consulte os artigos Crie um arquivo de dados de pesquisa e Crie uma app de pesquisa.

  2. Encontre o ID da app. Se já tiver o ID da app, avance para o passo seguinte.

    1. Na Google Cloud consola, aceda à página Aplicações de IA.

      Aceda a Apps

    2. Na página Apps, encontre o nome da sua app e obtenha o ID da app na coluna ID.

  3. Chame o método check através do seguinte 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"
          }
        }
    }'
    

    Substitua o seguinte:

    • PROJECT_ID: o número ou o ID do projeto do seu Google Cloud projeto.

    • SOURCE_PROJECT_ID: o número ou o ID do projeto que contém a app para fundamentação.

      Este projeto de origem tem de estar na mesma região que o seu projeto, por exemplo, ambos global ou ambos eu. (Para informações gerais sobre várias regiões, consulte a secção Localização.)

    • CANDIDATE: a string candidata a resposta para a qual quer obter uma pontuação de apoio técnico. Por exemplo, Titanic was directed by James Cameron. It was released in 1997. Uma candidata a resposta pode ter um comprimento máximo de 4096 tokens, em que um token é definido como uma palavra numa frase ou um ponto final (um sinal de pontuação usado para terminar a frase). Por exemplo, a frase "They wore off-the-rack clothes in 2024." tem sete tokens, incluindo seis palavras e um ponto final.

    • APP_ID: o ID da app de pesquisa do Vertex AI cujos arquivos de dados não estruturados contêm os factos que quer usar como origem de base.