Question answering

L'API Semantic Retrieval fornisce un servizio di risposta alle domande ospitato per la creazione di sistemi di Retrieval-Augmented Generation (RAG) utilizzando l'infrastruttura di Google.

Metodo: models.generateAnswer

Genera una risposta fondata dal modello dato un input GenerateAnswerRequest.

Endpoint

post https://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateAnswer

Parametri del percorso

model string

Obbligatorio. Il nome del Model da utilizzare per generare la risposta fondata.

Formato: model=models/{model}. Assume la forma models/{model}.

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Campi
contents[] object (Content)

Obbligatorio. I contenuti della conversazione attuale con Model. Per le query a un solo turno, si tratta di una singola domanda a cui rispondere. Per le query multi-turno, questo è un campo ripetuto che contiene la cronologia della conversazione e l'ultimo Content nell'elenco contenente la domanda.

Nota: models.generateAnswer supporta solo le query in inglese.

answerStyle enum (AnswerStyle)

Obbligatorio. Stile in cui devono essere restituite le risposte.

safetySettings[] object (SafetySetting)

(Facoltativo) Un elenco di istanze SafetySetting uniche per bloccare i contenuti non sicuri.

Questa operazione verrà applicata il giorno GenerateAnswerRequest.contents e GenerateAnswerResponse.candidate. Non deve esserci più di un'impostazione per ogni tipo di SafetyCategory. L'API bloccherà tutti i contenuti e le risposte che non soddisfano le soglie impostate da queste impostazioni. Questo elenco sostituisce le impostazioni predefinite per ogni SafetyCategory specificato in safetySettings. Se nell'elenco non è presente SafetySetting per un determinato SafetyCategory, l'API utilizzerà l'impostazione di sicurezza predefinita per quella categoria. Sono supportate le categorie di contenuti dannosi HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT e HARM_CATEGORY_HARASSMENT. Per informazioni dettagliate sulle impostazioni di sicurezza disponibili, consulta la guida. Consulta anche le indicazioni sulla sicurezza per scoprire come incorporare considerazioni sulla sicurezza nelle tue applicazioni di AI.

grounding_source Union type
Le fonti su cui basare la risposta. grounding_source può essere solo uno dei seguenti:
inlinePassages object (GroundingPassages)

Passaggi forniti in linea con la richiesta.

semanticRetriever object (SemanticRetrieverConfig)

Contenuti recuperati da risorse create tramite l'API Semantic Retriever.

temperature number

(Facoltativo) Controlla la casualità dell'output.

I valori possono variare da [0.0,1.0], inclusi. Un valore più vicino a 1,0 produrrà risposte più varie e creative, mentre un valore più vicino a 0,0 in genere genererà risposte più dirette da parte del modello. In genere, per i casi d'uso di risposta alle domande con attribuzione è consigliata una temperatura bassa (~0,2).

Corpo della risposta

Risposta del modello per una risposta fondata.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Campi
answer object (Candidate)

Risposta candidata del modello.

Nota: il modello tenta sempre di fornire una risposta basata su fatti concreti, anche quando è improbabile che la risposta possa essere ricavata dai passaggi forniti. In questo caso, potrebbe essere fornita una risposta di scarsa qualità o non fondata, insieme a un answerableProbability basso.

answerableProbability number

Solo output. La stima del modello della probabilità che la sua risposta sia corretta e basata sui passaggi di input.

Un valore basso di answerableProbability indica che la risposta potrebbe non essere basata sulle fonti.

Quando answerableProbability è basso, ti consigliamo di:

  • Mostra all'utente un messaggio del tipo "Non è stato possibile rispondere alla domanda".
  • Esegui il fallback a un LLM generico che risponde alla domanda utilizzando le conoscenze del mondo. La soglia e la natura di questi fallback dipenderanno dai singoli casi d'uso. 0.5 è una buona soglia iniziale.
inputFeedback object (InputFeedback)

Solo output. Feedback relativi ai dati di input utilizzati per rispondere alla domanda, anziché alla risposta generata dal modello alla domanda.

I dati di input possono essere uno o più dei seguenti:

  • Domanda specificata dall'ultima voce in GenerateAnswerRequest.content
  • Cronologia conversazione specificata dalle altre voci in GenerateAnswerRequest.content
  • Origini grounding (GenerateAnswerRequest.semantic_retriever o GenerateAnswerRequest.inline_passages)
Rappresentazione JSON
{
  "answer": {
    object (Candidate)
  },
  "answerableProbability": number,
  "inputFeedback": {
    object (InputFeedback)
  }
}

GroundingPassages

Un elenco ripetuto di passaggi.

Campi
passages[] object (GroundingPassage)

Elenco dei passaggi.

Rappresentazione JSON
{
  "passages": [
    {
      object (GroundingPassage)
    }
  ]
}

GroundingPassage

Passaggio incluso in linea con una configurazione di messa a terra.

Campi
id string

Identificatore del passaggio per l'attribuzione di questo passaggio nelle risposte basate su dati reali.

content object (Content)

Contenuto del passaggio.

Rappresentazione JSON
{
  "id": string,
  "content": {
    object (Content)
  }
}

SemanticRetrieverConfig

Configurazione per il recupero dei contenuti di grounding da un Corpus o Document creato utilizzando l'API Semantic Retriever.

Campi
source string

Obbligatorio. Nome della risorsa da recuperare. Esempio: corpora/123 o corpora/123/documents/abc.

query object (Content)

Obbligatorio. Query da utilizzare per la corrispondenza degli Chunk nella risorsa specificata in base alla similarità.

metadataFilters[] object (MetadataFilter)

(Facoltativo) Filtri per la selezione di Document e/o Chunk dalla risorsa.

maxChunksCount integer

(Facoltativo) Il numero massimo di Chunk pertinenti da recuperare.

minimumRelevanceScore number

(Facoltativo) Punteggio di pertinenza minimo per i Chunk pertinenti recuperati.

Rappresentazione JSON
{
  "source": string,
  "query": {
    object (Content)
  },
  "metadataFilters": [
    {
      object (MetadataFilter)
    }
  ],
  "maxChunksCount": integer,
  "minimumRelevanceScore": number
}

AnswerStyle

Stile per le risposte fondate.

Enum
ANSWER_STYLE_UNSPECIFIED Stile di risposta non specificato.
ABSTRACTIVE Stile conciso ma astratto.
EXTRACTIVE Stile molto breve ed estrattivo.
VERBOSE Stile prolisso che include dettagli aggiuntivi. La risposta può essere formattata come una frase, un paragrafo, più paragrafi, un elenco puntato e così via.

InputFeedback

Feedback relativi ai dati di input utilizzati per rispondere alla domanda, anziché alla risposta generata dal modello alla domanda.

Campi
safetyRatings[] object (SafetyRating)

Valutazioni della sicurezza dell'input. È presente al massimo una classificazione per categoria.

blockReason enum (BlockReason)

(Facoltativo) Se impostato, l'input è stato bloccato e non vengono restituiti candidati. Riformula l'input.

Rappresentazione JSON
{
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ],
  "blockReason": enum (BlockReason)
}

BlockReason

Specifica il motivo per cui l'input è stato bloccato.

Enum
BLOCK_REASON_UNSPECIFIED Valore predefinito. Questo valore non viene utilizzato.
SAFETY L'input è stato bloccato per motivi di sicurezza. Ispeziona safetyRatings per capire quale categoria di sicurezza lo ha bloccato.
OTHER L'input è stato bloccato per altri motivi.