Controllare la messa a terra con RAG

Nell'ambito dell'esperienza di Retrieval Augmented Generation (RAG) nelle applicazioni di AI, puoi controllare la fondatezza per determinare quanto un testo (chiamato candidato di risposta) è fondato su un determinato insieme di testi di riferimento (chiamati fatti).

L'API Check Grounding restituisce un punteggio di supporto complessivo compreso tra 0 e 1, che indica quanto la risposta candidata concorda con i fatti forniti. La risposta include anche citazioni dei fatti a supporto di ogni affermazione nella risposta candidata.

La perfetta fondatezza richiede che ogni affermazione nella risposta candidata sia supportata da uno o più dei fatti forniti. In altre parole, l'affermazione è interamente implicita nei fatti. Se la rivendicazione è solo parzialmente fondata, non viene considerata giustificata. Ad esempio, l'affermazione "Google è stata fondata da Larry Page e Sergey Brin nel 1975" è corretta solo in parte: i nomi dei fondatori sono corretti, ma la data è sbagliata. Pertanto, l'intera affermazione è considerata infondata. In questa versione dell'API di verifica delle fonti, una frase è considerata una singola affermazione.

Puoi utilizzare l'API di controllo della fondatezza per controllare qualsiasi testo. Può trattarsi di un testo descrittivo generato da un essere umano o di una risposta generata automaticamente. Un caso d'uso tipico è controllare una risposta generata da un LLM rispetto a un determinato insieme di fatti. L'API di controllo della fondatezza è progettata per essere veloce, con una latenza inferiore a 500 ms. Questa velocità consente ai chatbot di chiamare l'API di controllo della fondatezza durante ogni inferenza, senza causare un rallentamento significativo. L'API di controllo della fondatezza può anche fornire riferimenti a supporto dei suoi risultati, in modo che gli utenti possano capire quali parti della risposta generata sono affidabili. L'API fornisce anche un punteggio di supporto per indicare l'accuratezza complessiva della risposta. Impostando una soglia di citazione, i chatbot possono filtrare le risposte in fase di inferenza che potrebbero contenere affermazioni inventate.

Questa pagina descrive come controllare la fondatezza utilizzando l'API check grounding.

Funzioni sperimentali

Se vuoi provare le seguenti funzionalità sperimentali disponibili per l'API di verifica delle informazioni, contatta il team del tuo Account Google e chiedi di essere aggiunto alla lista consentita:

Termini definiti e spiegati

Prima di utilizzare l'API Check Grounding, è utile comprendere gli input e gli output e come strutturare i fatti di grounding per ottenere risultati ottimali.

Dati di input

L'API di controllo della fondatezza richiede i seguenti input nella richiesta.

  • Candidato risposta:un candidato risposta può essere qualsiasi porzione di testo di cui vuoi controllare la fondatezza. Ad esempio, nel contesto di Vertex AI Search, il candidato alla risposta potrebbe essere il riepilogo della ricerca generato che risponde a una query. L'API determinerebbe quindi il livello di fondatezza del riepilogo in base ai fatti inseriti. Un candidato alla risposta può avere una lunghezza massima di 4096 token, dove un token è definito come una parola in una frase o un punto (un segno di punteggiatura usato per terminare la frase). Ad esempio, la frase "They wore off-the-rack clothes in 2024." è lunga sette token, tra cui sei parole e un punto.

  • Fatti:un insieme di segmenti di testo da utilizzare come riferimenti per la fondatezza. A ogni segmento di testo può essere fornita una serie di attributi dei metadati (coppie chiave-valore). Ad esempio, "Autore" e "Titolo" sono chiavi di attributo tipiche.

    Il servizio supporta fino a 200 fatti, ciascuno con un massimo di 10.000 caratteri.

    Google sconsiglia di fornire un'unica informazione molto grande che contenga tutte le informazioni. Puoi ottenere risultati migliori suddividendo i fatti di grandi dimensioni in fatti più piccoli e fornendo gli attributi appropriati per i fatti più piccoli. Ad esempio, puoi suddividere un fatto di grandi dimensioni in base a titolo, autore o URL e fornire queste informazioni negli attributi.

  • Soglia di citazione: un valore mobile da 0 a 1 che controlla l'affidabilità delle citazioni che supportano la risposta candidata. Una soglia più alta impone una confidenza più rigorosa. Pertanto, una soglia più alta produce meno citazioni, ma più solide.

Dati di output

L'API Check Grounding restituisce quanto segue per un candidato alla risposta:

  • Punteggio di supporto:il punteggio di supporto è un numero compreso tra 0 e 1 che indica quanto una risposta candidata sia basata sul set di fatti fornito. Approssima in modo approssimativo la frazione di affermazioni nel candidato alla risposta che sono state trovate fondate su uno o più dei fatti forniti.

  • Chunk citati:i chunk citati sono porzioni dei fatti di input che supportano la risposta candidata.

  • Affermazioni e citazioni:le affermazioni e le citazioni collegano un'affermazione (in genere una frase) del candidato alla risposta a uno o più dei blocchi citati che corroborano l'affermazione.

    Una rivendicazione è delimitata dalle posizioni di inizio e fine. Queste sono le posizioni dei byte della stringa della rivendicazione codificata UTF-8. Tieni presente che questa metrica non viene misurata in caratteri e, pertanto, deve essere visualizzata nell'interfaccia utente tenendo presente che alcuni caratteri occupano più di un byte. Ad esempio, se il testo della rivendicazione contiene caratteri non ASCII, le posizioni iniziale e finale variano se misurate in caratteri (a seconda del linguaggio di programmazione) e se misurate in byte (indipendentemente dal linguaggio di programmazione).

  • Punteggio di supporto a livello di affermazione:quando il punteggio a livello di affermazione è abilitato, con ogni affermazione viene restituito un punteggio di supporto come numero da 0 a 1 che indica quanto l'affermazione sia basata sul set di fatti fornito. Per ulteriori informazioni, vedi Ottenere i punteggi a livello di rivendicazione per un candidato di risposta.

  • Controllo di fondatezza richiesto: con ogni rivendicazione viene restituito un valore booleano grounding-check-required. Quando viene restituito il valore False, significa che il sistema ritiene che l'affermazione non richieda una base e, pertanto, non vengono restituite citazioni e anti-citazioni. Ad esempio, una frase come "Ecco cosa ho trovato" non è un fatto in sé e, pertanto, non richiede un controllo di fondatezza.

    Quando grounding-check-required restituisce true, significa che è stato eseguito un controllo di grounding e vengono restituiti i punteggi di supporto, le citazioni e le anti-citazioni, se presenti.

Ottenere un punteggio di supporto per una risposta candidata

Per scoprire quanto è basata su un insieme di fatti una risposta candidata, segui questi passaggi:

  1. Prepara il set di fatti. Per ulteriori informazioni ed esempi, consulta la sezione Termini definiti e spiegati.

  2. Chiama il metodo check utilizzando il seguente codice:

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

Sostituisci quanto segue:

  • PROJECT_ID: il numero o l'ID del tuo Google Cloud progetto.

  • CANDIDATE: la stringa del candidato risposta per cui vuoi ottenere un punteggio di supporto, ad esempio Titanic was directed by James Cameron. It was released in 1997. Un candidato risposta può avere una lunghezza massima di 4096 token, dove un token è definito come una parola in una frase o un punto (un segno di punteggiatura usato per terminare la frase). Ad esempio, la frase "They wore off-the-rack clothes in 2024" è lunga sette token, tra cui sei parole e un punto.

  • TEXT: il segmento di testo da utilizzare per il grounding, ad esempio Titanic is a 1997 American epic... Academy Awards. (vedi il testo completo in Esempi di fatti).

  • ATTRIBUTE: il nome di un attributo di metadati associato al fatto, ad esempio author o title. Si tratta di un'etichetta definita dall'utente per aggiungere ulteriori informazioni al testo del fatto. Ad esempio, se il testo del fatto Toronto is the capital of Ontario ha un attributo author con valore Wikipedia, le seguenti affermazioni sono considerate basate sul fatto:

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

      Tuttavia, l'affermazione che Government of Ontario claims that Toronto is the capital of Ontario non è fondata come le prime due.

  • VALUE: il valore dell'attributo, ad esempio Simple Wikipedia o Titanic (1997 film).

  • CITATION_THRESHOLD: un valore float compreso tra 0 e 1 che determina se un fatto deve essere citato per un'affermazione nella risposta candidata. Una soglia più alta porta a citazioni meno numerose ma più solide e una soglia più bassa porta a citazioni più numerose ma più deboli. Se non è impostato, il valore soglia predefinito è 0.6.

Python

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API AI Applications Python.

Per autenticarti in AI Applications, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

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)

Esempi di fatti

Di seguito sono riportati alcuni esempi di fatti e dei relativi attributi. Questi esempi ti aiutano a comprendere la risposta di grounding e il formato del comando curl.

  • Fatto 0

    • Testo: "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."

    • Attributi: {"Author": "Simple Wikipedia"}

  • Fatto 1

    • Testo: "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."

    • Attributi: {"Author": "Rotten Tomatoes"}

Esempio di richiesta

Dopo aver preparato i fatti, puoi inviare la seguente richiesta, sostituendo il campo CANDIDATE con stringhe diverse di cui vuoi verificare la fondatezza.

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

Esempi di candidati per le risposte e risposte di grounding

La tabella seguente mostra esempi di diverse risposte e candidati di risposta quando invii la richiesta di esempio, in base ai fatti di esempio.

Risposta candidata Controllare la risposta di grounding
Here is what I found. Titanic was directed by James Cameron. Punteggio di supporto: 0.99

Chunk citati:
  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.....
Affermazioni e citazioni:
  • 0. Here is what I found.
    Grounding check required: false
  • 1. Titanic was directed by James Cameron.
    Citazioni: [0]
    Controllo della fondatezza richiesto: true
Titanic was directed by James Cameron. It was released in 1997. Punteggio di supporto: 0.99

Chunk citati:
  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....
Affermazioni e citazioni:
  • 0. Titanic was directed by James Cameron.
    Citazioni: [0]
    Controllo della fondatezza richiesto: true
  • 1. It was released in 1997.
    Citazioni: [1]
    Controllo della fondatezza richiesto: 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. Punteggio di supporto: 0.95

Chunk citati:
  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....
Affermazioni e citazioni:
  • 0. Cited chunks: Titanic was directed by James Cameron.
    Citazioni: [0]
    Controllo di grounding richiesto: true
  • 1. Cited chunks: It was based on the sinking of the RMS Titanic that led to the death of 1500 people.
    Citazioni: [1]
    Controllo di grounding richiesto: true
Titanic was directed by James Cameron. It starred Brad Pitt and Kate Winslet Punteggio di supporto: 0.54

Chunk citati:
  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....
Affermazioni e citazioni:
  • 0. Titanic was directed by James Cameron.
    Citazioni: [0]
    Controllo della fondatezza richiesto: true
  • 1. It starred Brad Pitt and Kate Winslet
    Citazioni: []
    Controllo della fondatezza richiesto: true
Nota: anche se Kate Winslet ha recitato nel film, poiché l'affermazione "It starred Brad Pitt and Kate Winslet" non è del tutto vera, non riceve citazioni. In questo caso, puoi chiamare il metodo con le anti-citazioni attive per ottenere un punteggio di contraddizione. Per saperne di più, consulta la sezione Ottenere un punteggio di contraddizione per un candidato di risposta.

Ottenere i punteggi a livello di rivendicazione per una risposta candidata

Oltre al punteggio di supporto a livello di risposta, puoi ottenere un punteggio di supporto a livello di rivendicazione per ogni rivendicazione in un candidato risposta.

Per ottenere i punteggi a livello di rivendicazione:

  1. Prepara il set di fatti. Per ulteriori informazioni ed esempi, consulta la sezione Termini definiti e spiegati.

  2. Chiama il metodo check utilizzando il seguente 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",
    }
    }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: il numero o l'ID del tuo Google Cloud progetto.

    • CANDIDATE: la stringa del candidato risposta per cui vuoi ottenere un punteggio di supporto, ad esempio Titanic was directed by James Cameron. It was released in 1997.. Un candidato risposta può avere una lunghezza massima di 4096 token, dove un token è definito come una parola in una frase o un punto (un segno di punteggiatura utilizzato per terminare la frase). Ad esempio, la frase "They wore off-the-rack clothes in 2024" è lunga sette token, tra cui sei parole e un punto.

    • TEXT: il segmento di testo da utilizzare per la base, ad esempio Titanic is a 1997 American epic... Academy Awards. (vedi il testo completo in Esempi di fatti).

    • ATTRIBUTE: il nome di un attributo dei metadati associato al fatto, ad esempio author o title. Si tratta di un'etichetta definita dall'utente per aggiungere ulteriori informazioni al testo del fatto. Ad esempio, se il testo del fatto Toronto is the capital of Ontario ha un attributo author con valore Wikipedia, le seguenti affermazioni sono ben fondate:

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

      Tuttavia, l'affermazione che Government of Ontario claims that Toronto is the capital of Ontario non è altrettanto fondata.

    • VALUE: il valore dell'attributo, ad esempio Simple Wikipedia o Titanic (1997 film).

    • CITATION_THRESHOLD: un valore float compreso tra 0 e 1 che determina se un fatto deve essere citato per un'affermazione nella risposta candidata. Una soglia più alta porta a citazioni meno numerose ma più solide a sostegno dell'affermazione, mentre una soglia più bassa porta a citazioni più numerose ma meno solide. Se non è impostato, il valore di soglia predefinito è 0,6.

    • ENABLE_CLAIM_LEVEL_SCORE: un valore booleano. Imposta questo campo su true per attivare la funzionalità di punteggio a livello di rivendicazione. Per disattivare questa funzionalità, rimuovi questo campo o impostalo su false.

Esempio di richiesta

Utilizzando i fatti di esempio della sezione precedente, puoi inviare la seguente richiesta. Sostituisci il campo CANDIDATE con stringhe diverse di cui vuoi controllare la base per rivendicazione.

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

Esempio di risposte con punteggi a livello di rivendicazione

La tabella seguente mostra un esempio di candidato alla risposta e la relativa risposta quando invii la richiesta di esempio, in base ai fatti di esempio.

Risposta candidata Controllare la risposta di grounding
Here is what I found. Titanic was directed by James Cameron. It starred Kate Winslet and Leonardo DiCaprio. Punteggio di supporto: 0.99

Chunk citati:
  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.....
Affermazioni e citazioni:
  • 0. Here is what I found.
    Grounding check required: false
  • 1. Titanic was directed by James Cameron.
    Citazioni: [0]
    Controllo di fondatezza richiesto: true
    Punteggio: 0.99
  • 2. It starred Kate Winslet and Leonardo DiCaprio.
    Citazioni: [0]
    Controllo di fondatezza richiesto: true
    Punteggio: 0.99

Ottenere un punteggio di contraddizione per una risposta candidata

Oltre al punteggio di supporto, puoi ottenere anche un punteggio di contraddizione. Il punteggio di contraddizione approssima vagamente la frazione di affermazioni che contraddicono i fatti forniti.

Per provare questa funzionalità sperimentale, contatta il team del tuo account Google e chiedi di essere aggiunto alla lista consentita.

Ottenere un punteggio di contraddizione

Per ottenere il punteggio di contraddizione, segui questi passaggi:

  1. Prepara il set di fatti. Per ulteriori informazioni ed esempi, consulta la sezione Termini definiti e spiegati.

  2. Chiama il metodo check utilizzando il seguente 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",
    }
    }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: il numero o l'ID del tuo Google Cloud progetto.

    • CANDIDATE: la stringa del candidato risposta per cui vuoi ottenere un punteggio di supporto, ad esempio Titanic was directed by James Cameron. It was released in 1997.. Un candidato risposta può avere una lunghezza massima di 4096 token, dove un token è definito come una parola in una frase o un punto (un segno di punteggiatura utilizzato per terminare la frase). Ad esempio, la frase "They wore off-the-rack clothes in 2024" è lunga sette token, tra cui sei parole e un punto.

    • TEXT: il segmento di testo da utilizzare per la base, ad esempio Titanic is a 1997 American epic... Academy Awards. (vedi il testo completo in Esempi di fatti).

    • ATTRIBUTE: il nome di un attributo dei metadati associato al fatto, ad esempio author o title. Si tratta di un'etichetta definita dall'utente per aggiungere ulteriori informazioni al testo del fatto. Ad esempio, se il testo del fatto Toronto is the capital of Ontario ha un attributo author con valore Wikipedia, le seguenti affermazioni sono ben fondate:

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

      Tuttavia, l'affermazione che Government of Ontario claims that Toronto is the capital of Ontario non è altrettanto fondata.

    • VALUE: il valore dell'attributo, ad esempio Simple Wikipedia o Titanic (1997 film).

    • CITATION_THRESHOLD: un valore float compreso tra 0 e 1 che determina se un fatto deve essere citato per un'affermazione nella risposta candidata. Una soglia più alta porta a citazioni meno numerose ma più solide a sostegno dell'affermazione, mentre una soglia più bassa porta a citazioni più numerose ma meno solide a sostegno dell'affermazione. Se non è impostato, il valore di soglia predefinito è 0,6.

    • ENABLE_ANTI_CITATION: un valore booleano. Imposta questo campo su true per attivare la funzionalità sperimentale per valutare il punteggio di contraddizione. Rimuovi questo campo o impostalo su false per disattivare questa funzionalità.

    • ANTI_CITATION_THRESHOLD: un valore float compreso tra 0 e 1 che determina se un fatto deve essere citato come contraddittorio rispetto a un'affermazione nella risposta candidata. Una soglia più alta porta a citazioni meno numerose ma più solide che contraddicono l'affermazione, mentre una soglia più bassa porta a citazioni più numerose ma più deboli che contraddicono l'affermazione. Se non è impostato, il valore soglia predefinito è 0,8.

Esempio di richiesta

Utilizzando i fatti di esempio della sezione precedente, puoi inviare la seguente richiesta. Sostituisci il campo CANDIDATE con stringhe diverse di cui vuoi controllare la fondatezza e le contraddizioni.

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

Esempio di risposte con contraddizioni

La tabella seguente mostra un esempio di candidato alla risposta e la relativa risposta quando invii la richiesta di esempio, in base ai fatti di esempio.

Risposta candidata Controllare la risposta di grounding
Titanic was directed by James Cameron. It starred Brad Pitt and Kate Winslet Punteggio di supporto: 0.36

Punteggio di contraddizione: 0.49

Chunk citati:
  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....
Affermazioni e citazioni:
  • 0. Titanic was directed by James Cameron.
    Citazioni: [0] Citazioni contrarie: []
    Controllo di fondatezza richiesto: true
  • 1. It starred Brad Pitt and Kate Winslet
    Citazioni: [] Citazioni contrarie: [0]
    Controllo di fondatezza richiesto: true

Ottenere un punteggio di utilità per una risposta candidata

Per provare questa funzionalità sperimentale, contatta il team del tuo account Google e chiedi di essere aggiunto alla lista consentita.

Oltre al punteggio di supporto e al punteggio di contraddizione, l'API check grounding può fornire un punteggio di utilità. Una risposta utile è quella che soddisfa efficacemente la richiesta dell'utente (come indicato nel prompt) in modo informativo. Il punteggio di utilità misura l'efficacia della risposta in base a quanto segue:

  • Affronta l'intent principale del prompt
  • Fornisce dettagli completi in modo conciso
  • Risponde direttamente alla domanda posta o completa l'attività richiesta nel prompt
  • Offre informazioni pertinenti
  • Sia chiaro e semplice
  • Evita dettagli inutili e gergo

Per ottenere un punteggio di utilità insieme al punteggio di fondatezza, devi fornire un prompt insieme alle risposte candidate e ai fatti. L'API Check Grounding esamina la risposta candidata con il prompt e fornisce un punteggio che indica quanto la risposta candidata risponde in modo utile al prompt. Il punteggio è compreso tra 0 e 1. Più alto è il punteggio, più utile è la risposta.

Ottenere un punteggio di utilità

Per ottenere il punteggio di utilità:

  1. Prepara il prompt e la risposta del candidato.

  2. Chiama il metodo check utilizzando il seguente 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",
    }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: il numero o l'ID del tuo Google Cloud progetto.

    • CANDIDATE: la stringa del candidato risposta per cui vuoi ottenere un punteggio di utilità, ad esempio Titanic was directed by James Cameron. It was released in 1997.. Un candidato risposta può avere una lunghezza massima di 4096 token.

    • TEXT: il segmento di testo da utilizzare per la base, ad esempio Titanic is a 1997 American epic... Academy Awards. (vedi il testo completo in Esempi di fatti).

    • ATTRIBUTE: il nome di un attributo dei metadati associato al fatto, ad esempio author o title. Si tratta di un'etichetta definita dall'utente per aggiungere ulteriori informazioni al testo del fatto. Ad esempio, se il testo del fatto Toronto is the capital of Ontario ha un attributo author con valore Wikipedia, le seguenti affermazioni sono ben fondate:

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

      Tuttavia, l'affermazione che Government of Ontario claims that Toronto is the capital of Ontario non è altrettanto fondata.

    • VALUE: il valore dell'attributo, ad esempio Simple Wikipedia o Titanic (1997 film).

    • PROMPT: il prompt è la query a cui è stata generata la risposta candidata, ad esempio Who directed and starred in the movie Titanic?.

Esempio di richiesta

Utilizzando i fatti di esempio della sezione precedente, puoi inviare la seguente richiesta. Sostituisci il campo CANDIDATE con diverse opzioni di risposta per ottenere un punteggio di utilità per la risposta.

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

Esempio di risposte con punteggi di utilità

La seguente tabella mostra esempi di candidati per le risposte con i relativi punteggi di utilità. In ogni caso, il prompt è Who directed and starred in the Titanic?

Risposta candidata Punteggio di utilità Spiegazione del punteggio
Titanic was directed by James Cameron. It starred Leonardo DiCaprio and Kate Winslet. 0.980 Punteggio conciso e completo
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 Non conciso

Controllare la base con un datastore

Per impostazione predefinita, il grounding viene verificato in base a un insieme di fatti forniti inline nella chiamata API Check Grounding. Tuttavia, in alternativa alla fornitura dei fatti inline, puoi controllare la risposta candidata rispetto a tutti i fatti in un datastore Vertex AI Search.

Quando chiami l'API di controllo del grounding, fornisci il nome di un'app di ricerca Vertex AI. A sua volta, i datastore non strutturati associati a quell'app di ricerca contengono l'insieme di fatti utilizzati per controllare il grounding del candidato alla risposta.

Per provare questa funzionalità sperimentale, contatta il team del tuo account Google e chiedi di essere aggiunto alla lista consentita.

Per verificare la fondatezza rispetto a un datastore:

  1. Identifica un'app di ricerca personalizzata associata ad almeno un datastore che contiene dati non strutturati. I documenti in questo datastore fungono da fonte per i fatti di base.

    Per informazioni su come creare un datastore e un'app di ricerca, vedi Creare un datastore di ricerca e Creare un'app di ricerca.

  2. Trova l'ID app. Se hai già l'ID app, vai al passaggio successivo.

    1. Nella Google Cloud console, vai alla pagina AI Applications.

      Vai ad App

    2. Nella pagina App, trova il nome della tua app e recupera il relativo ID dalla colonna ID.

  3. Chiama il metodo check utilizzando il seguente 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"
          }
        }
    }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: il numero o l'ID del tuo Google Cloud progetto.

    • SOURCE_PROJECT_ID: il numero o l'ID del progetto che contiene l'app per la base.

      Questo progetto di origine deve trovarsi nella stessa regione del tuo progetto, ad esempio entrambi global o entrambi eu. Per informazioni generali sulle regioni multiple, consulta Località.

    • CANDIDATE: la stringa del candidato risposta per cui vuoi ottenere un punteggio di supporto, ad esempio Titanic was directed by James Cameron. It was released in 1997.. Un candidato risposta può avere una lunghezza massima di 4096 token, dove un token è definito come una parola in una frase o un punto (un segno di punteggiatura utilizzato per terminare la frase). Ad esempio, la frase "They wore off-the-rack clothes in 2024." è lunga sette token, tra cui sei parole e un punto.

    • APP_ID: l'ID dell'app Vertex AI Search i cui datastore di dati non strutturati contengono i fatti che vuoi utilizzare come origine del grounding.