Experimental
@aws-cdk/aws-bedrock-alpha is an experimental (alpha) package: its API may change in any release, without a major version bump.
KnowledgeBaseOpenSearchServerlessStorage Mixin Added in v2.274.0-alpha.0
Stores a knowledge base's vectors in an existing Amazon OpenSearch Serverless vector index.
Sets StorageConfiguration to OPENSEARCH_SERVERLESS with the given collection, index and field mapping. Grants the role referenced by the knowledge base's roleArn aoss:APIAccessAll on the collection and makes the knowledge base depend on that policy.
The index must already exist and the collection's data access policy must allow the service role to describe, read and write it; neither is created here.
Example
ts
declare const collection: opensearchserverless.ICollectionRef;
declare const role: iam.Role;
new aws_bedrock_cfn.CfnKnowledgeBase(this, 'KnowledgeBase', {
name: 'product-documentation',
roleArn: role.roleArn,
knowledgeBaseConfiguration: {
type: 'VECTOR',
vectorKnowledgeBaseConfiguration: {
embeddingModelArn: bedrock.BedrockFoundationModel.TITAN_EMBED_TEXT_V2_1024.modelArn,
},
},
}).with(new bedrock.mixins.KnowledgeBaseOpenSearchServerlessStorage({
collection,
vectorIndexName: 'bedrock-knowledge-base-default-index',
vectorField: 'bedrock-knowledge-base-default-vector',
textField: 'AMAZON_BEDROCK_TEXT_CHUNK',
metadataField: 'AMAZON_BEDROCK_METADATA',
}));
python
# collection: opensearchserverless.ICollectionRef
# role: iam.Role
aws_bedrock_cfn.CfnKnowledgeBase(self, "KnowledgeBase",
name="product-documentation",
role_arn=role.role_arn,
knowledge_base_configuration=aws_bedrock_cfn.CfnKnowledgeBase.KnowledgeBaseConfigurationProperty(
type="VECTOR",
vector_knowledge_base_configuration=aws_bedrock_cfn.CfnKnowledgeBase.VectorKnowledgeBaseConfigurationProperty(
embedding_model_arn=bedrock.BedrockFoundationModel.TITAN_EMBED_TEXT_V2_1024.model_arn
)
)
).with(bedrock.mixins.KnowledgeBaseOpenSearchServerlessStorage(
collection=collection,
vector_index_name="bedrock-knowledge-base-default-index",
vector_field="bedrock-knowledge-base-default-vector",
text_field="AMAZON_BEDROCK_TEXT_CHUNK",
metadata_field="AMAZON_BEDROCK_METADATA"
))
java
ICollectionRef collection;
Role role;
CfnKnowledgeBase.Builder.create(this, "KnowledgeBase")
.name("product-documentation")
.roleArn(role.roleArn)
.knowledgeBaseConfiguration(KnowledgeBaseConfigurationProperty.builder()
.type("VECTOR")
.vectorKnowledgeBaseConfiguration(VectorKnowledgeBaseConfigurationProperty.builder()
.embeddingModelArn(bedrock.BedrockFoundationModel.TITAN_EMBED_TEXT_V2_1024.modelArn)
.build())
.build())
.build().with(KnowledgeBaseOpenSearchServerlessStorage.Builder.create()
.collection(collection)
.vectorIndexName("bedrock-knowledge-base-default-index")
.vectorField("bedrock-knowledge-base-default-vector")
.textField("AMAZON_BEDROCK_TEXT_CHUNK")
.metadataField("AMAZON_BEDROCK_METADATA")
.build());
csharp
// Install: dotnet add package Amazon.CDK.AWS.Bedrock.Alpha
ICollectionRef collection;
Role role;
new CfnKnowledgeBase(this, "KnowledgeBase", new CfnKnowledgeBaseProps {
Name = "product-documentation",
RoleArn = role.RoleArn,
KnowledgeBaseConfiguration = new KnowledgeBaseConfigurationProperty {
Type = "VECTOR",
VectorKnowledgeBaseConfiguration = new VectorKnowledgeBaseConfigurationProperty {
EmbeddingModelArn = BedrockFoundationModel.TITAN_EMBED_TEXT_V2_1024.ModelArn
}
}
}).With(new Mixins.KnowledgeBaseOpenSearchServerlessStorage(new KnowledgeBaseOpenSearchServerlessStorageProps {
Collection = collection,
VectorIndexName = "bedrock-knowledge-base-default-index",
VectorField = "bedrock-knowledge-base-default-vector",
TextField = "AMAZON_BEDROCK_TEXT_CHUNK",
MetadataField = "AMAZON_BEDROCK_METADATA"
}));
go
// Install: go get github.com/aws/aws-cdk-go/awsbedrockalpha/v2
var collection ICollectionRef
var role Role
awscdk.Aws_bedrock.NewCfnKnowledgeBase(this, jsii.String("KnowledgeBase"), &CfnKnowledgeBaseProps{
Name: jsii.String("product-documentation"),
RoleArn: role.roleArn,
KnowledgeBaseConfiguration: &KnowledgeBaseConfigurationProperty{
Type: jsii.String("VECTOR"),
VectorKnowledgeBaseConfiguration: &VectorKnowledgeBaseConfigurationProperty{
EmbeddingModelArn: bedrock.BedrockFoundationModel_TITAN_EMBED_TEXT_V2_1024().ModelArn,
},
},
}).With(mixins.NewKnowledgeBaseOpenSearchServerlessStorage(&KnowledgeBaseOpenSearchServerlessStorageProps{
Collection: Collection,
VectorIndexName: jsii.String("bedrock-knowledge-base-default-index"),
VectorField: jsii.String("bedrock-knowledge-base-default-vector"),
TextField: jsii.String("AMAZON_BEDROCK_TEXT_CHUNK"),
MetadataField: jsii.String("AMAZON_BEDROCK_METADATA"),
}))
Initializer
ts
new KnowledgeBaseOpenSearchServerlessStorage(props: KnowledgeBaseOpenSearchServerlessStorageProps)
python
KnowledgeBaseOpenSearchServerlessStorage(props: KnowledgeBaseOpenSearchServerlessStorageProps)
java
new KnowledgeBaseOpenSearchServerlessStorage(KnowledgeBaseOpenSearchServerlessStorageProps props)
csharp
new KnowledgeBaseOpenSearchServerlessStorage(KnowledgeBaseOpenSearchServerlessStorageProps props)
go
NewKnowledgeBaseOpenSearchServerlessStorage(Props KnowledgeBaseOpenSearchServerlessStorageProps)
Methods
applyTo(construct: IConstruct): voiddef apply_to(self, construct: IConstruct) -> Nonepublic void applyTo(IConstruct construct)public void ApplyTo(IConstruct construct)func ApplyTo(Construct IConstruct)#Applies the mixin functionality to the target construct.
isMixin(x: any): boolean@staticmethod def is_mixin(x: Any) -> boolpublic static Boolean isMixin(Object x)public static bool IsMixin(object x)func IsMixin(X interface{}) *boolstatic#Checks if `x` is a Mixin.
1 parameter · returns
Parameters
xxxxX— Any object.
Returns: true if x is an object created from a class which extends Mixin.
supports(construct: IConstruct): booleandef supports(self, construct: IConstruct) -> boolpublic Boolean supports(IConstruct construct)public bool Supports(IConstruct construct)func Supports(Construct IConstruct) *bool#Determines whether this mixin can be applied to the given construct.