@ai-sdk/google 3.0.125 → 3.0.127
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/index.js +115 -89
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +116 -89
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +1 -1
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/convert-to-google-generative-ai-messages.ts +5 -1
- package/src/google-generative-ai-embedding-model.ts +39 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/google",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.127",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@ai-sdk/provider": "3.0.
|
|
40
|
-
"@ai-sdk/provider-utils": "4.0.
|
|
39
|
+
"@ai-sdk/provider": "3.0.17",
|
|
40
|
+
"@ai-sdk/provider-utils": "4.0.54"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/node": "20.17.24",
|
|
@@ -298,7 +298,11 @@ export function convertToGoogleGenerativeAIMessages(
|
|
|
298
298
|
? {
|
|
299
299
|
fileData: {
|
|
300
300
|
mimeType: mediaType,
|
|
301
|
-
fileUri:
|
|
301
|
+
fileUri:
|
|
302
|
+
part.data.protocol === 'gs:' &&
|
|
303
|
+
part.originalUrl != null
|
|
304
|
+
? part.originalUrl
|
|
305
|
+
: part.data.toString(),
|
|
302
306
|
},
|
|
303
307
|
}
|
|
304
308
|
: {
|
|
@@ -5,6 +5,8 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
combineHeaders,
|
|
7
7
|
createJsonResponseHandler,
|
|
8
|
+
type EmbeddingModelProviderOptionsTransformer,
|
|
9
|
+
EXPERIMENTAL_EMBEDDING_MODEL_PROVIDER_OPTIONS_TRANSFORMER,
|
|
8
10
|
lazySchema,
|
|
9
11
|
parseProviderOptions,
|
|
10
12
|
postJsonToApi,
|
|
@@ -31,6 +33,28 @@ export class GoogleGenerativeAIEmbeddingModel implements EmbeddingModelV3 {
|
|
|
31
33
|
readonly modelId: GoogleGenerativeAIEmbeddingModelId;
|
|
32
34
|
readonly maxEmbeddingsPerCall = 100;
|
|
33
35
|
readonly supportsParallelCalls = true;
|
|
36
|
+
readonly [EXPERIMENTAL_EMBEDDING_MODEL_PROVIDER_OPTIONS_TRANSFORMER]: EmbeddingModelProviderOptionsTransformer =
|
|
37
|
+
({ providerOptions, values, startIndex, endIndex }) => {
|
|
38
|
+
const multimodalContent = providerOptions?.google?.content;
|
|
39
|
+
|
|
40
|
+
// Leave schema validation to doEmbed, after middleware transforms options.
|
|
41
|
+
if (!Array.isArray(multimodalContent)) {
|
|
42
|
+
return providerOptions;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
validateMultimodalContentLength({
|
|
46
|
+
multimodalContent,
|
|
47
|
+
values,
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
return {
|
|
51
|
+
...providerOptions,
|
|
52
|
+
google: {
|
|
53
|
+
...providerOptions?.google,
|
|
54
|
+
content: multimodalContent.slice(startIndex, endIndex),
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
};
|
|
34
58
|
|
|
35
59
|
private readonly config: GoogleGenerativeAIEmbeddingConfig;
|
|
36
60
|
|
|
@@ -76,14 +100,7 @@ export class GoogleGenerativeAIEmbeddingModel implements EmbeddingModelV3 {
|
|
|
76
100
|
|
|
77
101
|
const multimodalContent = googleOptions?.content;
|
|
78
102
|
|
|
79
|
-
|
|
80
|
-
multimodalContent != null &&
|
|
81
|
-
multimodalContent.length !== values.length
|
|
82
|
-
) {
|
|
83
|
-
throw new Error(
|
|
84
|
-
`The number of multimodal content entries (${multimodalContent.length}) must match the number of values (${values.length}).`,
|
|
85
|
-
);
|
|
86
|
-
}
|
|
103
|
+
validateMultimodalContentLength({ multimodalContent, values });
|
|
87
104
|
|
|
88
105
|
// For single embeddings, use the single endpoint
|
|
89
106
|
if (values.length === 1) {
|
|
@@ -186,3 +203,17 @@ const googleGenerativeAISingleEmbeddingResponseSchema = lazySchema(() =>
|
|
|
186
203
|
}),
|
|
187
204
|
),
|
|
188
205
|
);
|
|
206
|
+
|
|
207
|
+
function validateMultimodalContentLength({
|
|
208
|
+
multimodalContent,
|
|
209
|
+
values,
|
|
210
|
+
}: {
|
|
211
|
+
multimodalContent: Array<unknown> | undefined;
|
|
212
|
+
values: Array<string>;
|
|
213
|
+
}) {
|
|
214
|
+
if (multimodalContent != null && multimodalContent.length !== values.length) {
|
|
215
|
+
throw new Error(
|
|
216
|
+
`The number of multimodal content entries (${multimodalContent.length}) must match the number of values (${values.length}).`,
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
}
|