@ai-sdk/amazon-bedrock
Advanced tools
+6
-0
| # @ai-sdk/amazon-bedrock | ||
| ## 4.0.128 | ||
| ### Patch Changes | ||
| - 3f9bc0f: feat(amazon-bedrock): increase limit of embeddings in a request for cohere models | ||
| ## 4.0.127 | ||
@@ -4,0 +10,0 @@ |
@@ -38,3 +38,3 @@ "use strict"; | ||
| // src/version.ts | ||
| var VERSION = true ? "4.0.127" : "0.0.0-test"; | ||
| var VERSION = true ? "4.0.128" : "0.0.0-test"; | ||
@@ -41,0 +41,0 @@ // src/bedrock-sigv4-fetch.ts |
@@ -27,3 +27,3 @@ // src/anthropic/bedrock-anthropic-provider.ts | ||
| // src/version.ts | ||
| var VERSION = true ? "4.0.127" : "0.0.0-test"; | ||
| var VERSION = true ? "4.0.128" : "0.0.0-test"; | ||
@@ -30,0 +30,0 @@ // src/bedrock-sigv4-fetch.ts |
@@ -38,3 +38,3 @@ "use strict"; | ||
| // src/version.ts | ||
| var VERSION = true ? "4.0.127" : "0.0.0-test"; | ||
| var VERSION = true ? "4.0.128" : "0.0.0-test"; | ||
@@ -41,0 +41,0 @@ // src/bedrock-sigv4-fetch.ts |
@@ -26,3 +26,3 @@ // src/mantle/bedrock-mantle-provider.ts | ||
| // src/version.ts | ||
| var VERSION = true ? "4.0.127" : "0.0.0-test"; | ||
| var VERSION = true ? "4.0.128" : "0.0.0-test"; | ||
@@ -29,0 +29,0 @@ // src/bedrock-sigv4-fetch.ts |
+4
-4
| { | ||
| "name": "@ai-sdk/amazon-bedrock", | ||
| "version": "4.0.127", | ||
| "version": "4.0.128", | ||
| "license": "Apache-2.0", | ||
@@ -47,6 +47,6 @@ "sideEffects": false, | ||
| "aws4fetch": "^1.0.20", | ||
| "@ai-sdk/provider": "3.0.13", | ||
| "@ai-sdk/anthropic": "3.0.92", | ||
| "@ai-sdk/openai": "3.0.80", | ||
| "@ai-sdk/provider": "3.0.13", | ||
| "@ai-sdk/provider-utils": "4.0.35" | ||
| "@ai-sdk/provider-utils": "4.0.35", | ||
| "@ai-sdk/openai": "3.0.80" | ||
| }, | ||
@@ -53,0 +53,0 @@ "devDependencies": { |
@@ -33,5 +33,8 @@ import { | ||
| readonly provider = 'amazon-bedrock'; | ||
| readonly maxEmbeddingsPerCall = 1; | ||
| readonly supportsParallelCalls = true; | ||
| get maxEmbeddingsPerCall() { | ||
| return isCohereEmbeddingModel(this.modelId) ? 96 : 1; | ||
| } | ||
| constructor( | ||
@@ -75,7 +78,4 @@ readonly modelId: BedrockEmbeddingModelId, | ||
| // adapt here based on the modelId. | ||
| const isNovaModel = | ||
| this.modelId.startsWith('amazon.nova-') && this.modelId.includes('embed'); | ||
| // Use `includes` so cross-region inference profile ids (e.g. | ||
| // `us.cohere.embed-v4:0`, `global.cohere.embed-v4:0`) are detected too. | ||
| const isCohereModel = this.modelId.includes('cohere.embed-'); | ||
| const isNovaModel = isNovaEmbeddingModel(this.modelId); | ||
| const isCohereModel = isCohereEmbeddingModel(this.modelId); | ||
@@ -100,3 +100,3 @@ const args = isNovaModel | ||
| input_type: bedrockOptions.inputType ?? 'search_query', | ||
| texts: [values[0]], | ||
| texts: values, | ||
| truncate: bedrockOptions.truncate, | ||
@@ -129,7 +129,7 @@ output_dimension: bedrockOptions.outputDimension, | ||
| // Extract embedding based on response format | ||
| let embedding: number[]; | ||
| // Extract embeddings based on response format | ||
| let embeddings: number[][]; | ||
| if ('embedding' in response) { | ||
| // Titan response | ||
| embedding = response.embedding; | ||
| embeddings = [response.embedding]; | ||
| } else if (Array.isArray(response.embeddings)) { | ||
@@ -143,10 +143,10 @@ const firstEmbedding = response.embeddings[0]; | ||
| // Nova response | ||
| embedding = firstEmbedding.embedding; | ||
| embeddings = [firstEmbedding.embedding]; | ||
| } else { | ||
| // Cohere v3 response | ||
| embedding = firstEmbedding as number[]; | ||
| embeddings = response.embeddings as number[][]; | ||
| } | ||
| } else { | ||
| // Cohere v4 response | ||
| embedding = response.embeddings.float[0]; | ||
| embeddings = response.embeddings.float; | ||
| } | ||
@@ -166,3 +166,3 @@ | ||
| return { | ||
| embeddings: [embedding], | ||
| embeddings, | ||
| usage: { tokens }, | ||
@@ -174,2 +174,12 @@ warnings: [], | ||
| function isCohereEmbeddingModel(modelId: string) { | ||
| // Use `includes` so cross-region inference profile ids (e.g. | ||
| // `us.cohere.embed-v4:0`, `global.cohere.embed-v4:0`) are detected too. | ||
| return modelId.includes('cohere.embed-'); | ||
| } | ||
| function isNovaEmbeddingModel(modelId: string) { | ||
| return modelId.startsWith('amazon.nova-') && modelId.includes('embed'); | ||
| } | ||
| const BedrockEmbeddingResponseSchema = z.union([ | ||
@@ -176,0 +186,0 @@ // Titan-style response |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
997715
0.15%10606
0.22%