

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 查询知识库并检索数据
<a name="kb-test-retrieve"></a>

**重要**  
护栏仅适用于输入和 LLM 生成的响应。它们不适用于运行时从知识库中检索到的参考信息。

知识库设置完成后，您可以使用 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) API 操作对其进行查询，从源数据中检索与查询相关的分块。您也可以[使用重排模型](rerank.md)，而不是默认的 Amazon Bedrock 知识库排名器，来对检索期间的来源分块进行相关性排名。

要了解如何查询知识库，请选择与您的首选方法对应的选项卡，然后按照以下步骤操作：

------
#### [ Console ]

**测试知识库**

1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后，打开 Amazon Bedrock 控制台，网址为[https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)。

1. 在左侧导航窗格中，选择**知识库**。

1. 在**知识库**部分中，执行以下操作之一：
   + 选择要测试的知识库旁边的单选按钮，然后选择**测试知识库**。一个文本窗口将从右侧展开。
   + 选择您要测试的知识库。一个文本窗口将从右侧展开。

1. 在测试窗口中，清除**为查询生成响应**以直接从知识库返回检索到的信息。

1. （可选）选择配置图标（![Icon showing three horizontal sliders at different positions for adjusting settings.](http://docs.aws.amazon.com/zh_cn/bedrock/latest/userguide/images/icons/configurations.png)）以打开**配置**。有关配置的信息，请参阅[配置和自定义查询与响应生成](kb-test-config.md)。

1. 在聊天窗口的文本框中输入查询，然后选择**运行**，让知识库返回响应。

1. 来源分块会按相关性顺序直接返回。从数据来源中提取的图像也可以作为来源分块返回。

1. 要查看有关返回的分块的详细信息，请选择**显示来源详细信息**。
   + 要查看您为查询设置的配置，请展开**查询配置**。
   + 要查看有关来源分块的详细信息，请选择其旁边的向右箭头 (![Right-pointing filled caret icon.](http://docs.aws.amazon.com/zh_cn/bedrock/latest/userguide/images/icons/caret-right-filled.png)) 将其展开。您可以查看以下信息：
     + 来自来源分块的原始文本。要复制此文本，请选择复制图标 (![Copy icon represented by two overlapping documents.](http://docs.aws.amazon.com/zh_cn/bedrock/latest/userguide/images/icons/copy.png))。如果您使用 Amazon S3 存储数据，请选择外部链接图标（![Icon of a square with an arrow pointing outward from its top-right corner.](http://docs.aws.amazon.com/zh_cn/bedrock/latest/userguide/images/icons/external.png)）以导航到包含该文件的 S3 对象。
     + 与来源分块关联的元数据（如果您使用了 Amazon S3 存储数据）。 attribute/field 键和值在与源文档关联`.metadata.json`的文件中定义。有关更多信息，请参阅[配置和自定义查询与响应生成](kb-test-config.md)中的**元数据和筛选**部分。

**聊天选项**
+ 通过打开**生成响应**，切换为基于检索到的来源分块生成响应。如果更改设置，聊天窗口中的文本将被完全清除。
+ 要清除聊天窗口，请选择扫帚图标（![Broom icon representing cleaning or clearing functionality.](http://docs.aws.amazon.com/zh_cn/bedrock/latest/userguide/images/icons/broom.png)）。
+ 要复制聊天窗口中的所有输出，请选择复制图标（![Copy icon represented by two overlapping documents.](http://docs.aws.amazon.com/zh_cn/bedrock/latest/userguide/images/icons/copy.png)）。

------
#### [ API ]

要查询知识库并仅从数据来源返回相关文本，请使用 [Amazon Bedrock 代理运行时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt)发送 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) 请求。

以下字段是必填字段：


****  

| 字段 | Basic description | 
| --- | --- | 
| 知识 BaseId | 指定要查询的知识库。 | 
| retrievalQuery | 包含用于指定查询的 text 字段。 | 
| guardrailsConfiguration | 包括 guardrailsConfiguration 字段，例如 guardrailsId 和 guardrailsVersion，以便在请求中使用护栏 | 

以下字段是可选字段：


****  

| 字段 | 使用案例 | 
| --- | --- | 
| nextToken | 返回下一批响应（请参阅以下响应字段）。 | 
| retrievalConfiguration | 包括用于自定义向量搜索的[查询配置](kb-test-config.md)。请参阅[KnowledgeBaseVectorSearchConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseVectorSearchConfiguration.html)了解更多信息。 | 

在默认的 Amazon Bedrock 知识库排名模型中，您可以使用重新排名模型而不是默认的 Amazon Bedrock 知识库排名模型。`rerankingConfiguration` [KnowledgeBaseVectorSearchConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseVectorSearchConfiguration.html)该`rerankingConfiguration`字段映射到一个[VectorSearchRerankingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_VectorSearchRerankingConfiguration.html)对象，您可以在其中指定要使用的重新排名模型、要包含的任何其他请求字段、在重新排名期间筛选出文档的元数据属性以及重新排名后要返回的结果数。有关更多信息，请参阅 [VectorSearchRerankingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_VectorSearchRerankingConfiguration.html)。

**注意**  
如果您指定的`numberOfRerankedResults`值大于中的`numberOfResults`值 [KnowledgeBaseVectorSearchConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseVectorSearchConfiguration.html)，则返回的最大结果数就是的值`numberOfResults`。一个例外情况是在您使用查询分解时（有关更多信息，请参阅[配置和自定义查询与响应生成](kb-test-config.md)中的**查询修改**部分）。如果您使用查询分解，则 `numberOfRerankedResults` 最多可以是 `numberOfResults` 的五倍。

该响应以`retrievalResults`字段中[KnowledgeBaseRetrievalResult](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalResult.html)对象数组的形式返回来自数据源的源块。每个都[KnowledgeBaseRetrievalResult](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_KnowledgeBaseRetrievalResult.html)包含以下字段：


****  

| 字段 | 说明 | 
| --- | --- | 
| content | 在 text 中包含文本来源分块，或者在 byteContent 字段中包含图像来源分块。如果内容是图像，则按以下格式返回 base64 编码内容的数据 URI：data:image/jpeg;base64,{{${base64-encoded string}}}。 | 
| 元数据 | 包含每个元数据属性作为键，并包含元数据值作为键映射到的 JSON 值。 | 
| 地点 | 包含来源分块所属文档的 URI 或 URL。 | 
| 分数 | 文档的相关性分数。您可以使用此分数来分析对结果的排名。 | 

如果来源分块的数量超过了响应中可以容纳的数量，则 `nextToken` 字段中将返回一个值。将该值用于另一个请求中可返回下一批结果。

如果检索到的数据包含图像，则响应还会返回以下响应标头，其中包含响应中返回的来源分块的元数据：
+ `x-amz-bedrock-kb-byte-content-source` – 包含图像的 Amazon S3 URI。
+ `x-amz-bedrock-kb-description` – 包含图像的 base64 编码的字符串。

**注意**  
[配置元数据筛选条件](kb-test-config.md)时，您无法根据这些元数据响应标头进行筛选。

**多式联运查询**  
对于使用多模嵌入模型的知识库，您可以使用文本或图像进行查询。该`retrievalQuery`字段支持用于图像查询的`multimodalInputList`字段：

**注意**  
有关设置和使用多模式知识库（包括在 Nova 和 BDA 方法之间进行选择）的全面指导，请参阅。[为多模式内容建立知识库](kb-multimodal.md)

您可以使用以下`multimodalInputList`字段使用图像进行查询：

```
{
    "knowledgeBaseId": "EXAMPLE123", 
    "retrievalQuery": {
        "multimodalInputList": [
            {
                "content": {
                    "byteContent": "base64-encoded-image-data"
                },
                "modality": "IMAGE"
            }
        ]
    }
}
```

或者，您也可以使用以下`text`字段仅使用文本进行查询：

```
{
    "knowledgeBaseId": "EXAMPLE123",
    "retrievalQuery": {
        "text": "Find similar shoes"
    }
}
```

**常见的多模式查询模式**  
以下是一些常见的查询模式：

Image-to-image 搜索  
上传图片以查找视觉上相似的图像。示例：上传一双红色 Nike 鞋的照片，以便在您的产品目录中找到类似的鞋子。

Text-based 搜索  
使用文本查询来查找相关内容。示例：“查找相似鞋子”，使用文字描述搜索您的商品目录。

可视化文档搜索  
在文档中搜索图表、图表或视觉元素。示例：上传图表图像以在您的文档集合中查找相似的图表。

**在 Nova 和 BDA 之间进行选择以获得多模式内容**  
在处理多模式内容时，请根据您的内容类型和查询模式选择您的方法：


**Nova vs BDA 决策矩阵**  

| 内容类型 | 使用 Nova 多模态嵌入式 | 使用基岩数据自动化 (BDA) 解析器 | 
| --- | --- | --- | 
| 视频内容 | 以视觉叙事为重点（体育、广告、演示）、对视觉元素的查询、最少的语音内容 | 重要 speech/narration （演讲、会议、教程）、口语内容查询、需要笔录 | 
| 音频内容 | 音乐或音效识别，非语音音频分析 | 播客、访谈、会议、任何需要转录的演讲内容 | 
| 图片内容 | 视觉相似度搜索、图像到图像检索、视觉内容分析 | 从图像中提取文本、文档处理、OCR 要求 | 

**注意**  
Nova 多模态嵌入无法直接处理语音内容。如果您的音频或视频文件包含重要的语音信息，请先使用 BDA 解析器将语音转换为文本，或者改为选择文本嵌入模型。

**多模式查询限制**  
以下是多模式查询的一些限制：
+ 在当前版本中，每次查询最多只能有一张图片
+ 只有多模态嵌入模型（Titan G1 或 Cohere Embed v3）才支持图像查询
+ RetrieveAndGenerate 具有多模式嵌入模型和 S3 内容存储桶的知识库不支持 API
+ 如果您使用纯文本嵌入模型向知识库提供图像查询，则将返回 4xx 错误

**多模态 API 响应结构**  
多模式内容的检索响应包括其他元数据：
+ **来源 URI：**指向您的原始 S3 存储桶位置
+ **补充 URI：**指向多式联运存储桶中的副本
+ **时间戳元数据：**包含用于视频和音频区块的时间戳元数据，以实现精确的播放定位

**注意**  
使用 API 或 SDK 时，您需要在应用程序中处理文件检索和时间戳导航。控制台通过增强的视频播放和自动时间戳导航自动处理此问题。

------

**注意**  
如果您在生成响应时收到提示超过字符限制的错误消息，则可以通过以下方式缩短提示：  
减少检索到的最大结果数（这会缩短 [知识库提示模板：编排&amp;生成](kb-test-config.md#kb-test-config-prompt-template) 中为 $search\_results$ 占位符填写的内容）。
使用采用更小分块的分块策略重新创建数据来源（这会缩短 [知识库提示模板：编排&amp;生成](kb-test-config.md#kb-test-config-prompt-template) 中为 $search\_results$ 占位符填写的内容）。
缩短提示模板。
缩短用户查询（这会缩短 [知识库提示模板：编排&amp;生成](kb-test-config.md#kb-test-config-prompt-template) 中为 $query$ 占位符填写的内容）。