Skip to content

Commit d31433d

Browse files
authored
chore(aurora): remove circular dependency preventing python use (#367)
1 parent 3882b1d commit d31433d

8 files changed

+19
-39
lines changed

apidocs/classes/amazonaurora.AmazonAuroraDefaultVectorStore.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Ve
4040
- [clusterIdentifier](amazonaurora.AmazonAuroraDefaultVectorStore.md#clusteridentifier)
4141
- [credentialsSecretArn](amazonaurora.AmazonAuroraDefaultVectorStore.md#credentialssecretarn)
4242
- [databaseName](amazonaurora.AmazonAuroraDefaultVectorStore.md#databasename)
43-
- [embeddingsModel](amazonaurora.AmazonAuroraDefaultVectorStore.md#embeddingsmodel)
43+
- [embeddingsModelVectorDimension](amazonaurora.AmazonAuroraDefaultVectorStore.md#embeddingsmodelvectordimension)
4444
- [env](amazonaurora.AmazonAuroraDefaultVectorStore.md#env)
4545
- [node](amazonaurora.AmazonAuroraDefaultVectorStore.md#node)
4646
- [physicalName](amazonaurora.AmazonAuroraDefaultVectorStore.md#physicalname)
@@ -117,9 +117,9 @@ The name of your Database.
117117

118118
___
119119

120-
### embeddingsModel
120+
### embeddingsModelVectorDimension
121121

122-
`Readonly` **embeddingsModel**: [`BedrockFoundationModel`](bedrock.BedrockFoundationModel.md)
122+
`Readonly` **embeddingsModelVectorDimension**: `number`
123123

124124
Model used for embeddings.
125125

apidocs/interfaces/amazonaurora.AmazonAuroraDefaultVectorStoreProps.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88

99
### Properties
1010

11-
- [embeddingsModel](amazonaurora.AmazonAuroraDefaultVectorStoreProps.md#embeddingsmodel)
11+
- [embeddingsModelVectorDimension](amazonaurora.AmazonAuroraDefaultVectorStoreProps.md#embeddingsmodelvectordimension)
1212

1313
## Properties
1414

15-
### embeddingsModel
15+
### embeddingsModelVectorDimension
1616

17-
`Readonly` **embeddingsModel**: [`BedrockFoundationModel`](../classes/bedrock.BedrockFoundationModel.md)
17+
`Readonly` **embeddingsModelVectorDimension**: `number`
1818

1919
The embeddings model for the knowledge base.
2020
Must be identical as in the KnowledgeBaseV2 construct.

src/cdk-lib/amazonaurora/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,6 @@ new amazonaurora.AmazonAuroraVectoStore(
5353
import { amazonaurora } from '@cdklabs/generative-ai-cdk-constructs';
5454

5555
new amazonaurora.AmazonAuroraDefaultVectorStore(stack, 'AuroraDefaultVectorStore', {
56-
embeddingsModel: BedrockFoundationModel.COHERE_EMBED_ENGLISH_V3,
56+
embeddingsModel: BedrockFoundationModel.COHERE_EMBED_ENGLISH_V3.vectorDimensions!,
5757
});
5858
```

src/cdk-lib/amazonaurora/aurora-default-vector-store.ts

+4-5
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import { Construct } from 'constructs';
2121
import { buildCustomResourceProvider } from '../../common/helpers/custom-resource-provider-helper';
2222
import { generatePhysicalNameV2 } from '../../common/helpers/utils';
2323
import { buildVpc, DefaultVpcProps } from '../../common/helpers/vpc-helper';
24-
import { BedrockFoundationModel } from '../bedrock/models';
2524

2625

2726
export interface AmazonAuroraDefaultVectorStoreProps {
@@ -33,7 +32,7 @@ export interface AmazonAuroraDefaultVectorStoreProps {
3332
* needs to know the vector dimensions to create the vector
3433
* index of appropriate dimensions in the Aurora database.
3534
*/
36-
readonly embeddingsModel: BedrockFoundationModel;
35+
readonly embeddingsModelVectorDimension: number;
3736
}
3837

3938
/**
@@ -86,7 +85,7 @@ export class AmazonAuroraDefaultVectorStore extends cdk.Resource {
8685
/**
8786
* Model used for embeddings.
8887
*/
89-
public readonly embeddingsModel: BedrockFoundationModel;
88+
public readonly embeddingsModelVectorDimension: number;
9089

9190
/**
9291
* An IAM policy that allows Data API access to Aurora.
@@ -105,7 +104,7 @@ export class AmazonAuroraDefaultVectorStore extends cdk.Resource {
105104
this.tableName = 'bedrock_integration.bedrock_kb';
106105
this.primaryKeyField = 'id';
107106
this.clusterIdentifier = 'aurora-serverless-vector-cluster';
108-
this.embeddingsModel = props.embeddingsModel;
107+
this.embeddingsModelVectorDimension = props.embeddingsModelVectorDimension;
109108

110109
const vpc = buildVpc(this, {
111110
defaultVpcProps: DefaultVpcProps(),
@@ -249,7 +248,7 @@ export class AmazonAuroraDefaultVectorStore extends cdk.Resource {
249248
properties: {
250249
DatabaseName: this.databaseName,
251250
SecretName: auroraCluster.secret?.secretName || '',
252-
VectorDimensions: props.embeddingsModel.vectorDimensions!,
251+
VectorDimensions: props.embeddingsModelVectorDimension!,
253252
},
254253
});
255254

src/cdk-lib/bedrock/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ import * as s3 from 'aws-cdk-lib/aws-s3';
104104
import { amazonaurora, bedrock } from '@cdklabs/generative-ai-cdk-constructs';
105105

106106
const auroraDb = new amazonaurora.AmazonAuroraDefaultVectorStore(stack, 'AuroraDefaultVectorStore', {
107-
embeddingsModel: BedrockFoundationModel.COHERE_EMBED_ENGLISH_V3,
107+
embeddingsModel: BedrockFoundationModel.COHERE_EMBED_ENGLISH_V3.vectorDimensions!,
108108
});
109109

110110
const kb = new bedrock.KnowledgeBase(this, 'KnowledgeBase', {

src/cdk-lib/bedrock/knowledge-base.ts

-19
Original file line numberDiff line numberDiff line change
@@ -229,9 +229,6 @@ export class KnowledgeBase extends Construct implements cdk.ITaggableV2 {
229229
if (props.vectorIndex) {
230230
validateIndexParameters(props.vectorIndex, indexName, vectorField);
231231
}
232-
if (props.vectorStore instanceof AmazonAuroraDefaultVectorStore) {
233-
validateModelComparability(embeddingsModel, props.vectorStore.embeddingsModel);
234-
}
235232

236233
this.name = generatePhysicalNameV2(
237234
this,
@@ -676,22 +673,6 @@ function validateIndexParameters(
676673
}
677674
}
678675

679-
/**
680-
* Validate that the embedding model provided for `AmazonAuroraDefaultVectorStore`
681-
* construct is identical to provided for `KnowledgeBase` construct.
682-
*
683-
* @internal This is an internal core function and should not be called directly.
684-
*/
685-
function validateModelComparability(
686-
foundationModel: BedrockFoundationModel,
687-
foundationModel2: BedrockFoundationModel,
688-
) {
689-
if (foundationModel.modelId !== foundationModel2.modelId) {
690-
throw new Error('The embeddings model ' + foundationModel + ' provided in AmazonAuroraDefaultVectorStore' +
691-
' construct has to be identical to provided in KnowledgeBase construct.');
692-
}
693-
}
694-
695676
/**
696677
* Determine storage configuration based on vector store type.
697678
*

test/cdk-lib/amazonaurora/aurora-default-vector-store.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ describe('Amazon Aurora Default Vector Store', () => {
3939

4040
beforeAll(() => {
4141
auroraDefaultVectorStore = new AmazonAuroraDefaultVectorStore(stack, 'AuroraVectorStore', {
42-
embeddingsModel: model,
42+
embeddingsModelVectorDimension: model.vectorDimensions!,
4343
});
4444

4545
NagSuppressions.addResourceSuppressionsByPath(
@@ -72,7 +72,7 @@ describe('Amazon Aurora Default Vector Store', () => {
7272
expect(auroraDefaultVectorStore.tableName).toEqual('bedrock_integration.bedrock_kb');
7373
expect(auroraDefaultVectorStore.primaryKeyField).toEqual('id');
7474
expect(auroraDefaultVectorStore.clusterIdentifier).toEqual('aurora-serverless-vector-cluster');
75-
expect(auroraDefaultVectorStore.embeddingsModel).toEqual(model);
75+
expect(auroraDefaultVectorStore.embeddingsModelVectorDimension).toEqual(model.vectorDimensions);
7676
});
7777

7878
test('No unsuppressed Errors', () => {

test/cdk-lib/bedrock/knowledge-base.test.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ describe('KnowledgeBase', () => {
9999

100100
test('Should correctly initialize with custom props', () => {
101101
const vectorStore = new AmazonAuroraDefaultVectorStore(stack, 'AuroraDefaultVectorStore6', {
102-
embeddingsModel: BedrockFoundationModel.TITAN_EMBED_TEXT_V1,
102+
embeddingsModelVectorDimension: BedrockFoundationModel.TITAN_EMBED_TEXT_V1.vectorDimensions!,
103103
});
104104
const model = BedrockFoundationModel.TITAN_EMBED_TEXT_V1;
105105
const knowledgeBase = new KnowledgeBase(stack, 'AuroraDefaultKnowledgeBase', {
@@ -132,7 +132,7 @@ describe('KnowledgeBase', () => {
132132

133133
test('Should throw error when vectorStore is not VectorCollection and indexName is provided', () => {
134134
const vectorStore = new AmazonAuroraDefaultVectorStore(stack, 'AmazonAuroraDefaultVectorStore6', {
135-
embeddingsModel: BedrockFoundationModel.TITAN_EMBED_TEXT_V1,
135+
embeddingsModelVectorDimension: BedrockFoundationModel.TITAN_EMBED_TEXT_V1.vectorDimensions!,
136136
});
137137
const model = BedrockFoundationModel.TITAN_EMBED_TEXT_V1;
138138

@@ -147,7 +147,7 @@ describe('KnowledgeBase', () => {
147147

148148
test('Should throw error when vectorStore is not VectorCollection and vectorField is provided', () => {
149149
const vectorStore = new AmazonAuroraDefaultVectorStore(stack, 'AmazonAuroraDefaultVectorStore5', {
150-
embeddingsModel: BedrockFoundationModel.TITAN_EMBED_TEXT_V1,
150+
embeddingsModelVectorDimension: BedrockFoundationModel.TITAN_EMBED_TEXT_V1.vectorDimensions!,
151151
});
152152
const model = BedrockFoundationModel.TITAN_EMBED_TEXT_V1;
153153

@@ -164,7 +164,7 @@ describe('KnowledgeBase', () => {
164164
const vectorStores = [
165165
new VectorCollection(stack, 'VectorCollection3'),
166166
new AmazonAuroraDefaultVectorStore(stack, 'AmazonAuroraDefaultVectorStore', {
167-
embeddingsModel: BedrockFoundationModel.TITAN_EMBED_TEXT_V1,
167+
embeddingsModelVectorDimension: BedrockFoundationModel.TITAN_EMBED_TEXT_V1.vectorDimensions!,
168168
}),
169169
new PineconeVectorStore({
170170
connectionString: 'test-connection-string',
@@ -193,7 +193,7 @@ describe('KnowledgeBase', () => {
193193

194194
test('Should correctly initialize with AmazonAuroraDefaultVectorStore and custom embeddingsModel', () => {
195195
const vectorStore = new AmazonAuroraDefaultVectorStore(stack, 'AuroraDefaultVectorStore2', {
196-
embeddingsModel: BedrockFoundationModel.COHERE_EMBED_ENGLISH_V3,
196+
embeddingsModelVectorDimension: BedrockFoundationModel.COHERE_EMBED_ENGLISH_V3.vectorDimensions!,
197197
});
198198
const model = BedrockFoundationModel.COHERE_EMBED_ENGLISH_V3;
199199

0 commit comments

Comments
 (0)