根据检索到的数据查询知识库并生成响应 - Amazon Bedrock

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

根据检索到的数据查询知识库并生成响应

重要

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

设置了知识库之后,您可以使用 RetrieveAndGenerate API 操作查询知识库,并根据从源数据中检索到的分块来生成响应。返回的响应中附有对原始源数据的引用。您也可以使用重排模型,而不是默认的 Amazon Bedrock 知识库排名器,来对检索期间的来源分块进行相关性排名。

多式联运内容限制

RetrieveAndGenerate对多式联运内容的支持有限。使用 Nova 多模态嵌入时,RAG 功能仅限于文本内容。要获得包括音频和视频处理在内的完整多模态支持,请将 BDA 与文本嵌入模型一起使用。有关更多信息,请参阅 为多模式内容建立知识库

注意

RetrieveAndGenerate 流期间,从 Retrieve 响应返回的图像包含在用于响应生成的提示中。RetrieveAndGenerate 响应不能包含图像,但可以引用包含图像的来源。

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

Console
测试知识库
  1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。AWS 管理控制台然后,在 https://console.aws.amazon.com/bedrock 上打开 Amazon Bedrock 控制台。

  2. 在左侧导航窗格中,选择知识库

  3. 知识库部分中,执行以下操作之一:

    • 选择要测试的知识库旁边的单选按钮,然后选择测试知识库。一个文本窗口将从右侧展开。

    • 选择您要测试的知识库。一个文本窗口将从右侧展开。

  4. 要基于从知识库检索到的信息生成响应,请启用为查询生成响应。Amazon Bedrock 将根据您的数据来源生成响应,并通过脚注引用它提供的信息。

  5. 要选择用于生成响应的模型,请选择选择模型。然后选择应用

  6. (可选)选择配置图标( Three horizontal sliders with adjustable circular controls for settings or parameters. )以打开配置。有关配置的信息,请参阅配置和自定义查询与响应生成

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

  8. 请选择脚注以查看对应响应部分的引用来源摘录。选择链接以导航到包含该文件的 S3 对象。

  9. 要查看有关返回的分块的详细信息,请选择显示来源详细信息

    • 要查看您为查询设置的配置,请展开查询配置

    • 要查看有关来源分块的详细信息,请选择其旁边的向右箭头 ( Play button icon with a triangular shape pointing to the right. ) 将其展开。您可以查看以下信息:

      • 来自来源分块的原始文本。要复制此文本,请选择复制图标 ( Icon representing a crop or resize function, with two overlapping rectangles. )。如果您使用 Amazon S3 存储数据,请选择外部链接图标( Icon of a square with an arrow pointing outward from its top-right corner. )以导航到包含该文件的 S3 对象。

      • 与来源分块关联的元数据(如果您使用了 Amazon S3 存储数据)。 attribute/field 键和值在与源文档关联.metadata.json的文件中定义。有关更多信息,请参阅配置和自定义查询与响应生成中的元数据和筛选部分。

聊天选项
  • 要使用不同的模型进行响应生成,请选择更改模型。如果更改模型,聊天窗口中的文本将被完全清除。

  • 通过清除生成响应直接切换到检索来源分块。如果更改设置,聊天窗口中的文本将被完全清除。

  • 要清除聊天窗口,请选择扫帚图标( Magnifying glass icon with a checkmark inside, symbolizing search or inspection. )。

  • 要复制聊天窗口中的所有输出,请选择复制图标( Icon representing a crop or resize function, with two overlapping rectangles. )。

API

要查询知识库,并使用基础模型根据数据来源的结果生成响应,请使用 Amazon Bedrock 代理运行时端点发送 RetrieveAndGenerate 请求。

RetrieveAndGenerateStream API 以流式格式返回数据,让您能够以分块方式访问生成的响应,而无需等待整个结果完成后再返回。

以下字段是必填字段:

注意

API 响应包含引文事件。citation 成员已弃用。建议您改用 generatedResponseretrievedReferences 字段。有关参考,请参阅 CitationEvent

字段 Basic description
input 包含用于指定查询的 text 字段。
retrieveAndGenerate配置 包含 RetrieveAndGenerateConfiguration,它指定了检索和生成的配置。有关更多详细信息,请参阅下文。

以下字段是可选字段:

字段 使用案例
sessionId 使用与前一个会话相同的值来继续该会话,并从中维护模型的上下文。
sessionConfiguration 包括用于会话加密的自定义 KMS 密钥。

将该knowledgeBaseConfiguration字段包含在RetrieveAndGenerateConfiguration。此字段映射到一个KnowledgeBaseRetrieveAndGenerateConfiguration对象,其中包含以下字段:

  • 以下字段是必填字段:

    字段 Basic description
    knowledgeBaseId 要查询的知识库的 ID。
    modelArn 生成过程所使用的基础模型或推理配置文件的 ARN。
  • 以下字段是可选字段:

    字段 使用案例
    retrievalConfiguration 包括用于自定义向量搜索的查询配置。有关更多信息,请参阅 KnowledgeBaseRetrievalConfiguration
    orchestrationConfiguration 用来指定模型在检索和生成之前如何处理提示的配置。有关更多信息,请参阅 OrchestrationConfiguration
    generationConfiguration 指定用于生成响应的配置。有关更多信息,请参阅 GenerationConfiguration

您可以通过在KnowledgeBaseVectorSearchConfiguration中添加rerankingConfiguration字段来使用重新排名模型,而不是默认的 Amazon Bedrock 知识库排名模型。KnowledgeBaseRetrievalConfigurationrerankingConfiguration字段映射到一个VectorSearchRerankingConfiguration对象,您可以在其中指定要使用的重新排名模型、要包含的任何其他请求字段、在重新排名期间筛选出文档的元数据属性以及重新排名后要返回的结果数。有关更多信息,请参阅 VectorSearchRerankingConfiguration

注意

如果您指定的numberOfRerankedResults值大于中的numberOfResultsKnowledgeBaseVectorSearchConfiguration,则返回的最大结果数就是的值numberOfResults。一个例外情况是在您使用查询分解时(有关更多信息,请参阅配置和自定义查询与响应生成中的查询修改部分)。如果您使用查询分解,则 numberOfRerankedResults 最多可以是 numberOfResults 的五倍。

响应在 output 字段中返回生成的响应,并将引用的来源分块作为数组在 citations 字段中返回。每个引文对象都包含以下字段。

字段 Basic description
generatedResponsePart textResponsePart 字段中,包括与引文相关的 textspan 字段为输出中带有引文的部分的开头和结尾提供索引。
retrievedReferences 一个RetrievedReference对象数组,每个对象都包含与文档metadata关联content的源代码块,以及数据源中文档的 URI 或 URL location如果内容是图像,则按以下格式返回 base64 编码内容的数据 URI:data:image/jpeg;base64,${base64-encoded string}

响应还返回一个 sessionId 值,您可以在其他请求中重复使用该值以维护相同的对话。

如果您在请求中包含了 guardrailConfiguration,则 guardrailAction 字段会通知您内容是否被阻止。

如果检索到的数据包含图像,则响应还会返回以下响应标头,其中包含响应中返回的来源分块的元数据:

  • x-amz-bedrock-kb-byte-content-source – 包含图像的 Amazon S3 URI。

  • x-amz-bedrock-kb-description – 包含图像的 base64 编码的字符串。

注意

配置元数据筛选条件时,您无法根据这些元数据响应标头进行筛选。

注意

如果您在生成响应时收到提示超过字符限制的错误消息,则可以通过以下方式缩短提示: