生成式 AI 搜索

前期准备

如需将示例文档注入到 Document AI Warehouse 中,请参阅快速入门指南

生成式 AI 搜索会检索与(关键字或自然语言)搜索查询最相关的前 k 个文档。它会从客户上传的文档中返回精准的答案,并按相关性对搜索结果进行排序。

搜索请求调用方通过在 qaSizeLimit 字段中指定 k 来决定 k 的值。大语言模型可确定搜索查询与文档之间的相关性。

搜索范围内的数据

不支持过滤、分页、直方图、自定义同义词、文档级精细访问权限控制。

发出搜索请求调用

如需调用搜索服务,您必须使用搜索请求,其定义如下:

{
  "documentQuery": {
    object (DocumentQuery)
  },
  "qaSizeLimit": integer
}

parent 字段必须按以下格式填写:

/projects/PROJECT_ID/locations/LOCATION

对于生成式 AI 搜索,qaSizeLimit 字段是必需的。

对搜索请求的响应

搜索响应的定义如下:

{
  "matchingDocuments": [
    {
      object (MatchingDocument)
    }
  ],
  "metadata": {
    object (ResponseMetadata)
  }
}

文档查询

document_query 字段的定义如下:

{
  "query": string,
  "isNlQuery": boolean
}

查询字段用于存放请求用户的搜索查询字词,可以是关键字,也可以是自然语言问题。这些内容通常来自界面中的搜索字段。 对于生成式 AI 搜索,需要将 isNlQuery 字段设置为 true。

匹配的文档

匹配的文档如下所示:

{
  "document": {
    object (Document)
  },
  "searchTextSnippet": string,
  "qaResult": {
    object (QAResult)
  }
}

SearchTextSnippet 字段包含回答用户自然语言查询的摘要。不会出现 HTML 粗体标记,答案摘要中的突出显示内容可在 QAResult.highlights 中找到。注意:匹配文档的完整参考信息。

生成式 AI 搜索结果

这是生成式 AI 搜索结果信息。

{
  "highlights": {
    object(Highlight)
  }
  "confidence_score": float
}

Highlight

这是搜索文本摘要中表示突出显示部分的文本范围,例如回答上下文或高度相关的句子。

{
  "start_index": integer
  "end_index": integer
}

一组文档中的问题和答案

如需使用生成式 AI 生成回答,您必须使用包含 documentNameFilter 的搜索请求,该参数的定义如下:

{
  "documentQuery": {
    "query": "QUERY",
    "isNlQuery": "true",
    "documentNameFilter" : [
      "projects/PROJECT_NUMBER/locations/LOCATION/documents/DOCUMENT_ID_1",
      "projects/PROJECT_NUMBER/locations/LOCATION/documents/DOCUMENT_ID_2",
    ]
  },
  "qaSizeLimit": integer
}

避免向 documentQuery 添加其他过滤条件,因为其他过滤条件尚未正常运行。

如果可以在给定的文档集中找到答案,则该答案会存储在 questionAnswer 字段中。

{
  "document": {
    object (Document)
  },
  questionAnswer: "QUESTION_ANSWER",
}

后续步骤