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

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

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

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

注意

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

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

Console
测试知识库
  1. AWS Management Console 使用具有 Amazon Bedrock 权限的IAM角色登录,然后通过以下网址打开 Amazon Bedrock 控制台。https://console.aws.amazon.com/bedrock/

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

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

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

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

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

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

  6. (可选)选择配置图标 ( ) 以打开配置。您可以修改以下配置:

    • 搜索类型:指定如何查询您的知识库。有关更多信息,请参阅 搜索类型

    • 检索结果的最大数量:指定要检索的最大结果数。有关更多信息,请参阅 检索结果的最大数量

    • 筛选条件:指定最多 5 个筛选条件组,在每个组中最多指定 5 个筛选条件,以用于文件的元数据。有关更多信息,请参阅 手动筛选元数据

    • 知识库提示模板-您可以用自己的提示模板替换默认提示模板,以自定义发送到模型以生成响应的提示。有关更多信息,请参阅 知识库提示模板:编排和生成

    • 护栏 — 您可以根据知识库的提示和响应来测试护栏的工作原理。有关更多信息,请参阅 防护机制

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

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

  9. 要查看有关返回区块的详细信息,请选择 “显示源详细信息”。

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

    • 要查看有关来源分块的详细信息,请选择其旁边的向右箭头 ( ) 将其展开。您可以查看以下信息:

      • 来自来源分块的原始文本。要复制此文本,请选择复制图标 ( )。如果您使用 Amazon S3 存储数据,请选择外部链接图标 ( ) 以导航到包含该文件的 S3 对象。

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

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

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

  • 要清除聊天窗口,请选择扫帚图标( )。

  • 要复制聊天窗口中的所有输出,请选择复制图标( )。

API

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

这些区域有:RetrieveAndGenerateStreamAPI以流格式返回数据,并允许您分块访问生成的响应,而无需等待整个结果。

以下字段是必填字段:

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

以下字段是可选字段:

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

将该knowledgeBaseConfiguration字段包含在RetrieveAndGenerateConfiguration。此字段映射到包含以下字段的KnowledgeBaseRetrieveAndGenerateConfiguration对象:

  • 以下字段是必填字段:

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

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

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

注意

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

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

字段 Basic description
generatedResponsePart 在该textResponsePart字段中,text包括引文所涉及的。该span字段为输出中带有引文的部分的开头和结尾提供索引。
retrievedReferences 一个RetrievedReference对象数组,每个对象都包含与文档metadata关联content的源区块以及数据源中文档URLlocation的URI或。 如果内容是图像,则按以下格式返回 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 编码字符串。

注意

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