Method: models.generateAnswer

根据输入 GenerateAnswerRequest 根据模型生成依据结果的答案。

HTTP 请求

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

网址采用 gRPC 转码语法。

路径参数

参数
model

string

必需。用于生成依据反馈的 Model 的名称。

格式:model=models/{model}

请求正文

请求正文中包含结构如下的数据:

JSON 表示法
{
  "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
}
字段
contents[]

object (Content)

必需。当前与模型对话的内容。对于单轮查询,只有单个问题需要回答。对于多轮查询,此字段为重复字段,包含对话记录和包含题目的列表中的最后一个 Content

注意:models.generateAnswer 目前仅支持英语查询。

answerStyle

enum (AnswerStyle)

必需。应采用哪种样式返回答案。

safetySettings[]

object (SafetySetting)

可选。用于屏蔽不安全内容的唯一 SafetySetting 实例的列表。

此政策将于 GenerateAnswerRequest.contentsGenerateAnswerResponse.candidate 上强制执行。每种 SafetyCategory 类型不应有多个设置。如果内容和响应未达到这些设置所设的阈值,该 API 将屏蔽这些内容和响应。此列表会覆盖 safetySettings 中指定的每个 SafetyCategory 的默认设置。如果列表中提供的给定 SafetyCategory 没有对应的 SafetySetting,API 将为该类别使用默认安全设置。支持有害类别 HARM_CATEGORY_HATE_SPEECH、HARM_CATEGORY_SEXUALLY_EXPLICIT、HARM_CATEGORY_DANGEROUS_CONTENT、HARM_CATEGORY_HARASSMENT。

联合字段 grounding_source。答案的基础。grounding_source 只能是下列其中一项:
inlinePassages

object (GroundingPassages)

内嵌在请求中提供的段落。

semanticRetriever

object (SemanticRetrieverConfig)

从通过 Semantic Retriever API 创建的资源中检索的内容。

temperature

number

可选。控制输出的随机性。

值的范围为 [0.0,1.0](含 [0.0,1.0])。接近 1.0 的值将产生更加多样化和更具创造性的回答,而接近 0.0 的值通常会导致模型给出的回答更直接。对于归因问答用例,通常建议采用较低的温度 (~0.2)。

响应正文

模型针对有根据的答案给出的回答。

如果成功,响应正文将包含结构如下的数据:

JSON 表示法
{
  "answer": {
    object (Candidate)
  },
  "answerableProbability": number,
  "inputFeedback": {
    object (InputFeedback)
  }
}
字段
answer

object (Candidate)

模型提供的候选答案。

注意:该模型始终会尝试提供有据可依的答案,即使根据指定段落很难回答的情况下也是如此。在这种情况下,可能会提供低质量或缺乏依据的答案,以及较低的 answerableProbability

answerableProbability

number

仅供输出。模型对答案正确且基于输入段落的概率估算值。

可回答概率较低表示答案可能没有依据来源。

answerableProbability 较低时,某些客户端可能希望:

  • 向用户显示一条消息,说明“我们无法回答该问题”。
  • 回退到通用 LLM,可以回答来自世界知识的问题。此类后备行为的阈值和性质将取决于各个客户的使用情形。0.5 是一个不错的起始阈值。
inputFeedback

object (InputFeedback)

仅供输出。与用于回答问题的输入数据相关的反馈,与模型针对问题生成的回答不同。

“输入数据”可以是以下一项或多项:

  • 问题由“GenerateAnswerRequest.content”中的最后一个条目指定
  • GenerateAnswerRequest.content”中的其他条目指定的会话历史记录
  • 依据来源(GenerateAnswerRequest.semantic_retrieverGenerateAnswerRequest.inline_passages

授权范围

需要以下 OAuth 范围之一:

  • 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

如需了解详情,请参阅身份验证概览

GroundingPassages

重复段落列表。

JSON 表示法
{
  "passages": [
    {
      object (GroundingPassage)
    }
  ]
}
字段
passages[]

object (GroundingPassage)

段落列表。

GroundingPassage

内嵌在着陆配置中所含的段落。

JSON 表示法
{
  "id": string,
  "content": {
    object (Content)
  }
}
字段
id

string

用于在有根据的回答中注明此段落的段落的标识符。

content

object (Content)

段落的内容。

SemanticRetrieverConfig

用于从使用 Semantic Retriever API 创建的 CorpusDocument 检索依据内容的配置。

JSON 表示法
{
  "source": string,
  "query": {
    object (Content)
  },
  "metadataFilters": [
    {
      object (MetadataFilter)
    }
  ],
  "maxChunksCount": integer,
  "minimumRelevanceScore": number
}
字段
source

string

必需。用于检索的资源的名称,例如 corpora/123 或 corpora/123/documents/abc。

query

object (Content)

必需。用于相似性与给定资源中的 Chunk 匹配的查询。

metadataFilters[]

object (MetadataFilter)

可选。用于从资源中选择 Document 和/或 Chunk 的过滤器。

maxChunksCount

integer

可选。要检索的相关 Chunk 的数量上限。

minimumRelevanceScore

number

可选。检索到的相关 Chunk 的最低相关性得分。

AnswerStyle

设定有依据的答案的样式。

枚举
ANSWER_STYLE_UNSPECIFIED 未指定的答案样式。
ABSTRACTIVE 简洁而抽象的风格。
EXTRACTIVE 风格简短且提取。
VERBOSE 包含额外详细信息的详细样式。回复的格式可以是句子、段落、多个段落或项目符号等。

InputFeedback

与用于回答问题的输入数据相关的反馈,与模型针对问题生成的回答不同。

JSON 表示法
{
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ],
  "blockReason": enum (BlockReason)
}
字段
safetyRatings[]

object (SafetyRating)

输入安全性评分。每个类别最多只能有一个评分。

blockReason

enum (BlockReason)

可选。如果设置了此字段,则输入会被屏蔽,并且不会返回任何候选项。改写您输入的内容。

BlockReason

指定禁止输入的原因。

枚举
BLOCK_REASON_UNSPECIFIED 默认值。此值未使用。
SAFETY 出于安全考虑,输入已被屏蔽。您可以检查 safetyRatings,了解哪个安全类别将其屏蔽。
OTHER 输入因其他原因已被屏蔽。