本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将数据转化为知识库
要创建知识库,请连接到您希望知识库能够访问的支持数据源。您的知识库将能够响应用户查询或根据检索到的数据生成响应。
Amazon Bedrock 知识库支持各种文档,包括文本、图像或包含表格、图表、图表和其他图像的多模式文档。多模态数据是指文本和视觉数据的组合。包含非结构化数据的文件类型的示例包括文本、markdown 和HTML。PDFs
以下各节介绍了 Amazon Bedrock 知识库支持的数据类型以及您可以针对每种数据将知识库与之关联的服务:
非结构化数据
非结构化数据是指未强制进入预定义结构的数据。Amazon Bedrock 知识库支持连接到以下服务,将非结构化数据添加到您的知识库中:
Amazon S3
Confluence (预览)
Microsoft SharePoint (预览)
Salesforce (预览)
Web Crawler (预览)
自定义数据源(允许直接将数据提取到知识库中,无需同步)
数据源包含文档的原始形式。为了优化查询流程,知识库会将您的原始数据转换为矢量嵌入(数据的数字表示形式),以量化与也转换为向量嵌入的查询的相似性。Amazon Bedrock 知识库在转换您的数据源的过程中使用以下资源:
-
嵌入模型-将您的数据转换为矢量嵌入的基础模型。
-
矢量存储-一种存储数据的矢量表示的服务。支持以下矢量存储:
-
Amazon OpenSearch 无服务器
-
Amazon Neptune
-
亚马逊 Aurora (RDS)
-
Pinecone
-
Redis Enterprise Cloud
-
MongoDB Atlas
-
将数据转换为矢量嵌入的过程称为摄取。将您的数据转化为知识库的摄取过程包括以下步骤:
提取
-
数据由您选择的解析器进行解析。有关解析的更多信息,请参阅数据源的解析选项。
-
数据源中的每个文档都被分成块,这些数据可以由令牌的数量和其他参数定义。有关分块的更多信息,请参阅知识库的内容分块工作原理。
-
您选择的嵌入模型会将数据转换为矢量嵌入。
-
向量嵌入将写入所选矢量存储中的向量索引。
摄取过程完成后,即可查询您的知识库。有关如何从知识库中查询和检索信息的信息,请参阅使用 Amazon Bedrock 知识库从数据源检索信息。
如果您对数据源进行更改,则必须同步更改,才能将添加、修改和删除内容纳入知识库。某些数据源支持将文件直接摄取或删除到知识库中,因此无需将数据源修改和摄取视为单独的步骤,也不必始终执行完全同步。要了解如何将文档直接导入知识库以及支持知识库的数据源,请参阅将更改内容直接提取到知识库中。
Amazon Bedrock 知识库提供了多种选项,可以自定义数据的摄取方式。有关自定义此过程的更多信息,请参阅自定义您的知识库。
结构化数据
结构化数据是指表格数据,其格式由其所在的数据存储区预定义。Amazon Bedrock 知识库通过 Amazon Redshift 查询引擎连接到支持的结构化数据存储。Amazon Bedrock 知识库提供了一种完全托管的机制,可以分析查询模式、查询历史记录和架构元数据,从而将自然语言SQL查询转换为查询。然后,使用这些转换后的查询从支持的数据源中检索相关信息。
Amazon Bedrock 知识库支持连接到以下服务,将结构化数据存储添加到您的知识库中:
Amazon Redshift
AWS Glue Data Catalog (AWS Lake Formation)
如果将知识库连接到结构化数据存储,则无需将数据转换为矢量嵌入。相反,Amazon Bedrock 知识库可以直接查询结构化数据存储。在查询期间,Amazon Bedrock 知识库可以将用户SQL查询转换为查询,以检索与用户查询相关的数据并生成更准确的响应。您也可以在不检索数据的情况下生成SQL查询,并在其他工作流程中使用查询。
例如,数据库存储库包含下表,其中包含有关客户及其购买的信息:
客户 ID | 2020 年购买的金额 | 2021 年购买的金额 | 2022 年购买的金额 | 迄今为止的总购买金额 |
---|---|---|---|---|
1 | 200 | 300 | 500 | 1000 |
2 | 150 | 100 | 120 | 370 |
3 | 300 | 300 | 300 | 900 |
4 | 720 | 180 | 100 | 900 |
5 | 500 | 400 | 100 | 1000 |
6 | 900 | 800 | 1000 | 2700 |
7 | 470 | 420 | 400 | 1290 |
8 | 250 | 280 | 250 | 780 |
9 | 620 | 830 | 740 | 2190 |
10 | 300 | 200 | 300 | 800 |
如果用户查询显示 “向我提供前五名消费客户的摘要”,则知识库可以执行以下操作:
-
将查询转换为SQL查询。
-
返回包含以下内容的表格的摘录:
-
相关表格列 “客户编号” 和 “迄今为止的总购买金额”
-
包含消费最高的 10 位客户的总购买金额的表格行
-
-
生成回复,说明哪些客户是消费排名前五的客户,以及他们购买了多少。
知识库可以为其生成表格摘录的其他查询示例包括:
-
“2020 年按支出排名前五的客户”
-
“2020 年按购买金额计算的热门客户”
-
“2020-2022年按购买金额排名前五的客户”
-
“2020-2022年消费最高的五大客户”
-
“总购买金额低于 10 美元的客户”
-
“消费最低的五大客户”
查询越具体或详细,知识库就越能缩小要返回的确切信息范围。例如,不是查询 “2020 年按支出排列的前 10 位客户”,而是更具体的查询是 “查找 2020 年迄今为止客户购买总额最高的 10 个”。具体查询指的是客户支出数据库表中的列名 “迄今为止的总购买金额”,还表示数据应按 “最高” 排序。