L'API Semantic Retrieval fornisce un servizio di question answering ospitato per la creazione di sistemi RAG (Retrieval Augmented Generation) utilizzando l'infrastruttura di Google. Per una procedura dettagliata, consulta la guida al recupero semantico.
Metodo: models.generateAnswer
- Endpoint
- Parametri percorso
- Corpo della richiesta
- Corpo della risposta
- Ambiti di autorizzazione
- GroundingPassages
- GroundingPassage
- SemanticRetrieverConfig
- AnswerStyle
- InputFeedback
- BlockReason
Genera una risposta con grounding 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}
. Il formato è models/{model}
.
Corpo della richiesta
Il corpo della richiesta contiene dati con la seguente struttura:
contents[]
object (Content
)
Obbligatorio. I contenuti della conversazione in corso con Model
. Per le query a turno singolo, è una domanda a cui rispondere. Per le query in più passaggi, si tratta di un campo ripetuto che contiene la cronologia delle conversazioni e l'ultimo Content
dell'elenco contenente la domanda.
Nota: models.generateAnswer
supporta solo query in inglese.
answerStyle
enum (AnswerStyle
)
Obbligatorio. Stile in cui devono essere restituite le risposte.
safetySettings[]
object (SafetySetting
)
(Facoltativo) Un elenco di istanze SafetySetting
univoche per il blocco di contenuti non sicuri.
Questa norma verrà applicata in modo forzato a GenerateAnswerRequest.contents
e GenerateAnswerResponse.candidate
. Non deve essere presente più di un'impostazione per ogni tipo di SafetyCategory
. L'API bloccherà tutti i contenuti e le risposte che non rispetteranno le soglie impostate da queste impostazioni. Questo elenco sostituisce le impostazioni predefinite per ogni SafetyCategory
specificato in safetySettings. Se non è presente alcun valore SafetySetting
per un determinato SafetyCategory
nell'elenco, l'API utilizzerà l'impostazione di sicurezza predefinita per la categoria in questione. Sono supportate le categorie di danni HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT e HARM_CATEGORY_HARASSMENT. Consulta la guida per informazioni dettagliate sulle impostazioni di sicurezza disponibili. Consulta anche le linee guida per la sicurezza per scoprire come incorporare considerazioni sulla sicurezza nelle tue applicazioni di IA.
grounding_source
. 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 dalle risorse create tramite l'API Semantic Retriever.
temperature
number
(Facoltativo) Controlla la casualità dell'output.
I valori possono essere compresi nell'intervallo [0,0,1,0] incluso. Un valore più vicino a 1,0 produrrà risposte più varie e creative, mentre un valore più vicino a 0,0 in genere genera risposte più semplici da parte del modello. In genere, è consigliata una temperatura bassa (~0,2) per i casi d'uso relativi alla risposta alle domande attribuite.
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:
answer
object (Candidate
)
Risposta candidata del modello.
Nota: il modello tenta sempre di fornire una risposta basata su dati, anche quando è improbabile che la risposta sia fornita dai passaggi indicati. In questo caso, potrebbero essere fornite una risposta di bassa qualità o priva di fondamento, insieme a un valore basso per answerableProbability
.
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 il valore di answerableProbability
è basso, ti consigliamo di:
- Mostrare un messaggio con l'effetto "Non siamo riusciti a rispondere alla domanda" all'utente.
- Ricorrere a un LLM generico che risponde alla domanda sulla base delle 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 relativo ai dati di input utilizzati per rispondere alla domanda, in contrapposizione alla risposta generata dal modello.
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 di grounding (
GenerateAnswerRequest.semantic_retriever
oGenerateAnswerRequest.inline_passages
)
Rappresentazione JSON |
---|
{ "answer": { object ( |
Passaggi di messa a terra
Un elenco ripetuto di passaggi.
passages[]
object (GroundingPassage
)
Elenco di passaggi.
Rappresentazione JSON |
---|
{
"passages": [
{
object ( |
GroundingPassage
Passaggio incluso in linea con una configurazione di messa a terra.
id
string
Identificatore del passaggio per l'attribuzione di questo passaggio nelle risposte basate su dati.
content
object (Content
)
Contenuti del passaggio.
Rappresentazione JSON |
---|
{
"id": string,
"content": {
object ( |
SemanticRetrieverConfig
Configurazione per il recupero dei contenuti di ancoraggio da un Corpus
o un Document
creato utilizzando l'API Semantic Retriever.
source
string
Obbligatorio. Nome della risorsa da recuperare. Esempio: corpora/123
o corpora/123/documents/abc
.
query
object (Content
)
Obbligatorio. Query da utilizzare per trovare corrispondenze tra i Chunk
nella risorsa specificata in base alla somiglianza.
metadataFilters[]
object (MetadataFilter
)
(Facoltativo) Filtri per la selezione di Document
e/o Chunk
dalla risorsa.
maxChunksCount
integer
(Facoltativo) 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 ( |
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 dettagliato con dettagli aggiuntivi. La risposta può essere formattata come una frase, un paragrafo, più paragrafi, elenchi puntati e così via. |
InputFeedback
Feedback relativo ai dati di input utilizzati per rispondere alla domanda, anziché alla risposta generata dal modello alla domanda.
safetyRatings[]
object (SafetyRating
)
Classificazioni per la sicurezza dell'input. Esiste 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 ( |
BlockReason
Specifica il motivo per cui l'input è stato bloccato.
Enum | |
---|---|
BLOCK_REASON_UNSPECIFIED |
Valore predefinito. Questo valore non è utilizzato. |
SAFETY |
L'input è stato bloccato per motivi di sicurezza. Controlla safetyRatings per capire quale categoria di sicurezza l'ha bloccata. |
OTHER |
L'input è stato bloccato per altri motivi. |