本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
自定义数据源的摄取
在连接数据源时,您可以通过在发送请求时修改vectorIngestionConfiguration
字段的值来自定义矢量摄取。 AWS Management Console CreateDataSource
选择一个主题,了解如何在连接到数据源时包含用于自定义摄取的配置:
选择用于解析的工具
您可以自定义数据中文档的解析方式。要了解有关在 Amazon Bedrock 知识库中解析数据的选项,请参阅。数据源的解析选项
警告
连接到数据源后,您无法更改解析策略。要使用不同的解析策略,可以添加新的数据源。
创建知识库后,您无法添加 S3 位置来存储多模式数据(包括图像、数字、图表和表格)。如果要包含多模态数据并使用支持它的解析器,则必须创建新的知识库。
选择解析策略所涉及的步骤取决于您是使用 Amazon Bedrock API 还是 Amazon Bedrock API 以及您选择的解析方法。 AWS Management Console 如果您选择支持多模式数据的解析方法,则必须指定用于存储从文档中提取的多模式数据的 S3 URI。这些数据可以在知识库查询中返回。
-
在中 AWS Management Console,执行以下操作:
-
在设置知识库时连接到数据源或向现有知识库添加新数据源时,请选择解析策略。
-
(如果您选择 Amazon Bedrock Data Automation 或基础模型作为解析策略)在选择嵌入模型并配置矢量存储时,在多模式存储目标部分指定一个 S3 URI,用于存储从您的文档中提取的多模式数据。在此步骤中,您也可以选择使用客户托管密钥来加密您的 S3 数据。
-
-
在 Amazon Bedrock API 中,执行以下操作:
-
(如果您计划使用 Amazon Bedrock 数据自动化或基础模型作为解析策略)SupplementalDataStorageLocation在请求中加VectorKnowledgeBaseConfiguration入。CreateKnowledgeBase
-
ParsingConfiguration在CreateDataSource请求的
parsingConfiguration
字段VectorIngestionConfiguration中加入。注意
如果您省略此配置,Amazon Bedrock 知识库将使用 Amazon Bedrock 默认解析器。
-
有关如何在 API 中指定解析策略的更多详细信息,请展开与您要使用的解析策略相对应的部分:
要使用默认解析器,请不要在中包含parsingConfiguration
字段。VectorIngestionConfiguration
要使用 Amazon Bedrock 数据自动化解析器,请在的parsingStrategy
字段BEDROCK_DATA_AUTOMATION
中指定,ParsingConfiguration
并在bedrockDataAutomationConfiguration
字段BedrockDataAutomationConfiguration中加入,格式如下:
{ "parsingStrategy": "BEDROCK_DATA_AUTOMATION", "bedrockDataAutomationConfiguration": { "parsingModality": "string" } }
要使用基础模型作为解析器,请在的parsingStrategy
字段BEDROCK_FOUNDATION_MODEL
中指定,ParsingConfiguration
并在bedrockFoundationModelConfiguration
字段BedrockFoundationModelConfiguration中包含一个,格式如下:
{ "parsingStrategy": "BEDROCK_FOUNDATION_MODEL", "bedrockFoundationModelConfiguration": { "modelArn": "string", "parsingModality": "string", "parsingPrompt": { "parsingPromptText": "string" } } }
选择分块策略
您可以自定义如何对数据中的文档进行分块以进行存储和检索。要了解有关在 Amazon Bedrock 知识库中进行数据分块的选项,请参阅。知识库内容分块的工作原理
警告
连接到数据源后,您无法更改分块策略。
在连接数据源时, AWS Management Console 您可以选择分块策略。使用 Amazon Bedrock API,您可以在chunkingConfiguration
字段ChunkingConfiguration中加入。VectorIngestionConfiguration
注意
如果您省略此配置,Amazon Bedrock 会将您的内容分成大约 300 个令牌的块,同时保留句子边界。
展开与您要使用的解析策略相对应的部分:
要将数据源中的每个文档视为单个源区块,请按以下格式NONE
在的chunkingStrategy
ChunkingConfiguration
字段中指定:
{ "chunkingStrategy": "NONE" }
要将数据源中的每个文档分成大小大致相同的块,请在的chunkingStrategy
字段FIXED_SIZE
中指定,ChunkingConfiguration
并在fixedSizeChunkingConfiguration
字段FixedSizeChunkingConfiguration中包含一个,如下所示:
{ "chunkingStrategy": "FIXED_SIZE", "fixedSizeChunkingConfiguration": { "maxTokens": number, "overlapPercentage": number } }
要将数据源中的每个文档分为两个级别,其中第二层包含从第一层派生的较小块,请在chunkingStrategy
字段HIERARCHICAL
中指定ChunkingConfiguration
并包含hierarchicalChunkingConfiguration
字段,如下所示:
{ "chunkingStrategy": "HIERARCHICAL", "hierarchicalChunkingConfiguration": { "levelConfigurations": [{ "maxTokens": number }], "overlapTokens": number } }
要将数据源中的每个文档分成优先于语义含义而不是语法结构的块,请在chunkingStrategy
字段SEMANTIC
中指定ChunkingConfiguration
并包含该semanticChunkingConfiguration
字段,如下所示:
{ "chunkingStrategy": "SEMANTIC", "semanticChunkingConfiguration": { "breakpointPercentileThreshold": number, "bufferSize": number, "maxTokens": number } }
在摄取期间使用 Lambda 函数
您可以通过以下方式使用 Lambda 函数对如何将数据中的源区块写入矢量存储进行后处理:
-
包括分块逻辑以提供自定义分块策略。
-
包括用于指定区块级元数据的逻辑。
要了解如何编写用于摄取的自定义 Lambda 函数,请参阅。使用自定义转换 Lambda 函数来定义数据的提取方式在连接数据源时, AWS Management Console 您可以选择 Lambda 函数。使用 Amazon Bedrock API,您可以在的CustomTransformationConfiguration
字段CustomTransformationConfiguration中加入,VectorIngestionConfiguration并指定 Lambda 的 ARN,格式如下:
{ "transformations": [{ "transformationFunction": { "transformationLambdaConfiguration": { "lambdaArn": "string" } }, "stepToApply": "POST_CHUNKING" }], "intermediateStorage": { "s3Location": { "uri": "string" } } }
应用 Lambda 函数后,您还可以指定用于存储输出的 S3 位置。
在应用 Amazon Bedrock 提供的分块选项之一之后,您可以添加用于应用 Lambda 函数的chunkingConfiguration
字段。