Como parte da sua Geração Aumentada de Recuperação (RAG) experiência na Vertex AI Agent Builder, será possível verificar o embasamento para determinar como um texto com embasamento (chamado de candidato de resposta) está em um determinado conjunto de textos de referência (chamados de fatos).
A API Check Grounding retorna uma pontuação de suporte geral de 0 a 1, que indica o quanto a resposta candidata concorda com os fatos fornecidos. A resposta também inclui citações dos fatos que comprovam cada afirmação na resposta candidata.
Além disso, você pode ativar uma pontuação de suporte no nível da reivindicação, como para obter uma pontuação de suporte que indica o embasamento de cada afirmação do a resposta candidata.
A fundamentação perfeita exige que cada declaração na resposta seja apoiada por um ou mais dos fatos fornecidos. Em outras palavras, a declaração é totalmente envolvido pelos fatos. Se a reivindicação for apenas parcialmente envolvida, ela não será considerada fundamentada. Por exemplo, a afirmação "O Google foi fundado por Larry Page e Sergey Brin em 1975" está correta apenas parcialmente. Os nomes dos fundadores estão corretos, mas a data está errada. Por isso, a afirmação é considerada sem fundamento. Nesta versão da API de verificação de terreno, uma frase é considerada uma única reivindicação.
Você também pode ativar as citações anti-citações, como um recurso experimental, para receber uma pontuação de contradição, que indica o quanto a resposta do candidato contradiz os fatos apresentados. A resposta também inclui citações contrárias para os fatos contraditórios de cada alegação.
É possível usar a API de verificação de fundamentação para verificar qualquer parte do texto. Pode ser um sinopse gerada por humanos ou uma resposta gerada por máquina. Um caso de uso típico é verifica uma resposta gerada pelo LLM em relação a um determinado conjunto de fatos. A API de verificação de aterramento foi projetada para ser rápida, com latência inferior a 500ms. Essa velocidade permite que chatbots chamem a API de verificação de terreno durante cada inferência, sem o que causa uma lentidão significativa. A API de verificação de solo também pode fornecer referências para embasar suas descobertas, para que os usuários possam dizer quais partes do resposta gerada são confiáveis. A API também fornece uma pontuação de suporte para indicam a precisão geral da resposta. Ao definir um limite de citação, os chatbots podem filtrar, no momento da inferência, respostas que provavelmente contêm alegações alucinadas.
Esta página descreve como verificar a conexão à terra usando a API check grounding.
Antes de começar
A API de verificação de solo está em disponibilidade geral.
Além disso, há dois recursos experimentais:
- O recurso anticitação que gera a pontuação de contradição.
- O recurso de pontuação no nível da reivindicação que retorna a pontuação de suporte por reivindicação.
Para testar os recursos experimentais, entre em contato com a Equipe de Contas do Google e pedir para ser adicionado à lista de permissões.
Termos definidos e explicados
Antes de usar a API check grounding, é importante entender as entradas e as saídas e como estruturar os fatos de fundamentação para obter os melhores resultados.
Dados de entrada
A API de verificação de solo requer as seguintes entradas na solicitação.
Candidato a resposta: pode ser qualquer parte do texto que você quer verificar. Por exemplo, no contexto Vertex AI para Pesquisa, a resposta pode ser a pesquisa gerada resumo que responde a uma consulta. A API determinaria se o resumo está com base nos fatos de entrada. As respostas candidatas podem ter um tamanho máximo de 1.024 caracteres.
Fatos:um conjunto de trechos de texto que serão usados como referência para embasar o entendimento. Um conjunto de atributos de metadados (pares de chave-valor) pode ser fornecido com cada segmento de texto. Por exemplo, "Autor" e "Title" são chaves de atributos típicas.
O serviço aceita até 200 fatos, cada um com um máximo de 10 mil caracteres.
O Google recomenda não fornecer um fato muito grande que contenha todas as informações. Em vez disso, você pode conseguir resultados melhores dividindo fatos grandes em fatos menores e fornecendo atributos adequados para os fatos menores. Por exemplo, é possível dividir um fato grande por título, autor ou URL e fornecer essas informações em atributos.
Limite de citação: um valor flutuante de 0 a 1 que controla a confiança. para as citações que embasam a resposta candidata. Um limite mais alto impõe uma confiança mais rigorosa. Portanto, um limite mais alto gera menos, mas citações mais fortes.
Dados de saída
Para uma resposta candidata a resposta, a API de verificação de solo retorna o seguinte:
Pontuação de suporte: é um número de 0 a 1 que indica o quanto uma resposta candidata está fundamentada no conjunto de fatos fornecido. Aproxima vagamente a fração de afirmações na resposta candidata que foram fundamentados em um ou mais dos fatos fornecidos.
Blocos citados:são partes dos fatos de entrada que embasar a resposta candidata.
Alegações e citações: as alegações e citações conectam uma alegação (geralmente uma frase) da resposta candidata a um ou mais dos fragmentos citados que comprovam a alegação.
Quando a pontuação no nível da reivindicação está ativada, com cada reivindicação, um suporte pontuação é retornada como um número de 0 a 1 que indica o fundamento da alegação está no conjunto de fatos fornecido. Para mais informações, consulte Receber pontuações no nível da reivindicação para um candidato à resposta.
Verificação de embasamento necessária: com cada reivindicação, um o boleano "grounding-check-required" será retornado. Quando isso retornar como
False
, significa que o sistema considera que a alegação não requer fundamento, e, portanto, as citações e anticitações não serão retornadas. Por exemplo, uma frase como "Aqui está o que encontrei" não é um fato por si só e, portanto, não requer uma verificação de informações empíricas.Quando a verificação de embasamento obrigatória retorna como
true
, isso significa que uma foi realizada uma verificação de embasamento e respalde pontuações, citações e anticitação, se houver, serão retornadas.
Receber uma pontuação de suporte para uma resposta candidata
Para descobrir se uma resposta é baseada em um conjunto de fatos, siga estas etapas:
Prepare seu conjunto de fatos. Para mais informações e exemplos, consulte Definições e explicações dos termos.
Chame o método
check
usando este 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:
PROJECT_ID
: o número ou ID do seu projeto do Google Cloud.CANDIDATE
: a string candidata de resposta a que você quer uma pontuação de suporte. Por exemplo,Titanic was directed by James Cameron. It was released in 1997.
Um candidato a resposta pode ter tamanho máximo de 1.024 caracteres.TEXT
: o segmento de texto a ser usado para fundamentação, por exemplo,Titanic is a 1997 American epic... Academy Awards.
. Consulte o texto completo em Exemplos de fatos.ATTRIBUTE
: o nome de um metadado atributo associado ao fato, por exemplo,author
outitle
. Isso é um rótulo definido pelo usuário para adicionar mais informações ao texto do fato. Por exemplo, se o texto do fatoToronto is the capital of Ontario
tiver um atributoauthor
com o valorWikipedia
, as seguintes declarações serão consideradas baseadas no fato: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 quanto as duas primeiras.
VALUE
: o valor do atributo, por exemplo,Simple Wikipedia
ouTitanic (1997 film)
.CITATION_THRESHOLD
: um valor flutuante de 0 a 1 que determina se um fato precisa ser citado para uma declaração na resposta indicada. Um limite maior leva a menos citações, mas fortes, e um limite menor leva a mais citações, mas fracas. Se não for definido, o valor de limite padrão será0.6
.
Python
Para mais informações, consulte a API Vertex AI Agent Builder Python documentação de referência.
Para autenticar no Vertex AI Agent Builder, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Exemplos de fatos
Confira a seguir alguns exemplos de fatos e atributos. Esses exemplos ajudam você a entender a resposta de aterramento e o formato do comando curl.
Fato 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"}
Fato 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 solicitação
Depois de preparar os fatos, envie a solicitação a seguir, substituindo o campo Campo CANDIDATE com strings diferentes com embasamento que você quer verificação.
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 respostas de grounding e candidatos a resposta
A tabela a seguir mostra exemplos de diferentes respostas candidatas e respostas quando você envia a solicitação de exemplo, com base na exemplos de fatos.
Candidato a resposta | Verificar a resposta de aterramento |
---|---|
Here is what I found. Titanic was directed by James Cameron.
|
Pontuação de suporte: 0.99 Fragmentos citados:
|
Titanic was directed by James Cameron. It was released in
1997.
|
Pontuação de suporte: 0.99 Trechos citados:
|
Titanic was directed by James Cameron. It was based on the sinking
of the RMS Titanic that led to the death of 1500 people.
|
Pontuação de suporte: 0.95 Trechos citados:
|
Titanic was directed by James Cameron. It starred Brad Pitt and
Kate Winslet
|
Pontuação de suporte: 0.54 Fragmentos citados:
"It starred Brad Pitt and Kate Winslet" não é
totalmente verdadeiro, não recebe citações. Nesse caso, você pode chamar o método
método com anticitações ativadas para fornecer uma pontuação de contradição.
Para mais informações, consulte
Obter uma pontuação de contradição para
uma resposta candidata. |
Conseguir uma pontuação de contradição para uma resposta candidata
Além da pontuação de suporte, você também pode receber uma pontuação de contradição. A pontuação de contradição se aproxima vagamente da fração de afirmações que contradizem os fatos fornecidos.
Para testar esse recurso experimental, entre em contato com a Equipe de Contas do Google e peça para ser adicionado à lista de permissões.
Para conseguir a pontuação da contradição, siga estas etapas:
Prepare seu conjunto de fatos. Para mais informações e exemplos, consulte os Termos definidos e explicados.
Chame o método
check
usando o 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:
PROJECT_ID
: o número ou ID do projeto projeto do Google Cloud.CANDIDATE
: a string candidata de resposta a que você quer uma pontuação de suporte. Por exemplo,Titanic was directed by James Cameron. It was released in 1997.
Um candidato a resposta pode ter tamanho máximo de 1.024 caracteres.TEXT
: o segmento de texto a ser usado para aterramento, por exemplo,Titanic is a 1997 American epic... Academy Awards.
. Consulte o texto completo em Exemplos de fatos.ATTRIBUTE
: o nome de um atributo de metadados associado ao fato, por exemplo,author
outitle
. Ela é um rótulo definido pelo usuário para adicionar mais informações ao texto do fato. Por exemplo, se o texto do fatoToronto is the capital of Ontario
tiver um atributoauthor
com o valorWikipedia
, as seguintes declarações serã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 é tão bem fundamentada.VALUE
: o valor do atributo, por exemplo,Simple Wikipedia
ouTitanic (1997 film)
.CITATION_THRESHOLD
: um valor flutuante de 0 a 1 que determina se um fato precisa ser citado para uma declaração na resposta indicada. Um limite maior leva a menos citações, mas fortes, para apoiar a afirmação, e um limite mais baixo leva a mais citações, mas fracas, para apoiar a afirmação. Se não for definido, o valor do limite padrão será 0,6.ENABLE_ANTI_CITATION
: um valor booleano. Defina esse campo comotrue
para ativar o recurso experimental e avaliar a pontuação de contradição. Remova esse campo ou defina-o comofalse
para desativar esse recurso.ANTI_CITATION_THRESHOLD
: um valor flutuante de 0. em 1, que determina se um fato deve ser citado como contraditório no item de resposta candidata. Um limite maior leva a menos, mas mais fortes citações que contradizem a alegação, e um limite mais baixo leva a mais, mas mais fracos citações que contradizem a alegação. Se não for definido, o valor de limite padrão será 0,8.
Exemplo de solicitação
Usando os exemplos de fatos da seção anterior, é possível enviar a solicitação a seguir. Substitua o campo CANDIDATE por strings diferentes com embasamento e contradição que você queira 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 a seguir mostra um exemplo de resposta e a resposta quando você envia a solicitação de exemplo, com base nos exemplos de fatos.
Resposta candidata | Verificar resposta de embasamento |
---|---|
Titanic was directed by James Cameron. It starred Brad Pitt and
Kate Winslet
|
Pontuação de suporte: 0.36 Pontuação de contradição: 0.49 Trechos citados:
|
Receber pontuações no nível da declaração para uma resposta candidata
Além da pontuação de suporte no nível da resposta, você pode receber uma pontuação de suporte no nível da reivindicação para cada reivindicação em uma resposta candidata.
Para testar esse recurso experimental, entre em contato com a Equipe de Contas do Google e peça para ser adicionado à lista de permissões.
Para conferir as pontuações no nível da reivindicação, siga estas etapas:
Prepare seu conjunto de fatos. Para mais informações e exemplos, consulte os Termos definidos e explicados.
Chame o método
check
usando o 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", "enableClaimLevelScore": "ENABLE_CLAIM_LEVEL_SCORE", } }'
Substitua:
PROJECT_ID
: o número ou ID do projeto projeto do Google Cloud.CANDIDATE
: a string de candidato a resposta para a qual você quer receber uma pontuação de suporte. Por exemplo,Titanic was directed by James Cameron. It was released in 1997.
. Um candidato a resposta pode ter um comprimento máximo de 1.024 caracteres.TEXT
: o segmento de texto a ser usado. para embasar, por exemplo,Titanic is a 1997 American epic... Academy Awards.
. Veja o texto completo em Exemplos de fatos.ATTRIBUTE
: o nome de um metadado atributo associado ao fato, por exemplo,author
outitle
. É um rótulo definido pelo usuário para adicionar mais informações ao texto do fato. Por exemplo, se o texto do fatoToronto is the capital of Ontario
tiver um atributoauthor
com o valorWikipedia
, as seguintes declarações serã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 é tão bem fundamentada.VALUE
: o valor do atributo, por exemplo,Simple Wikipedia
ouTitanic (1997 film)
.CITATION_THRESHOLD
: um valor flutuante de 0 a 1 que determina se um fato precisa ser citado para uma declaração na resposta indicada. Um limite maior leva a menos citações, mas fortes, para apoiar a afirmação, e um limite mais baixo leva a mais citações, mas fracas, para apoiar a afirmação. Se não for definido, o valor do limite padrão será 0,6.ENABLE_CLAIM_LEVEL_SCORE
: um valor booleano. Defina este campo comotrue
para ativar o recurso de pontuação no nível da reivindicação. Para desativar esse recurso, remova o campo ou defina-o comofalse
.
Exemplo de solicitação
Usando os exemplos de fatos da seção anterior, é possível enviar a solicitação a seguir. Substitua o campo CANDIDATE por strings diferentes cujo embasamento por reivindicação você queira 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,
}
}'
Exemplo de respostas com pontuações no nível da reivindicação
A tabela a seguir mostra um exemplo de resposta candidata e a respectiva quando você enviar a solicitação de exemplo, com base nos exemplos de fatos.
Resposta candidata | Verificar a resposta de aterramento |
---|---|
Here is what I found. Titanic was directed by James Cameron. It
starred Kate Winslet and Leonardo DiCaprio.
|
Pontuação de suporte: 0.99 Fragmentos citados:
|