Question answering

A API Semantic Retrieval oferece um serviço hospedado de respostas a perguntas para criar sistemas de geração aumentada de recuperação (RAG) usando a infraestrutura do Google.

Método: models.generateAnswer

Gera uma resposta embasada do modelo com base em uma entrada GenerateAnswerRequest.

Endpoint

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

Parâmetros de caminho

model string

Obrigatório. O nome do Model a ser usado para gerar a resposta embasada.

Formato: model=models/{model}. Ele tem o formato models/{model}.

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Campos
contents[] object (Content)

Obrigatório. O conteúdo da conversa atual com o Model. Para consultas de turno único, esta é uma única pergunta a ser respondida. Para consultas com várias interações, esse é um campo repetido que contém o histórico da conversa e o último Content na lista com a pergunta.

Observação: o models.generateAnswer só aceita consultas em inglês.

answerStyle enum (AnswerStyle)

Obrigatório. Estilo em que as respostas devem ser retornadas.

safetySettings[] object (SafetySetting)

Opcional. Uma lista de instâncias SafetySetting exclusivas para bloquear conteúdo não seguro.

Isso será aplicado no GenerateAnswerRequest.contents e no GenerateAnswerResponse.candidate. Não pode haver mais de uma configuração para cada tipo de SafetyCategory. A API vai bloquear qualquer conteúdo e resposta que não atender aos limites definidos por essas configurações. Essa lista substitui as configurações padrão de cada SafetyCategory especificado em "safetySettings". Se não houver um SafetySetting para um determinado SafetyCategory fornecido na lista, a API vai usar a configuração de segurança padrão para essa categoria. As categorias de dano HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT e HARM_CATEGORY_HARASSMENT são compatíveis. Consulte o guia para informações detalhadas sobre as configurações de segurança disponíveis. Consulte também as orientações de segurança para saber como incorporar considerações de segurança aos seus aplicativos de IA.

grounding_source Union type
As fontes em que a resposta se baseia. grounding_source pode ser apenas de um dos tipos a seguir:
inlinePassages object (GroundingPassages)

Passagens fornecidas inline com a solicitação.

semanticRetriever object (SemanticRetrieverConfig)

Conteúdo recuperado de recursos criados com a API Semantic Retriever.

temperature number

Opcional. Controla a aleatoriedade da saída.

Os valores podem variar de [0,0, 1,0], inclusive. Um valor mais próximo de 1,0 vai gerar respostas mais variadas e criativas, enquanto um valor mais próximo de 0,0 geralmente resulta em respostas mais diretas do modelo. Uma temperatura baixa (~0,2) geralmente é recomendada para casos de uso de resposta a perguntas atribuídas.

Corpo da resposta

Resposta do modelo para uma resposta embasada.

Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:

Campos
answer object (Candidate)

Resposta candidata do modelo.

Observação: o modelo sempre tenta fornecer uma resposta embasada, mesmo quando é improvável que as passagens fornecidas possam responder à pergunta. Nesse caso, uma resposta de baixa qualidade ou sem embasamento pode ser fornecida, junto com uma answerableProbability baixa.

answerableProbability number

Apenas saída. A estimativa do modelo da probabilidade de que a resposta esteja correta e embasada nas passagens de entrada.

Um valor baixo de answerableProbability indica que a resposta pode não estar embasada nas fontes.

Quando answerableProbability está baixo, você pode:

  • Mostre uma mensagem ao usuário informando que não foi possível responder à pergunta.
  • Volte para um LLM de uso geral que responda à pergunta com base no conhecimento do mundo. O limite e a natureza desses substitutos vão depender dos casos de uso individuais. 0.5 é um bom limite inicial.
inputFeedback object (InputFeedback)

Apenas saída. Feedback relacionado aos dados de entrada usados para responder à pergunta, e não à resposta gerada pelo modelo.

Os dados de entrada podem ser um ou mais dos seguintes:

  • Pergunta especificada pela última entrada em GenerateAnswerRequest.content
  • Histórico de conversas especificado pelas outras entradas em GenerateAnswerRequest.content
  • Fontes de embasamento (GenerateAnswerRequest.semantic_retriever ou GenerateAnswerRequest.inline_passages)
Representação JSON
{
  "answer": {
    object (Candidate)
  },
  "answerableProbability": number,
  "inputFeedback": {
    object (InputFeedback)
  }
}

GroundingPassages

Uma lista repetida de passagens.

Campos
passages[] object (GroundingPassage)

Lista de passagens.

Representação JSON
{
  "passages": [
    {
      object (GroundingPassage)
    }
  ]
}

GroundingPassage

Passagem incluída inline com uma configuração de embasamento.

Campos
id string

Identificador da passagem para atribuição em respostas embasadas.

content object (Content)

Conteúdo da passagem.

Representação JSON
{
  "id": string,
  "content": {
    object (Content)
  }
}

SemanticRetrieverConfig

Configuração para recuperar conteúdo de embasamento de um Corpus ou Document criado usando a API Semantic Retriever.

Campos
source string

Obrigatório. Nome do recurso para recuperação. Exemplo: corpora/123 ou corpora/123/documents/abc.

query object (Content)

Obrigatório. Consulta a ser usada para correspondência de Chunks no recurso especificado por similaridade.

metadataFilters[] object (MetadataFilter)

Opcional. Filtros para selecionar Documents e/ou Chunks do recurso.

maxChunksCount integer

Opcional. Número máximo de Chunks relevantes a serem recuperados.

minimumRelevanceScore number

Opcional. Pontuação mínima de relevância para Chunks relevantes recuperados.

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

AnswerStyle

Estilo para respostas embasadas.

Enums
ANSWER_STYLE_UNSPECIFIED Estilo de resposta não especificado.
ABSTRACTIVE Estilo sucinto, mas abstrato.
EXTRACTIVE Estilo muito breve e extrativo.
VERBOSE Estilo detalhado, incluindo mais detalhes. A resposta pode ser formatada como uma frase, um parágrafo, vários parágrafos, tópicos com marcadores etc.

InputFeedback

Feedback relacionado aos dados de entrada usados para responder à pergunta, e não à resposta gerada pelo modelo.

Campos
safetyRatings[] object (SafetyRating)

Classificações de segurança da entrada. Há no máximo uma classificação por categoria.

blockReason enum (BlockReason)

Opcional. Se definido, a entrada foi bloqueada e nenhum candidato foi retornado. Reformule a entrada.

Representação JSON
{
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ],
  "blockReason": enum (BlockReason)
}

BlockReason

Especifica o motivo do bloqueio da entrada.

Enums
BLOCK_REASON_UNSPECIFIED Valor padrão. Esse valor não é usado.
SAFETY A entrada foi bloqueada por motivos de segurança. Analise safetyRatings para entender qual categoria de segurança fez o bloqueio.
OTHER A entrada foi bloqueada por outros motivos.