Method: models.generateAnswer

Generates a grounded answer from the model given an input GenerateAnswerRequest.

HTTP request

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

The URL uses gRPC Transcoding syntax.

Path parameters

Parameters
model

string

Required. The name of the Model to use for generating the grounded response.

Format: model=models/{model}.

Request body

The request body contains data with the following structure:

JSON representation
{
  "contents": [
    {
      object (Content)
    }
  ],
  "answerStyle": enum (AnswerStyle),
  "safetySettings": [
    {
      object (SafetySetting)
    }
  ],

  // Union field grounding_source can be only one of the following:
  "inlinePassages": {
    object (GroundingPassages)
  },
  "semanticRetriever": {
    object (SemanticRetrieverConfig)
  }
  // End of list of possible types for union field grounding_source.
  "temperature": number
}
Fields
contents[]

object (Content)

Required. The content of the current conversation with the model. For single-turn queries, this is a single question to answer. For multi-turn queries, this is a repeated field that contains conversation history and the last Content in the list containing the question.

Note: models.generateAnswer currently only supports queries in English.

answerStyle

enum (AnswerStyle)

Required. Style in which answers should be returned.

safetySettings[]

object (SafetySetting)

Optional. A list of unique SafetySetting instances for blocking unsafe content.

This will be enforced on the GenerateAnswerRequest.contents and GenerateAnswerResponse.candidate. There should not be more than one setting for each SafetyCategory type. The API will block any contents and responses that fail to meet the thresholds set by these settings. This list overrides the default settings for each SafetyCategory specified in the safetySettings. If there is no SafetySetting for a given SafetyCategory provided in the list, the API will use the default safety setting for that category. Harm categories HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT are supported.

Union field grounding_source. The sources in which to ground the answer. grounding_source can be only one of the following:
inlinePassages

object (GroundingPassages)

Passages provided inline with the request.

semanticRetriever

object (SemanticRetrieverConfig)

Content retrieved from resources created via the Semantic Retriever API.

temperature

number

Optional. Controls the randomness of the output.

Values can range from [0.0,1.0], inclusive. A value closer to 1.0 will produce responses that are more varied and creative, while a value closer to 0.0 will typically result in more straightforward responses from the model. A low temperature (~0.2) is usually recommended for Attributed-Question-Answering use cases.

Response body

Response from the model for a grounded answer.

If successful, the response body contains data with the following structure:

JSON representation
{
  "answer": {
    object (Candidate)
  },
  "answerableProbability": number,
  "inputFeedback": {
    object (InputFeedback)
  }
}
Fields
answer

object (Candidate)

Candidate answer from the model.

Note: The model always attempts to provide a grounded answer, even when the answer is unlikely to be answerable from the given passages. In that case, a low-quality or ungrounded answer may be provided, along with a low answerableProbability.

answerableProbability

number

Output only. The model's estimate of the probability that its answer is correct and grounded in the input passages.

A low answerableProbability indicates that the answer might not be grounded in the sources.

When answerableProbability is low, some clients may wish to:

  • Display a message to the effect of "We couldn’t answer that question" to the user.
  • Fall back to a general-purpose LLM that answers the question from world knowledge. The threshold and nature of such fallbacks will depend on individual clients’ use cases. 0.5 is a good starting threshold.
inputFeedback

object (InputFeedback)

Output only. Feedback related to the input data used to answer the question, as opposed to model-generated response to the question.

"Input data" can be one or more of the following:

  • Question specified by the last entry in GenerateAnswerRequest.content
  • Conversation history specified by the other entries in GenerateAnswerRequest.content
  • Grounding sources (GenerateAnswerRequest.semantic_retriever or GenerateAnswerRequest.inline_passages)

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/generative-language
  • https://www.googleapis.com/auth/generative-language.retriever
  • https://www.googleapis.com/auth/generative-language.retriever.readonly
  • https://www.googleapis.com/auth/generative-language.tuning
  • https://www.googleapis.com/auth/generative-language.tuning.readonly

For more information, see the Authentication Overview.

GroundingPassages

A repeated list of passages.

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

object (GroundingPassage)

List of passages.

GroundingPassage

Passage included inline with a grounding configuration.

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

string

Identifier for the passage for attributing this passage in grounded answers.

content

object (Content)

Content of the passage.

SemanticRetrieverConfig

Configuration for retrieving grounding content from a Corpus or Document created using the Semantic Retriever API.

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

string

Required. Name of the resource for retrieval, e.g. corpora/123 or corpora/123/documents/abc.

query

object (Content)

Required. Query to use for similarity matching Chunks in the given resource.

metadataFilters[]

object (MetadataFilter)

Optional. Filters for selecting Documents and/or Chunks from the resource.

maxChunksCount

integer

Optional. Maximum number of relevant Chunks to retrieve.

minimumRelevanceScore

number

Optional. Minimum relevance score for retrieved relevant Chunks.

AnswerStyle

Style for grounded answers.

Enums
ANSWER_STYLE_UNSPECIFIED Unspecified answer style.
ABSTRACTIVE Succint but abstract style.
EXTRACTIVE Very brief and extractive style.
VERBOSE Verbose style including extra details. The response may be formatted as a sentence, paragraph, multiple paragraphs, or bullet points, etc.

InputFeedback

Feedback related to the input data used to answer the question, as opposed to model-generated response to the question.

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

object (SafetyRating)

Ratings for safety of the input. There is at most one rating per category.

blockReason

enum (BlockReason)

Optional. If set, the input was blocked and no candidates are returned. Rephrase your input.

BlockReason

Specifies what was the reason why input was blocked.

Enums
BLOCK_REASON_UNSPECIFIED Default value. This value is unused.
SAFETY Input was blocked due to safety reasons. You can inspect safetyRatings to understand which safety category blocked it.
OTHER Input was blocked due to other reasons.