Semantic Retrieval API 提供托管的问答服务,以使用 Google 的基础架构构建检索增强生成 (RAG) 系统。如需详细了解相关步骤,请参阅语义检索指南。
方法:models.generateAnswer
- 端点
- 路径参数
- 请求正文
- 响应正文
- 授权范围
- GroundingPassages
- GroundingPassage
- SemanticRetrieverConfig
- AnswerStyle
- InputFeedback
- BlockReason
在给定输入 GenerateAnswerRequest
的情况下,从模型生成有依据的回答。
端点
帖子
https://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateAnswer
路径参数
model
string
必需。用于生成以事实为依据的回答的 Model
的名称。
格式:model=models/{model}
。其格式为 models/{model}
。
请求正文
请求正文中包含结构如下的数据:
contents[]
object (Content
)
必需。与 Model
的当前对话的内容。对于单轮询问,这是要回答的一个问题。对于多轮询问,这是一个重复字段,包含对话记录以及包含问题的列表中的最后一个 Content
。
注意:models.generateAnswer
仅支持英语查询。
answerStyle
enum (AnswerStyle
)
必需。返回答案的样式。
safetySettings[]
object (SafetySetting
)
可选。用于屏蔽不安全内容的唯一 SafetySetting
实例列表。
这将在 GenerateAnswerRequest.contents
和 GenerateAnswerResponse.candidate
上强制执行。每个 SafetyCategory
类型不应有多个设置。此 API 将屏蔽任何未达到这些设置所设阈值的内容和响应。此列表会替换 safetySettings 中指定的每个 SafetyCategory
的默认设置。如果列表中提供的给定 SafetyCategory
没有 SafetySetting
,则该 API 将使用该类别的默认安全设置。支持危害类别 HARM_CATEGORY_HATE_SPEECH、HARM_CATEGORY_SEXUALLY_EXPLICIT、HARM_CATEGORY_DANGEROUS_CONTENT、HARM_CATEGORY_HARASSMENT。如需详细了解可用的安全设置,请参阅指南。此外,请参阅安全指南,了解如何在 AI 应用中纳入安全注意事项。
grounding_source
。回答依据的来源。grounding_source
只能是下列其中一项:
inlinePassages
object (GroundingPassages
)
随请求一起提供的段落。
semanticRetriever
object (SemanticRetrieverConfig
)
从通过 Semantic Retriever API 创建的资源检索的内容。
temperature
number
可选。控制输出的随机性。
值的范围为 [0.0,1.0](含边界值)。接近 1.0 的值将产生更加多样化和更有创造力的回答,而接近 0.0 的值通常会产生更直接的模型回答。对于归因问答用例,通常建议设置较低的温度 (~0.2)。
响应正文
模型针对有依据的回答给出的回复。
如果成功,响应正文将包含结构如下的数据:
answer
object (Candidate
)
模型的候选答案。
注意:该模型始终会尝试提供有依据的回答,即使无法从给定段落中找到答案也是如此。在这种情况下,系统可能会提供质量低劣或缺乏依据的回答,以及较低的 answerableProbability
。
answerableProbability
number
仅限输出。模型对其回答正确且基于输入段落的概率的估计。
answerableProbability
较低表示答案可能并非基于相关来源。
当 answerableProbability
较低时,您可能需要:
- 显示提示“我们无法回答该问题”的消息。
- 回退到通用 LLM,以便根据世界知识回答问题。此类回退的阈值和性质将取决于具体用例。
0.5
是一个不错的起始阈值。
inputFeedback
object (InputFeedback
)
仅限输出。与用于回答问题的输入数据相关的反馈,与模型针对问题生成的回答相反。
输入数据可以是以下一项或多项:
GenerateAnswerRequest.content
中的最后一个条目指定的问题- “
GenerateAnswerRequest.content
”中的其他条目指定的对话历史记录 - 依据来源(
GenerateAnswerRequest.semantic_retriever
或GenerateAnswerRequest.inline_passages
)
JSON 表示法 |
---|
{ "answer": { object ( |
GroundingPassages
重复的段落列表。
passages[]
object (GroundingPassage
)
段落列表。
JSON 表示法 |
---|
{
"passages": [
{
object ( |
GroundingPassage
SemanticRetrieverConfig
用于从使用 Semantic Retriever API 创建的 Corpus
或 Document
中检索依据内容的配置。
source
string
必需。要检索的资源的名称。示例:corpora/123
或 corpora/123/documents/abc
。
query
object (Content
)
必需。用于按相似度匹配给定资源中的 Chunk
的查询。
metadataFilters[]
object (MetadataFilter
)
可选。用于从资源中选择 Document
和/或 Chunk
的过滤条件。
maxChunksCount
integer
可选。要检索的相关 Chunk
的数量上限。
minimumRelevanceScore
number
可选。检索到的相关Chunk
的最低相关性得分。
JSON 表示法 |
---|
{ "source": string, "query": { object ( |
AnswerStyle
以有事实依据的答案的样式。
枚举 | |
---|---|
ANSWER_STYLE_UNSPECIFIED |
未指定的答案样式。 |
ABSTRACTIVE |
简洁但抽象风格。 |
EXTRACTIVE |
内容非常简短,采用提取式风格。 |
VERBOSE |
包含额外的细节的“详细”样式。回答可以采用句子、段落、多个段落或项目符号列表等格式。 |
InputFeedback
与用于回答问题的输入数据相关的反馈,而不是模型针对问题生成的回答。
safetyRatings[]
object (SafetyRating
)
输入安全性的评分。每个类别最多只能有一个分级。
blockReason
enum (BlockReason
)
可选。如果已设置,系统会屏蔽输入,且不会返回任何候选字词。改写输入的内容。
JSON 表示法 |
---|
{ "safetyRatings": [ { object ( |
BlockReason
指定输入被屏蔽的原因。
枚举 | |
---|---|
BLOCK_REASON_UNSPECIFIED |
默认值。此值未使用。 |
SAFETY |
出于安全原因,输入内容被屏蔽了。检查 safetyRatings ,了解哪个安全类别屏蔽了它。 |
OTHER |
由于其他原因,输入已被屏蔽。 |