Skip to content
v2.274.0

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.