ContentSearchSpec

用于配置内容搜索行为的规范。

JSON 表示法
{
  "snippetSpec": {
    object (SnippetSpec)
  },
  "summarySpec": {
    object (SummarySpec)
  },
  "extractiveContentSpec": {
    object (ExtractiveContentSpec)
  },
  "searchResultMode": enum (SearchResultMode),
  "chunkSpec": {
    object (ChunkSpec)
  }
}
字段
snippetSpec

object (SnippetSpec)

如果未指定 snippetSpec,则搜索回答中将不包含摘要。

summarySpec

object (SummarySpec)

如果未指定 summarySpec,则搜索回答中将不包含总结。

extractiveContentSpec

object (ExtractiveContentSpec)

如果未提供 extractiveContentSpec,则搜索回答中不会包含提取式回答。

searchResultMode

enum (SearchResultMode)

指定搜索结果模式。如果未指定,搜索结果模式默认为 DOCUMENTS。

chunkSpec

object (ChunkSpec)

指定要从搜索回答中返回的块规范。仅在 SearchRequest.ContentSearchSpec.search_result_mode 设置为 CHUNKS 时可用

SnippetSpec

用于配置搜索回答中摘要的规范。

JSON 表示法
{
  "maxSnippetCount": integer,
  "referenceOnly": boolean,
  "returnSnippet": boolean
}
字段
maxSnippetCount
(deprecated)

integer

[已弃用] 此字段已弃用。如需控制摘要的返回,请使用 returnSnippet 字段。为了保持向后兼容性,如果 maxSnippetCount > 0,我们将返回摘要。

referenceOnly
(deprecated)

boolean

[已弃用] 此字段已弃用,对摘要没有任何影响。

returnSnippet

boolean

如果为 true,则返回摘要。如果无法生成摘要,我们将返回“此页面没有可用摘要”。系统还会返回包含 SUCCESS 或 NO_SNIPPET_AVAILABLE 的 snippetStatus。

SummarySpec

用于配置搜索响应中返回的摘要的规范。

JSON 表示法
{
  "summaryResultCount": integer,
  "includeCitations": boolean,
  "ignoreAdversarialQuery": boolean,
  "ignoreNonSummarySeekingQuery": boolean,
  "ignoreLowRelevantContent": boolean,
  "ignoreJailBreakingQuery": boolean,
  "modelPromptSpec": {
    object (ModelPromptSpec)
  },
  "languageCode": string,
  "modelSpec": {
    object (ModelSpec)
  },
  "useSemanticChunks": boolean
}
字段
summaryResultCount

integer

用于生成摘要的热门结果数量。如果返回的结果数量少于 summaryResultCount,则系统会根据所有结果生成摘要。

最多可以使用 10 个文档模式的结果或 50 个块模式的结果来生成摘要。当 SearchRequest.ContentSearchSpec.search_result_mode 设置为 CHUNKS 时,系统会使用块模式。

includeCitations

boolean

指定是否在摘要中包含引用。默认值为 false。

如果此字段设置为 true,摘要将包含内嵌引用编号。

包含引文的摘要示例:

BigQuery 是 Google Cloud 的完全托管且完全无服务器的企业数据仓库 [1]。BigQuery 支持所有数据类型,可跨云环境运行,并内置机器学习和商业智能,所有这些都集成在一个统一的平台中 [2, 3]。

引用编号对应返回的搜索结果,其索引从 1 开始。例如,[1] 表示相应句子归因于第一个搜索结果。[2, 3] 表示相应句子归因于第二个和第三个搜索结果。

ignoreAdversarialQuery

boolean

指定是否过滤掉对抗性查询。默认值为 false。

Google 采用搜索查询分类来检测对抗性查询。如果搜索查询被归类为对抗性查询,则不会返回摘要。例如,用户可能会询问有关公司负面评论的问题,或者提交旨在生成不安全、违反政策的输出内容的查询。如果此字段设置为 true,我们会跳过为对抗性查询生成摘要,而是返回后备消息。

ignoreNonSummarySeekingQuery

boolean

指定是否滤除非摘要类查询。默认值为 false。

Google 采用搜索查询分类技术来检测寻求摘要的查询。如果搜索查询被归类为非摘要类查询,则不会返回摘要。例如,why is the sky blue 和 Who is the best soccer player in the world? 是寻求摘要的查询,但 SFO airport 和 world cup 2026 不是。它们很可能是导航查询。如果此字段设置为 true,我们会跳过为非摘要类查询生成摘要,而是返回后备消息。

ignoreLowRelevantContent

boolean

指定是否滤除低相关性的查询。默认值为 false。

如果此字段设置为 false,则无论相关性如何,所有搜索结果都将用于生成回答。如果设置为 true,只有搜索结果相关性较高的查询才会生成回答。

ignoreJailBreakingQuery

boolean

可选。指定是否滤除越狱查询。默认值为 false。

Google 采用搜索查询分类来检测越狱查询。如果搜索查询被归类为越狱查询,则不会返回任何摘要。用户可能会在查询中添加指令,以改变回答的语气、风格、语言和内容,或要求模型扮演不同的实体,例如“以竞争公司 CEO 的语气回答”。如果此字段设置为 true,我们会跳过为越狱查询生成摘要的过程,而是返回回退消息。

modelPromptSpec

object (ModelPromptSpec)

如果指定,系统将使用此规范来修改提供给 LLM 的提示。

languageCode

string

摘要的语言代码。使用 BCP47 定义的语言标记。注意:这是一项实验性功能。

modelSpec

object (ModelSpec)

如果指定,系统将使用此规范来修改提供给 LLM 的模型规范。

useSemanticChunks

boolean

如果设为 true,系统将根据热门搜索结果中最相关的信息块生成回答。此功能将提高摘要质量。请注意,启用此功能后,并非所有热门搜索结果都会被引用并包含在参考文献列表中,因此引用来源索引仅指向参考文献列表中列出的搜索结果。

ModelPromptSpec

要与模型搭配使用的提示的规范。

JSON 表示法
{
  "preamble": string
}
字段
preamble

string

位于提示开头,用于为助理提供指令的文本。用户指南中提供了示例。

ModelSpec

模型的规范。

JSON 表示法
{
  "version": string
}
字段
version

string

用于生成摘要的模型版本。

支持的值包括:

ExtractiveContentSpec

用于配置搜索回答中提取式内容的规范。

JSON 表示法
{
  "maxExtractiveAnswerCount": integer,
  "maxExtractiveSegmentCount": integer,
  "returnExtractiveSegmentScore": boolean,
  "numPreviousSegments": integer,
  "numNextSegments": integer
}
字段
maxExtractiveAnswerCount

integer

每个搜索结果中返回的提取式回答的数量上限。

提取式回答是指从原始文档中提取的逐字逐句的回答,可针对搜索查询提供精确且符合上下文的回答。

如果匹配回答的数量小于 maxExtractiveAnswerCount,则返回所有回答。否则,返回 maxExtractiveAnswerCount。

每个 SearchResult 最多返回 5 个回答。

maxExtractiveSegmentCount

integer

每个搜索结果中返回的提取式片段的数量上限。仅在 DataStore 设置为 DataStore.ContentConfig.CONTENT_REQUIRED 或 DataStore.solution_types 为 SOLUTION_TYPE_CHAT 时应用。

提取式片段是从原始文档中提取的与搜索查询相关的文本片段,通常比提取式回答更详细。然后,该片段可用作 LLM 的输入,以生成摘要和回答。

如果匹配的片段数小于 maxExtractiveSegmentCount,则返回所有片段。否则,返回 maxExtractiveSegmentCount。

returnExtractiveSegmentScore

boolean

指定是否返回每个搜索结果中提取式片段的置信度得分。此功能仅适用于新的数据存储区或已列入许可名单的数据存储区。如需将您的数据存储区列入许可名单,请与您的客户工程师联系。默认值为 false。

numPreviousSegments

integer

指定是否也包含每个所选片段的相邻片段。返回每个所选片段之前的最多 numPreviousSegments 个片段。

numNextSegments

integer

在每个所选片段之后最多返回 numNextSegments 个片段。

SearchResultMode

指定搜索结果模式。如果未指定,搜索结果模式默认为 DOCUMENTS。

枚举
SEARCH_RESULT_MODE_UNSPECIFIED 默认值。
DOCUMENTS 返回搜索结果中的文档。
CHUNKS 返回搜索结果中的块。仅在指定 DocumentProcessingConfig.chunking_config 时可用。

ChunkSpec

指定要从搜索回答中返回的块规范。仅在 SearchRequest.ContentSearchSpec.search_result_mode 设置为 CHUNKS 时可用

JSON 表示法
{
  "numPreviousChunks": integer,
  "numNextChunks": integer
}
字段
numPreviousChunks

integer

要返回的当前块之前的块数量。允许的最大值为 3。如果未指定,则不返回之前的块。

numNextChunks

integer

要返回的当前块之后的块数量。允许的最大值为 3。如果未指定,则不返回之后的块。