Experimental
@aws-cdk/aws-bedrock-alpha is an experimental (alpha) package: its API may change in any release, without a major version bump.
KnowledgeBaseTypeConfiguration Mixin Added in v2.274.0-alpha.0
Configures a knowledge base as the given type.
Applies the type-specific configuration, permissions and dependencies that the type property of KnowledgeBase applies, so a CfnKnowledgeBase can be configured from a KnowledgeBaseType without applying its individual mixins.
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' },
}).with(new bedrock.mixins.KnowledgeBaseTypeConfiguration(bedrock.KnowledgeBaseType.vector({
embeddingsModel: bedrock.BedrockFoundationModel.TITAN_EMBED_TEXT_V2_1024,
vectorStore: bedrock.VectorStore.openSearchServerless({
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")
).with(bedrock.mixins.KnowledgeBaseTypeConfiguration(bedrock.KnowledgeBaseType.vector(
embeddings_model=bedrock.BedrockFoundationModel.TITAN_EMBED_TEXT_V2_1024,
vector_store=bedrock.VectorStore.open_search_serverless(
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").build())
.build().with(new KnowledgeBaseTypeConfiguration(KnowledgeBaseType.vector(VectorKnowledgeBaseTypeProps.builder()
.embeddingsModel(BedrockFoundationModel.TITAN_EMBED_TEXT_V2_1024)
.vectorStore(VectorStore.openSearchServerless(OpenSearchServerlessVectorStoreProps.builder()
.collection(collection)
.vectorIndexName("bedrock-knowledge-base-default-index")
.vectorField("bedrock-knowledge-base-default-vector")
.textField("AMAZON_BEDROCK_TEXT_CHUNK")
.metadataField("AMAZON_BEDROCK_METADATA")
.build()))
.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" }
}).With(new Mixins.KnowledgeBaseTypeConfiguration(KnowledgeBaseType.Vector(new VectorKnowledgeBaseTypeProps {
EmbeddingsModel = BedrockFoundationModel.TITAN_EMBED_TEXT_V2_1024,
VectorStore = VectorStore.OpenSearchServerless(new OpenSearchServerlessVectorStoreProps {
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"),
},
}).With(mixins.NewKnowledgeBaseTypeConfiguration(bedrock.KnowledgeBaseType_Vector(&VectorKnowledgeBaseTypeProps{
EmbeddingsModel: bedrock.BedrockFoundationModel_TITAN_EMBED_TEXT_V2_1024(),
VectorStore: bedrock.VectorStore_OpenSearchServerless(&OpenSearchServerlessVectorStoreProps{
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 KnowledgeBaseTypeConfiguration(knowledgeBaseType: KnowledgeBaseType)
python
KnowledgeBaseTypeConfiguration(knowledge_base_type: KnowledgeBaseType)
java
new KnowledgeBaseTypeConfiguration(KnowledgeBaseType knowledgeBaseType)
csharp
new KnowledgeBaseTypeConfiguration(KnowledgeBaseType knowledgeBaseType)
go
NewKnowledgeBaseTypeConfiguration(KnowledgeBaseType KnowledgeBaseType)
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.