@ai-sdk/google 2.0.0-canary.0 → 2.0.0-canary.2
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 +16 -0
- package/dist/index.d.mts +102 -94
- package/dist/index.d.ts +102 -94
- package/dist/index.js +172 -165
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +172 -163
- package/dist/index.mjs.map +1 -1
- package/internal/dist/index.d.mts +15 -7
- package/internal/dist/index.d.ts +15 -7
- package/internal/dist/index.js +5 -4
- package/internal/dist/index.js.map +1 -1
- package/internal/dist/index.mjs +5 -4
- package/internal/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
@@ -1,21 +1,113 @@
|
|
1
1
|
// src/google-provider.ts
|
2
|
+
import {
|
3
|
+
NoSuchModelError
|
4
|
+
} from "@ai-sdk/provider";
|
2
5
|
import {
|
3
6
|
generateId,
|
4
7
|
loadApiKey,
|
5
8
|
withoutTrailingSlash
|
6
9
|
} from "@ai-sdk/provider-utils";
|
7
10
|
|
8
|
-
// src/google-generative-ai-
|
11
|
+
// src/google-generative-ai-embedding-model.ts
|
12
|
+
import {
|
13
|
+
TooManyEmbeddingValuesForCallError
|
14
|
+
} from "@ai-sdk/provider";
|
9
15
|
import {
|
10
16
|
combineHeaders,
|
11
|
-
createEventSourceResponseHandler,
|
12
17
|
createJsonResponseHandler,
|
13
|
-
parseProviderOptions,
|
14
18
|
postJsonToApi,
|
15
19
|
resolve
|
16
20
|
} from "@ai-sdk/provider-utils";
|
17
21
|
import { z as z2 } from "zod";
|
18
22
|
|
23
|
+
// src/google-error.ts
|
24
|
+
import { createJsonErrorResponseHandler } from "@ai-sdk/provider-utils";
|
25
|
+
import { z } from "zod";
|
26
|
+
var googleErrorDataSchema = z.object({
|
27
|
+
error: z.object({
|
28
|
+
code: z.number().nullable(),
|
29
|
+
message: z.string(),
|
30
|
+
status: z.string()
|
31
|
+
})
|
32
|
+
});
|
33
|
+
var googleFailedResponseHandler = createJsonErrorResponseHandler({
|
34
|
+
errorSchema: googleErrorDataSchema,
|
35
|
+
errorToMessage: (data) => data.error.message
|
36
|
+
});
|
37
|
+
|
38
|
+
// src/google-generative-ai-embedding-model.ts
|
39
|
+
var GoogleGenerativeAIEmbeddingModel = class {
|
40
|
+
constructor(modelId, settings, config) {
|
41
|
+
this.specificationVersion = "v1";
|
42
|
+
this.modelId = modelId;
|
43
|
+
this.settings = settings;
|
44
|
+
this.config = config;
|
45
|
+
}
|
46
|
+
get provider() {
|
47
|
+
return this.config.provider;
|
48
|
+
}
|
49
|
+
get maxEmbeddingsPerCall() {
|
50
|
+
return 2048;
|
51
|
+
}
|
52
|
+
get supportsParallelCalls() {
|
53
|
+
return true;
|
54
|
+
}
|
55
|
+
async doEmbed({
|
56
|
+
values,
|
57
|
+
headers,
|
58
|
+
abortSignal
|
59
|
+
}) {
|
60
|
+
if (values.length > this.maxEmbeddingsPerCall) {
|
61
|
+
throw new TooManyEmbeddingValuesForCallError({
|
62
|
+
provider: this.provider,
|
63
|
+
modelId: this.modelId,
|
64
|
+
maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,
|
65
|
+
values
|
66
|
+
});
|
67
|
+
}
|
68
|
+
const mergedHeaders = combineHeaders(
|
69
|
+
await resolve(this.config.headers),
|
70
|
+
headers
|
71
|
+
);
|
72
|
+
const { responseHeaders, value: response } = await postJsonToApi({
|
73
|
+
url: `${this.config.baseURL}/models/${this.modelId}:batchEmbedContents`,
|
74
|
+
headers: mergedHeaders,
|
75
|
+
body: {
|
76
|
+
requests: values.map((value) => ({
|
77
|
+
model: `models/${this.modelId}`,
|
78
|
+
content: { role: "user", parts: [{ text: value }] },
|
79
|
+
outputDimensionality: this.settings.outputDimensionality
|
80
|
+
}))
|
81
|
+
},
|
82
|
+
failedResponseHandler: googleFailedResponseHandler,
|
83
|
+
successfulResponseHandler: createJsonResponseHandler(
|
84
|
+
googleGenerativeAITextEmbeddingResponseSchema
|
85
|
+
),
|
86
|
+
abortSignal,
|
87
|
+
fetch: this.config.fetch
|
88
|
+
});
|
89
|
+
return {
|
90
|
+
embeddings: response.embeddings.map((item) => item.values),
|
91
|
+
usage: void 0,
|
92
|
+
rawResponse: { headers: responseHeaders }
|
93
|
+
};
|
94
|
+
}
|
95
|
+
};
|
96
|
+
var googleGenerativeAITextEmbeddingResponseSchema = z2.object({
|
97
|
+
embeddings: z2.array(z2.object({ values: z2.array(z2.number()) }))
|
98
|
+
});
|
99
|
+
|
100
|
+
// src/google-generative-ai-language-model.ts
|
101
|
+
import {
|
102
|
+
combineHeaders as combineHeaders2,
|
103
|
+
createEventSourceResponseHandler,
|
104
|
+
createJsonResponseHandler as createJsonResponseHandler2,
|
105
|
+
parseProviderOptions,
|
106
|
+
postJsonToApi as postJsonToApi2,
|
107
|
+
resolve as resolve2
|
108
|
+
} from "@ai-sdk/provider-utils";
|
109
|
+
import { z as z3 } from "zod";
|
110
|
+
|
19
111
|
// src/convert-json-schema-to-openapi-schema.ts
|
20
112
|
function convertJSONSchemaToOpenAPISchema(jsonSchema) {
|
21
113
|
if (isEmptyObjectSchema(jsonSchema)) {
|
@@ -249,21 +341,6 @@ function getModelPath(modelId) {
|
|
249
341
|
return modelId.includes("/") ? modelId : `models/${modelId}`;
|
250
342
|
}
|
251
343
|
|
252
|
-
// src/google-error.ts
|
253
|
-
import { createJsonErrorResponseHandler } from "@ai-sdk/provider-utils";
|
254
|
-
import { z } from "zod";
|
255
|
-
var googleErrorDataSchema = z.object({
|
256
|
-
error: z.object({
|
257
|
-
code: z.number().nullable(),
|
258
|
-
message: z.string(),
|
259
|
-
status: z.string()
|
260
|
-
})
|
261
|
-
});
|
262
|
-
var googleFailedResponseHandler = createJsonErrorResponseHandler({
|
263
|
-
errorSchema: googleErrorDataSchema,
|
264
|
-
errorToMessage: (data) => data.error.message
|
265
|
-
});
|
266
|
-
|
267
344
|
// src/google-prepare-tools.ts
|
268
345
|
import {
|
269
346
|
UnsupportedFunctionalityError as UnsupportedFunctionalityError2
|
@@ -376,7 +453,7 @@ function mapGoogleGenerativeAIFinishReason({
|
|
376
453
|
// src/google-generative-ai-language-model.ts
|
377
454
|
var GoogleGenerativeAILanguageModel = class {
|
378
455
|
constructor(modelId, settings, config) {
|
379
|
-
this.specificationVersion = "
|
456
|
+
this.specificationVersion = "v2";
|
380
457
|
this.defaultObjectGenerationMode = "json";
|
381
458
|
this.supportsImageUrls = false;
|
382
459
|
this.modelId = modelId;
|
@@ -410,9 +487,7 @@ var GoogleGenerativeAILanguageModel = class {
|
|
410
487
|
const googleOptions = parseProviderOptions({
|
411
488
|
provider: "google",
|
412
489
|
providerOptions: providerMetadata,
|
413
|
-
schema:
|
414
|
-
responseModalities: z2.array(z2.enum(["TEXT", "IMAGE"])).nullish()
|
415
|
-
})
|
490
|
+
schema: googleGenerativeAIProviderOptionsSchema
|
416
491
|
});
|
417
492
|
const generationConfig = {
|
418
493
|
// standardized settings:
|
@@ -511,22 +586,22 @@ var GoogleGenerativeAILanguageModel = class {
|
|
511
586
|
var _a, _b, _c, _d, _e;
|
512
587
|
const { args, warnings } = await this.getArgs(options);
|
513
588
|
const body = JSON.stringify(args);
|
514
|
-
const mergedHeaders =
|
515
|
-
await
|
589
|
+
const mergedHeaders = combineHeaders2(
|
590
|
+
await resolve2(this.config.headers),
|
516
591
|
options.headers
|
517
592
|
);
|
518
593
|
const {
|
519
594
|
responseHeaders,
|
520
595
|
value: response,
|
521
596
|
rawValue: rawResponse
|
522
|
-
} = await
|
597
|
+
} = await postJsonToApi2({
|
523
598
|
url: `${this.config.baseURL}/${getModelPath(
|
524
599
|
this.modelId
|
525
600
|
)}:generateContent`,
|
526
601
|
headers: mergedHeaders,
|
527
602
|
body: args,
|
528
603
|
failedResponseHandler: googleFailedResponseHandler,
|
529
|
-
successfulResponseHandler:
|
604
|
+
successfulResponseHandler: createJsonResponseHandler2(responseSchema),
|
530
605
|
abortSignal: options.abortSignal,
|
531
606
|
fetch: this.config.fetch
|
532
607
|
});
|
@@ -572,11 +647,11 @@ var GoogleGenerativeAILanguageModel = class {
|
|
572
647
|
async doStream(options) {
|
573
648
|
const { args, warnings } = await this.getArgs(options);
|
574
649
|
const body = JSON.stringify(args);
|
575
|
-
const headers =
|
576
|
-
await
|
650
|
+
const headers = combineHeaders2(
|
651
|
+
await resolve2(this.config.headers),
|
577
652
|
options.headers
|
578
653
|
);
|
579
|
-
const { responseHeaders, value: response } = await
|
654
|
+
const { responseHeaders, value: response } = await postJsonToApi2({
|
580
655
|
url: `${this.config.baseURL}/${getModelPath(
|
581
656
|
this.modelId
|
582
657
|
)}:streamGenerateContent?alt=sse`,
|
@@ -734,167 +809,98 @@ function extractSources({
|
|
734
809
|
title: chunk.web.title
|
735
810
|
}));
|
736
811
|
}
|
737
|
-
var contentSchema =
|
738
|
-
role:
|
739
|
-
parts:
|
740
|
-
|
741
|
-
|
742
|
-
text:
|
812
|
+
var contentSchema = z3.object({
|
813
|
+
role: z3.string(),
|
814
|
+
parts: z3.array(
|
815
|
+
z3.union([
|
816
|
+
z3.object({
|
817
|
+
text: z3.string()
|
743
818
|
}),
|
744
|
-
|
745
|
-
functionCall:
|
746
|
-
name:
|
747
|
-
args:
|
819
|
+
z3.object({
|
820
|
+
functionCall: z3.object({
|
821
|
+
name: z3.string(),
|
822
|
+
args: z3.unknown()
|
748
823
|
})
|
749
824
|
}),
|
750
|
-
|
751
|
-
inlineData:
|
752
|
-
mimeType:
|
753
|
-
data:
|
825
|
+
z3.object({
|
826
|
+
inlineData: z3.object({
|
827
|
+
mimeType: z3.string(),
|
828
|
+
data: z3.string()
|
754
829
|
})
|
755
830
|
})
|
756
831
|
])
|
757
832
|
).nullish()
|
758
833
|
});
|
759
|
-
var groundingChunkSchema =
|
760
|
-
web:
|
761
|
-
retrievedContext:
|
834
|
+
var groundingChunkSchema = z3.object({
|
835
|
+
web: z3.object({ uri: z3.string(), title: z3.string() }).nullish(),
|
836
|
+
retrievedContext: z3.object({ uri: z3.string(), title: z3.string() }).nullish()
|
762
837
|
});
|
763
|
-
var groundingMetadataSchema =
|
764
|
-
webSearchQueries:
|
765
|
-
retrievalQueries:
|
766
|
-
searchEntryPoint:
|
767
|
-
groundingChunks:
|
768
|
-
groundingSupports:
|
769
|
-
|
770
|
-
segment:
|
771
|
-
startIndex:
|
772
|
-
endIndex:
|
773
|
-
text:
|
838
|
+
var groundingMetadataSchema = z3.object({
|
839
|
+
webSearchQueries: z3.array(z3.string()).nullish(),
|
840
|
+
retrievalQueries: z3.array(z3.string()).nullish(),
|
841
|
+
searchEntryPoint: z3.object({ renderedContent: z3.string() }).nullish(),
|
842
|
+
groundingChunks: z3.array(groundingChunkSchema).nullish(),
|
843
|
+
groundingSupports: z3.array(
|
844
|
+
z3.object({
|
845
|
+
segment: z3.object({
|
846
|
+
startIndex: z3.number().nullish(),
|
847
|
+
endIndex: z3.number().nullish(),
|
848
|
+
text: z3.string().nullish()
|
774
849
|
}),
|
775
|
-
segment_text:
|
776
|
-
groundingChunkIndices:
|
777
|
-
supportChunkIndices:
|
778
|
-
confidenceScores:
|
779
|
-
confidenceScore:
|
850
|
+
segment_text: z3.string().nullish(),
|
851
|
+
groundingChunkIndices: z3.array(z3.number()).nullish(),
|
852
|
+
supportChunkIndices: z3.array(z3.number()).nullish(),
|
853
|
+
confidenceScores: z3.array(z3.number()).nullish(),
|
854
|
+
confidenceScore: z3.array(z3.number()).nullish()
|
780
855
|
})
|
781
856
|
).nullish(),
|
782
|
-
retrievalMetadata:
|
783
|
-
|
784
|
-
webDynamicRetrievalScore:
|
857
|
+
retrievalMetadata: z3.union([
|
858
|
+
z3.object({
|
859
|
+
webDynamicRetrievalScore: z3.number()
|
785
860
|
}),
|
786
|
-
|
861
|
+
z3.object({})
|
787
862
|
]).nullish()
|
788
863
|
});
|
789
|
-
var safetyRatingSchema =
|
790
|
-
category:
|
791
|
-
probability:
|
792
|
-
probabilityScore:
|
793
|
-
severity:
|
794
|
-
severityScore:
|
795
|
-
blocked:
|
864
|
+
var safetyRatingSchema = z3.object({
|
865
|
+
category: z3.string(),
|
866
|
+
probability: z3.string(),
|
867
|
+
probabilityScore: z3.number().nullish(),
|
868
|
+
severity: z3.string().nullish(),
|
869
|
+
severityScore: z3.number().nullish(),
|
870
|
+
blocked: z3.boolean().nullish()
|
796
871
|
});
|
797
|
-
var responseSchema =
|
798
|
-
candidates:
|
799
|
-
|
800
|
-
content: contentSchema.nullish().or(
|
801
|
-
finishReason:
|
802
|
-
safetyRatings:
|
872
|
+
var responseSchema = z3.object({
|
873
|
+
candidates: z3.array(
|
874
|
+
z3.object({
|
875
|
+
content: contentSchema.nullish().or(z3.object({}).strict()),
|
876
|
+
finishReason: z3.string().nullish(),
|
877
|
+
safetyRatings: z3.array(safetyRatingSchema).nullish(),
|
803
878
|
groundingMetadata: groundingMetadataSchema.nullish()
|
804
879
|
})
|
805
880
|
),
|
806
|
-
usageMetadata:
|
807
|
-
promptTokenCount:
|
808
|
-
candidatesTokenCount:
|
809
|
-
totalTokenCount:
|
881
|
+
usageMetadata: z3.object({
|
882
|
+
promptTokenCount: z3.number().nullish(),
|
883
|
+
candidatesTokenCount: z3.number().nullish(),
|
884
|
+
totalTokenCount: z3.number().nullish()
|
810
885
|
}).nullish()
|
811
886
|
});
|
812
|
-
var chunkSchema =
|
813
|
-
candidates:
|
814
|
-
|
887
|
+
var chunkSchema = z3.object({
|
888
|
+
candidates: z3.array(
|
889
|
+
z3.object({
|
815
890
|
content: contentSchema.nullish(),
|
816
|
-
finishReason:
|
817
|
-
safetyRatings:
|
891
|
+
finishReason: z3.string().nullish(),
|
892
|
+
safetyRatings: z3.array(safetyRatingSchema).nullish(),
|
818
893
|
groundingMetadata: groundingMetadataSchema.nullish()
|
819
894
|
})
|
820
895
|
).nullish(),
|
821
|
-
usageMetadata:
|
822
|
-
promptTokenCount:
|
823
|
-
candidatesTokenCount:
|
824
|
-
totalTokenCount:
|
896
|
+
usageMetadata: z3.object({
|
897
|
+
promptTokenCount: z3.number().nullish(),
|
898
|
+
candidatesTokenCount: z3.number().nullish(),
|
899
|
+
totalTokenCount: z3.number().nullish()
|
825
900
|
}).nullish()
|
826
901
|
});
|
827
|
-
|
828
|
-
|
829
|
-
import {
|
830
|
-
TooManyEmbeddingValuesForCallError
|
831
|
-
} from "@ai-sdk/provider";
|
832
|
-
import {
|
833
|
-
combineHeaders as combineHeaders2,
|
834
|
-
createJsonResponseHandler as createJsonResponseHandler2,
|
835
|
-
postJsonToApi as postJsonToApi2,
|
836
|
-
resolve as resolve2
|
837
|
-
} from "@ai-sdk/provider-utils";
|
838
|
-
import { z as z3 } from "zod";
|
839
|
-
var GoogleGenerativeAIEmbeddingModel = class {
|
840
|
-
constructor(modelId, settings, config) {
|
841
|
-
this.specificationVersion = "v1";
|
842
|
-
this.modelId = modelId;
|
843
|
-
this.settings = settings;
|
844
|
-
this.config = config;
|
845
|
-
}
|
846
|
-
get provider() {
|
847
|
-
return this.config.provider;
|
848
|
-
}
|
849
|
-
get maxEmbeddingsPerCall() {
|
850
|
-
return 2048;
|
851
|
-
}
|
852
|
-
get supportsParallelCalls() {
|
853
|
-
return true;
|
854
|
-
}
|
855
|
-
async doEmbed({
|
856
|
-
values,
|
857
|
-
headers,
|
858
|
-
abortSignal
|
859
|
-
}) {
|
860
|
-
if (values.length > this.maxEmbeddingsPerCall) {
|
861
|
-
throw new TooManyEmbeddingValuesForCallError({
|
862
|
-
provider: this.provider,
|
863
|
-
modelId: this.modelId,
|
864
|
-
maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,
|
865
|
-
values
|
866
|
-
});
|
867
|
-
}
|
868
|
-
const mergedHeaders = combineHeaders2(
|
869
|
-
await resolve2(this.config.headers),
|
870
|
-
headers
|
871
|
-
);
|
872
|
-
const { responseHeaders, value: response } = await postJsonToApi2({
|
873
|
-
url: `${this.config.baseURL}/models/${this.modelId}:batchEmbedContents`,
|
874
|
-
headers: mergedHeaders,
|
875
|
-
body: {
|
876
|
-
requests: values.map((value) => ({
|
877
|
-
model: `models/${this.modelId}`,
|
878
|
-
content: { role: "user", parts: [{ text: value }] },
|
879
|
-
outputDimensionality: this.settings.outputDimensionality
|
880
|
-
}))
|
881
|
-
},
|
882
|
-
failedResponseHandler: googleFailedResponseHandler,
|
883
|
-
successfulResponseHandler: createJsonResponseHandler2(
|
884
|
-
googleGenerativeAITextEmbeddingResponseSchema
|
885
|
-
),
|
886
|
-
abortSignal,
|
887
|
-
fetch: this.config.fetch
|
888
|
-
});
|
889
|
-
return {
|
890
|
-
embeddings: response.embeddings.map((item) => item.values),
|
891
|
-
usage: void 0,
|
892
|
-
rawResponse: { headers: responseHeaders }
|
893
|
-
};
|
894
|
-
}
|
895
|
-
};
|
896
|
-
var googleGenerativeAITextEmbeddingResponseSchema = z3.object({
|
897
|
-
embeddings: z3.array(z3.object({ values: z3.array(z3.number()) }))
|
902
|
+
var googleGenerativeAIProviderOptionsSchema = z3.object({
|
903
|
+
responseModalities: z3.array(z3.enum(["TEXT", "IMAGE"])).nullish()
|
898
904
|
});
|
899
905
|
|
900
906
|
// src/google-supported-file-url.ts
|
@@ -945,6 +951,9 @@ function createGoogleGenerativeAI(options = {}) {
|
|
945
951
|
provider.embedding = createEmbeddingModel;
|
946
952
|
provider.textEmbedding = createEmbeddingModel;
|
947
953
|
provider.textEmbeddingModel = createEmbeddingModel;
|
954
|
+
provider.imageModel = (modelId) => {
|
955
|
+
throw new NoSuchModelError({ modelId, modelType: "imageModel" });
|
956
|
+
};
|
948
957
|
return provider;
|
949
958
|
}
|
950
959
|
var google = createGoogleGenerativeAI();
|