以下是使用带有 AWS CLI 或支持的 SDK(例如 Python)的 API 创建托管知识库和配置数据源的示例。致电后 CreateKnowledgeBase,您致电CreateDataSource以创建包含连接信息的数据源dataSourceConfiguration。
要了解可以通过添加可选的 vectorIngestionConfiguration 字段来应用于摄取的定制设置,请参阅自定义数据来源的摄取。
AWS Command Line Interface
第 1 步:创建知识库
使用托管嵌入模型(默认):
aws bedrock-agent create-knowledge-base \
--name "my-managed-kb" \
--role-arn "arn:aws:iam::123456789012:role/BedrockKBRole" \
--description "My managed knowledge base" \
--knowledge-base-configuration file://kb-config.json
kb-config.json
{
"type": "MANAGED",
"managedKnowledgeBaseConfiguration": {
"embeddingModelType": "MANAGED"
}
}
使用自定义嵌入模型(客户提供的基岩模型):
aws bedrock-agent create-knowledge-base \
--name "my-custom-embed-kb" \
--role-arn "arn:aws:iam::123456789012:role/BedrockKBRole" \
--description "My managed knowledge base with custom embedding" \
--knowledge-base-configuration file://kb-config.json
kb-config.json
{
"type": "MANAGED",
"managedKnowledgeBaseConfiguration": {
"embeddingModelType": "CUSTOM",
"embeddingModelArn": "arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-embed-text-v2:0",
"embeddingModelConfiguration": {
"bedrockEmbeddingModelConfiguration": {
"dimensions": 1024
}
}
}
}
省略embeddingModelType时,默认为MANAGED。使用时MANAGED,不得指定embeddingModelArn或embeddingModelConfiguration。使用时CUSTOM,这两个字段都是必填字段。
使用自定义的多模态嵌入模型 (TwelveLabs Marengo Embed 3.0):
多模态嵌入模型与文本嵌入模型CUSTOMembeddingModelType相同。区别在于,bedrockEmbeddingModelConfiguration接受一个附加modelConfiguration字段,在其中传递特定模型的设置,并且必须supplementalDataStorageConfiguration为多模式存储目的地指定。
aws bedrock-agent create-knowledge-base \
--name "my-multimodal-embed-kb" \
--role-arn "arn:aws:iam::123456789012:role/BedrockKBRole" \
--description "My managed knowledge base with multimodal embedding" \
--knowledge-base-configuration file://kb-config.json
kb-config.json
{
"type": "MANAGED",
"managedKnowledgeBaseConfiguration": {
"embeddingModelType": "CUSTOM",
"embeddingModelArn": "arn:aws:bedrock:us-east-1::foundation-model/twelvelabs.marengo-embed-3-0-v1:0",
"embeddingModelConfiguration": {
"bedrockEmbeddingModelConfiguration": {
"embeddingDataType": "FLOAT",
"modelConfiguration": {
"version": "1",
"audio": {
"segmentation": {
"method": "dynamic",
"dynamic": {
"minDurationSec": 4
}
}
},
"video": {
"segmentation": {
"method": "fixed",
"fixed": {
"durationSec": 6
}
}
}
}
}
},
"supplementalDataStorageConfiguration": {
"storageLocations": [
{
"s3Location": {
"uri": "s3://amzn-s3-demo-bucket"
},
"type": "S3"
}
]
}
}
}
该modelConfiguration字段是一个 JSON 对象,其内容特定于您选择的嵌入模型。该version字段为必填字段,必须设置为1。对于每种audio和video模式,您可以设置一个 segmentationmethod(取一个minDurationSec值)或fixed(取一个durationSec值)。dynamic有关TwelveLabs Marengo Embed 3.0接受的设置,请参阅TwelveLabs Marengo 嵌入 3.0。
使用TwelveLabs Marengo Embed 3.0模型supplementalDataStorageConfiguration时必须提供。
步骤 2:创建数据源
aws bedrock-agent create-data-source \
--name "S3-connector" \
--description "S3 data source connector for Amazon Bedrock to use content in S3" \
--knowledge-base-id "your-knowledge-base-id" \
--data-source-configuration file://bedrock-s3-managed-connector-configuration.json \
--data-deletion-policy "DELETE" \
--vector-ingestion-configuration '{"parsingConfiguration":{"parsingStrategy":"SMART_PARSING"}}'
bedrock-s3-managed-connector-configuration.json
{
"type": "MANAGED_KNOWLEDGE_BASE_CONNECTOR",
"managedKnowledgeBaseConnectorConfiguration": {
"mediaExtractionConfiguration": {
"imageExtractionConfiguration": {
"imageExtractionStatus": "ENABLED"
}
},
"connectorParameters": {
"type": "S3",
"version": "1",
"connectionConfiguration": {
"bucketName": "your-test-s3-bucket",
"bucketOwnerAccountId": "123456789012"
},
"deletionProtectionConfiguration": {
"enableDeletionProtection": false
}
}
}
}