@ai-sdk/google-vertex 5.0.118 → 5.0.120

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/dist/index.d.ts CHANGED
@@ -1,37 +1,27 @@
1
- import { FetchFunction, Resolvable, WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE, WebSocketConstructor } from "@ai-sdk/provider-utils";
1
+ import { FetchFunction, InferSchema, Resolvable, WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE, WebSocketConstructor } from "@ai-sdk/provider-utils";
2
2
  import { GoogleAuthOptions } from "google-auth-library";
3
3
  import { GoogleInteractionsAgentName, GoogleInteractionsModelId } from "@ai-sdk/google/internal";
4
4
  import { EmbeddingModelV4, Experimental_TranscriptionModelV4StreamOptions, Experimental_VideoModelV4, ImageModelV4, JSONObject, LanguageModelV4, ProviderV4, SpeechModelV4, TranscriptionModelV4 } from "@ai-sdk/provider";
5
- import { z } from "zod/v4";
6
5
  import { GoogleLanguageModelOptions, GoogleSpeechModelOptions } from "@ai-sdk/google";
7
6
  //#region src/google-vertex-embedding-model-options.d.ts
8
7
  type GoogleVertexEmbeddingModelId = 'textembedding-gecko' | 'textembedding-gecko@001' | 'textembedding-gecko@003' | 'textembedding-gecko-multilingual' | 'textembedding-gecko-multilingual@001' | 'text-multilingual-embedding-002' | 'text-embedding-004' | 'text-embedding-005' | 'gemini-embedding-001' | 'gemini-embedding-2' | 'gemini-embedding-2-preview' | (string & {});
9
- declare const googleVertexEmbeddingModelOptions: z.ZodObject<{
10
- outputDimensionality: z.ZodOptional<z.ZodNumber>;
11
- taskType: z.ZodOptional<z.ZodEnum<{
12
- SEMANTIC_SIMILARITY: "SEMANTIC_SIMILARITY";
13
- CLASSIFICATION: "CLASSIFICATION";
14
- CLUSTERING: "CLUSTERING";
15
- RETRIEVAL_DOCUMENT: "RETRIEVAL_DOCUMENT";
16
- RETRIEVAL_QUERY: "RETRIEVAL_QUERY";
17
- QUESTION_ANSWERING: "QUESTION_ANSWERING";
18
- FACT_VERIFICATION: "FACT_VERIFICATION";
19
- CODE_RETRIEVAL_QUERY: "CODE_RETRIEVAL_QUERY";
20
- }>>;
21
- title: z.ZodOptional<z.ZodString>;
22
- autoTruncate: z.ZodOptional<z.ZodBoolean>;
23
- }, z.core.$strip>;
24
- type GoogleVertexEmbeddingModelOptions = z.infer<typeof googleVertexEmbeddingModelOptions>;
8
+ declare const googleVertexEmbeddingModelOptions: import("@ai-sdk/provider-utils").LazySchema<{
9
+ outputDimensionality?: number | undefined;
10
+ taskType?: "SEMANTIC_SIMILARITY" | "CLASSIFICATION" | "CLUSTERING" | "RETRIEVAL_DOCUMENT" | "RETRIEVAL_QUERY" | "QUESTION_ANSWERING" | "FACT_VERIFICATION" | "CODE_RETRIEVAL_QUERY" | undefined;
11
+ title?: string | undefined;
12
+ autoTruncate?: boolean | undefined;
13
+ }>;
14
+ type GoogleVertexEmbeddingModelOptions = InferSchema<typeof googleVertexEmbeddingModelOptions>;
25
15
  //#endregion
26
16
  //#region src/google-vertex-transcription-model-options.d.ts
27
17
  type GoogleVertexTranscriptionModelId = 'chirp_2' | 'chirp_3' | 'telephony' | (string & {});
28
- declare const googleVertexTranscriptionProviderOptionsSchema: z.ZodObject<{
29
- languageCodes: z.ZodOptional<z.ZodArray<z.ZodString>>;
30
- enableAutomaticPunctuation: z.ZodOptional<z.ZodBoolean>;
31
- enableWordTimeOffsets: z.ZodOptional<z.ZodBoolean>;
32
- region: z.ZodOptional<z.ZodString>;
33
- }, z.core.$strip>;
34
- type GoogleVertexTranscriptionModelOptions = z.infer<typeof googleVertexTranscriptionProviderOptionsSchema>;
18
+ declare const googleVertexTranscriptionProviderOptionsSchema: import("@ai-sdk/provider-utils").LazySchema<{
19
+ languageCodes?: string[] | undefined;
20
+ enableAutomaticPunctuation?: boolean | undefined;
21
+ enableWordTimeOffsets?: boolean | undefined;
22
+ region?: string | undefined;
23
+ }>;
24
+ type GoogleVertexTranscriptionModelOptions = InferSchema<typeof googleVertexTranscriptionProviderOptionsSchema>;
35
25
  //#endregion
36
26
  //#region src/google-vertex-image-model-options.d.ts
37
27
  type GoogleVertexImageModelOptions = Omit<GoogleLanguageModelOptions, 'responseModalities'>;
@@ -258,17 +248,14 @@ type GoogleVertexGeminiTranscriptionModelId = 'gemini-3.5-transcribe' | 'gemini-
258
248
  * (`gemini-3.5-transcribe-live`) variants. Maps onto Google's
259
249
  * `AudioTranscriptionConfig`.
260
250
  */
261
- declare const googleVertexGeminiTranscriptionModelOptions: z.ZodObject<{
262
- languageCodes: z.ZodOptional<z.ZodArray<z.ZodString>>;
263
- customVocabulary: z.ZodOptional<z.ZodArray<z.ZodString>>;
264
- wordTimestamp: z.ZodOptional<z.ZodBoolean>;
265
- diarization: z.ZodOptional<z.ZodBoolean>;
266
- mode: z.ZodOptional<z.ZodEnum<{
267
- SMART: "SMART";
268
- VERBATIM: "VERBATIM";
269
- }>>;
270
- }, z.core.$strip>;
271
- type GoogleVertexTranscriptionModelGeminiOptions = z.infer<typeof googleVertexGeminiTranscriptionModelOptions>;
251
+ declare const googleVertexGeminiTranscriptionModelOptions: import("@ai-sdk/provider-utils").LazySchema<{
252
+ languageCodes?: string[] | undefined;
253
+ customVocabulary?: string[] | undefined;
254
+ wordTimestamp?: boolean | undefined;
255
+ diarization?: boolean | undefined;
256
+ mode?: "SMART" | "VERBATIM" | undefined;
257
+ }>;
258
+ type GoogleVertexTranscriptionModelGeminiOptions = InferSchema<typeof googleVertexGeminiTranscriptionModelOptions>;
272
259
  //#endregion
273
260
  //#region src/gemini-transcription/google-vertex-gemini-transcription-model.d.ts
274
261
  interface GoogleVertexGeminiTranscriptionModelConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["GoogleVertexProviderSettings","GoogleVertexProviderSettingsOriginal","TranscriptionModelV4StreamOptions"],"sources":["../src/google-vertex-embedding-model-options.ts","../src/google-vertex-transcription-model-options.ts","../src/google-vertex-image-model-options.ts","../src/google-vertex-video-model-options.ts","../src/google-vertex-video-settings.ts","../src/google-vertex-speech-model-options.ts","../src/google-vertex-config.ts","../src/google-vertex-embedding-model.ts","../src/google-vertex-image-settings.ts","../src/google-vertex-options.ts","../src/google-vertex-tools.ts","../src/google-vertex-provider-base.ts","../src/google-vertex-provider.ts","../src/gemini-transcription/google-vertex-gemini-transcription-model-options.ts","../src/gemini-transcription/google-vertex-gemini-transcription-model.ts","../src/version.ts"],"mappings":";;;;;;;KAGY;cAcC,mCAAiC,EAAA;;;;;;;;;;;;;;GA4C5C,EAAA,KAAA;KAEU,oCAAoC,EAAE,aACzC;;;KC5DG;cAMC,gDAA8C,EAAA;;;;;GAgCzD,EAAA,KAAA;KAEU,wCAAwC,EAAE,aAC7C;;;KC3CG,gCAAgC,KAC1C;;;KCAU;EAEV;EACA;EAGA;EACA;EACA;EAGA;EAGA,kBAAkB;IAChB;IACA;;GAGD;;;;KCtBS;;;KCMA;KAQA,iCAAiC;;;UCZ5B;EACf;EACA;EACA,UAAU,WAAW;EACrB,QAAQ;;;;cCgBG,sCAAsC;WACxC;WACA,SAAS;WACT;mBAEQ;UAET,oBAAoB,OAAO;;;;UAO3B,sBAAsB;IAC5B;IACA,QAAQ;MACT;MAIG;MAMA;EAKF,YAAA,SAAS,8BACT,QAAQ;EAMJ,UACJ,QACA,YACA,SACA,aACA,mBACC,WAAW,kCAAkC,QAC9C,QAAQ,WAAW;;;;KCpEX;;;KCGA;;;cCDC;;;;MAS4wnB,YAAC;MAAsD,cAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCgEh0nB,6BAA6B;;;;GAI3C,SAAS,sBAAsB;EAEhC,gBAAgB,SAAS,wBAAwB;;;;;;;EAQjD,aACE,gBACI;IACE,OAAO;;IACP;MACL;;;;EAKH,MAAM,SAAS,2BAA2B;;;;EAK1C,WAAW,SAAS,2BAA2B;EAE/C,cAAc;;;;EAKd,mBACE,SAAS,+BACR;;;;EAKH,MAAM,SAAS,2BAA2B;;;;EAK1C,WAAW,SAAS,2BAA2B;;;;EAK/C,OAAO,SAAS,4BAA4B;;;;EAK5C,YAAY,SAAS,4BAA4B;;;;EAKjD,cACE,SAAS,mCACR;;;;EAKH,mBACE,SAAS,mCACR;;UAGYA;;;;;;EAMf;;;;EAKA;;;;EAKA;;;;;;;;EASA,UAAU,WAAW;;;;;EAMrB,QAAQ;EAGR;;;;EAKA;;;;;;EAOA,YAAY;;;;;EAMZ;;;;IAIE;;;;;UCtMa,qCAAqCC;;;;;;;EAOpD,oBAAoB;;wBAKN,mBACd,UAAS,+BACR;;;;qBAgCU,cAAY;;;KCpDb;;;;;;;cAWC,6CAA2C,EAAA;;;;;;;;;GAiCtD,EAAA,KAAA;KAEU,8CAA8C,EAAE,aACnD;;;UCuCC;EACR;;EAEA;EACA,UAAU,WAAW;EACrB,QAAQ;EACR,YAAY;EACZ;EACA;EACA;IACE,oBAAoB;IACpB;;;;;;;;;qBAUS,gDAAgD;WAyBhD,SAAS;mBACD;WAzBV;UAED,oBAAoB,OAAO;;;;UAO3B,sBAAsB;IAC5B,SAAS;IACT,QAAQ;MACT;MAOG;EAKO,YAAA,SAAS,wCACD,QAAQ;UAGb;EAeR,WACJ,SAAS,WAAW,yCACnB,QAAQ,QAAQ,WAAW;EAwGxB,SACJ,SAASC,iDACR,QACD,QAAQ,WAAW,YAAY;;;;qBCpQtB"}
1
+ {"version":3,"file":"index.d.ts","names":["GoogleVertexProviderSettings","GoogleVertexProviderSettingsOriginal","TranscriptionModelV4StreamOptions"],"sources":["../src/google-vertex-embedding-model-options.ts","../src/google-vertex-transcription-model-options.ts","../src/google-vertex-image-model-options.ts","../src/google-vertex-video-model-options.ts","../src/google-vertex-video-settings.ts","../src/google-vertex-speech-model-options.ts","../src/google-vertex-config.ts","../src/google-vertex-embedding-model.ts","../src/google-vertex-image-settings.ts","../src/google-vertex-options.ts","../src/google-vertex-tools.ts","../src/google-vertex-provider-base.ts","../src/google-vertex-provider.ts","../src/gemini-transcription/google-vertex-gemini-transcription-model-options.ts","../src/gemini-transcription/google-vertex-gemini-transcription-model.ts","../src/version.ts"],"mappings":";;;;;;KAQY;cAcC,oEAAiC;;;;;;KAkDlC,oCAAoC,mBACvC;;;KChEG;cAMC,iFAA8C;;;;;;KAsC/C,wCAAwC,mBAC3C;;;KCpDG,gCAAgC,KAC1C;;;KCAU;EAEV;EACA;EAGA;EACA;EACA;EAGA;EAGA,kBAAkB;IAChB;IACA;;GAGD;;;;KCtBS;;;KCMA;KAQA,iCAAiC;;;UCZ5B;EACf;EACA;EACA,UAAU,WAAW;EACrB,QAAQ;;;;cCkBG,sCAAsC;WACxC;WACA,SAAS;WACT;mBAEQ;UAET,oBAAoB,OAAO;;;;UAO3B,sBAAsB;IAC5B;IACA,QAAQ;MACT;MAIG;MAMA;EAKF,YAAA,SAAS,8BACT,QAAQ;EAMJ,UACJ,QACA,YACA,SACA,aACA,mBACC,WAAW,kCAAkC,QAC9C,QAAQ,WAAW;;;;KCtEX;;;KCGA;;;cCDC;;;;MAS4wnB,YAAC;MAAsD,cAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCgEh0nB,6BAA6B;;;;GAI3C,SAAS,sBAAsB;EAEhC,gBAAgB,SAAS,wBAAwB;;;;;;;EAQjD,aACE,gBACI;IACE,OAAO;;IACP;MACL;;;;EAKH,MAAM,SAAS,2BAA2B;;;;EAK1C,WAAW,SAAS,2BAA2B;EAE/C,cAAc;;;;EAKd,mBACE,SAAS,+BACR;;;;EAKH,MAAM,SAAS,2BAA2B;;;;EAK1C,WAAW,SAAS,2BAA2B;;;;EAK/C,OAAO,SAAS,4BAA4B;;;;EAK5C,YAAY,SAAS,4BAA4B;;;;EAKjD,cACE,SAAS,mCACR;;;;EAKH,mBACE,SAAS,mCACR;;UAGYA;;;;;;EAMf;;;;EAKA;;;;EAKA;;;;;;;;EASA,UAAU,WAAW;;;;;EAMrB,QAAQ;EAGR;;;;EAKA;;;;;;EAOA,YAAY;;;;;EAMZ;;;;IAIE;;;;;UCtMa,qCAAqCC;;;;;;;EAOpD,oBAAoB;;wBAKN,mBACd,UAAS,+BACR;;;;qBAgCU,cAAY;;;KC/Cb;;;;;;;cAWC,8EAA2C;;;;;;;KAuC5C,8CAA8C,mBACjD;;;UCgCC;EACR;;EAEA;EACA,UAAU,WAAW;EACrB,QAAQ;EACR,YAAY;EACZ;EACA;EACA;IACE,oBAAoB;IACpB;;;;;;;;;qBAUS,gDAAgD;WAyBhD,SAAS;mBACD;WAzBV;UAED,oBAAoB,OAAO;;;;UAO3B,sBAAsB;IAC5B,SAAS;IACT,QAAQ;MACT;MAOG;EAKO,YAAA,SAAS,wCACD,QAAQ;UAGb;EAeR,WACJ,SAAS,WAAW,yCACnB,QAAQ,QAAQ,WAAW;EAwGxB,SACJ,SAASC,iDACR,QACD,QAAQ,WAAW,YAAY;;;;qBCtQtB"}
package/dist/index.js CHANGED
@@ -15,21 +15,21 @@ function createAuthTokenGenerator(options) {
15
15
  }
16
16
  //#endregion
17
17
  //#region src/version.ts
18
- const VERSION = "5.0.118";
18
+ const VERSION = "5.0.120";
19
19
  //#endregion
20
20
  //#region src/google-vertex-error.ts
21
- const googleVertexErrorDataSchema = z.object({ error: z.object({
21
+ const googleVertexErrorDataSchema = lazySchema(() => zodSchema(z.object({ error: z.object({
22
22
  code: z.number().nullable(),
23
23
  message: z.string(),
24
24
  status: z.string()
25
- }) });
25
+ }) })));
26
26
  const googleVertexFailedResponseHandler = createJsonErrorResponseHandler({
27
27
  errorSchema: googleVertexErrorDataSchema,
28
28
  errorToMessage: (data) => data.error.message
29
29
  });
30
30
  //#endregion
31
31
  //#region src/google-vertex-embedding-model-options.ts
32
- const googleVertexEmbeddingModelOptions = z.object({
32
+ const googleVertexEmbeddingModelOptions = lazySchema(() => zodSchema(z.object({
33
33
  /**
34
34
  * Optional. Optional reduced dimension for the output embedding.
35
35
  * If set, excessive values in the output embedding are truncated from the end.
@@ -68,7 +68,7 @@ const googleVertexEmbeddingModelOptions = z.object({
68
68
  * an error is returned if the input text is longer than the maximum length supported by the model. Defaults to true.
69
69
  */
70
70
  autoTruncate: z.boolean().optional()
71
- });
71
+ })));
72
72
  //#endregion
73
73
  //#region src/google-vertex-embedding-model.ts
74
74
  var GoogleVertexEmbeddingModel = class GoogleVertexEmbeddingModel {
@@ -176,14 +176,14 @@ var GoogleVertexEmbeddingModel = class GoogleVertexEmbeddingModel {
176
176
  };
177
177
  }
178
178
  };
179
- const googleVertexTextEmbeddingResponseSchema = z.object({ predictions: z.array(z.object({ embeddings: z.object({
179
+ const googleVertexTextEmbeddingResponseSchema = lazySchema(() => zodSchema(z.object({ predictions: z.array(z.object({ embeddings: z.object({
180
180
  values: z.array(z.number()),
181
181
  statistics: z.object({ token_count: z.number() })
182
- }) })) });
183
- const googleVertexEmbedContentResponseSchema = z.object({
182
+ }) })) })));
183
+ const googleVertexEmbedContentResponseSchema = lazySchema(() => zodSchema(z.object({
184
184
  embedding: z.object({ values: z.array(z.number()) }),
185
185
  usageMetadata: z.object({ promptTokenCount: z.number().nullish() }).nullish()
186
- });
186
+ })));
187
187
  function usesEmbedContentEndpoint(modelId) {
188
188
  return modelId === "gemini-embedding-2" || modelId === "gemini-embedding-2-preview";
189
189
  }
@@ -397,7 +397,7 @@ var GoogleVertexCloudTTSSpeechModel = class GoogleVertexCloudTTSSpeechModel {
397
397
  };
398
398
  }
399
399
  };
400
- const googleVertexCloudTTSResponseSchema = z.object({ audioContent: z.string().nullish() });
400
+ const googleVertexCloudTTSResponseSchema = lazySchema(() => zodSchema(z.object({ audioContent: z.string().nullish() })));
401
401
  //#endregion
402
402
  //#region src/google-vertex-tools.ts
403
403
  const googleVertexTools = {
@@ -411,7 +411,7 @@ const googleVertexTools = {
411
411
  };
412
412
  //#endregion
413
413
  //#region src/google-vertex-transcription-model-options.ts
414
- const googleVertexTranscriptionProviderOptionsSchema = z.object({
414
+ const googleVertexTranscriptionProviderOptionsSchema = lazySchema(() => zodSchema(z.object({
415
415
  /**
416
416
  * BCP-47 language codes to recognize (e.g. `['en-US']`), or `['auto']` to let
417
417
  * Chirp auto-detect the spoken language. Defaults to `['auto']`. For
@@ -440,7 +440,7 @@ const googleVertexTranscriptionProviderOptionsSchema = z.object({
440
440
  * `global` location.
441
441
  */
442
442
  region: z.string().optional()
443
- });
443
+ })));
444
444
  //#endregion
445
445
  //#region src/google-vertex-transcription-model.ts
446
446
  function parseDurationSeconds(value) {
@@ -544,7 +544,7 @@ var GoogleVertexTranscriptionModel = class GoogleVertexTranscriptionModel {
544
544
  };
545
545
  }
546
546
  };
547
- const googleVertexTranscriptionResponseSchema = z.object({
547
+ const googleVertexTranscriptionResponseSchema = lazySchema(() => zodSchema(z.object({
548
548
  results: z.array(z.object({
549
549
  alternatives: z.array(z.object({
550
550
  transcript: z.string().nullish(),
@@ -557,7 +557,7 @@ const googleVertexTranscriptionResponseSchema = z.object({
557
557
  languageCode: z.string().nullish()
558
558
  })).nullish(),
559
559
  metadata: z.object({ totalBilledDuration: z.string().nullish() }).nullish()
560
- });
560
+ })));
561
561
  //#endregion
562
562
  //#region src/gemini-transcription/google-vertex-gemini-transcription-model-options.ts
563
563
  /**
@@ -566,7 +566,7 @@ const googleVertexTranscriptionResponseSchema = z.object({
566
566
  * (`gemini-3.5-transcribe-live`) variants. Maps onto Google's
567
567
  * `AudioTranscriptionConfig`.
568
568
  */
569
- const googleVertexGeminiTranscriptionModelOptions = z.object({
569
+ const googleVertexGeminiTranscriptionModelOptions = lazySchema(() => zodSchema(z.object({
570
570
  /**
571
571
  * BCP-47 language codes providing hints about the languages present in the
572
572
  * audio. If omitted or empty, defaults to automatic language detection.
@@ -595,7 +595,7 @@ const googleVertexGeminiTranscriptionModelOptions = z.object({
595
595
  * (lists, numbers, dates, paragraph breaks), and grammar/casing polish.
596
596
  */
597
597
  mode: z.enum(["SMART", "VERBATIM"]).optional()
598
- });
598
+ })));
599
599
  //#endregion
600
600
  //#region src/gemini-transcription/google-vertex-gemini-transcription-model.ts
601
601
  const liveWebSocketPath = "google.cloud.aiplatform.v1.LlmBidiService/BidiGenerateContent";
@@ -964,23 +964,23 @@ function parseOffsetSeconds(offset) {
964
964
  const parsed = Number.parseFloat(offset);
965
965
  return Number.isFinite(parsed) ? parsed : void 0;
966
966
  }
967
- const googleVertexGeminiTranscriptionWordSchema = z.object({
967
+ const googleVertexGeminiTranscriptionWordSchema = () => z.object({
968
968
  word: z.string().nullish(),
969
969
  startOffset: z.string().nullish(),
970
970
  endOffset: z.string().nullish()
971
971
  });
972
- const googleVertexGeminiTranscriptionResponseSchema = z.object({
972
+ const googleVertexGeminiTranscriptionResponseSchema = lazySchema(() => zodSchema(z.object({
973
973
  candidates: z.array(z.object({ content: z.object({ parts: z.array(z.object({
974
974
  text: z.string().nullish(),
975
975
  audioTranscription: z.object({
976
976
  text: z.string().nullish(),
977
977
  languageCode: z.string().nullish(),
978
978
  speakerLabel: z.string().nullish(),
979
- words: z.array(googleVertexGeminiTranscriptionWordSchema).nullish()
979
+ words: z.array(googleVertexGeminiTranscriptionWordSchema()).nullish()
980
980
  }).nullish()
981
981
  })).nullish() }).nullish() })).nullish(),
982
982
  usageMetadata: z.record(z.string(), z.unknown()).nullish()
983
- });
983
+ })));
984
984
  //#endregion
985
985
  //#region src/google-vertex-video-model-options.ts
986
986
  const googleVertexVideoModelOptionsSchema = lazySchema(() => zodSchema(z.looseObject({
@@ -1230,7 +1230,7 @@ var GoogleVertexVideoModel = class {
1230
1230
  });
1231
1231
  }
1232
1232
  };
1233
- const googleVertexOperationSchema = z.object({
1233
+ const googleVertexOperationSchema = lazySchema(() => zodSchema(z.object({
1234
1234
  name: z.string().nullish(),
1235
1235
  done: z.boolean().nullish(),
1236
1236
  error: z.object({
@@ -1246,7 +1246,7 @@ const googleVertexOperationSchema = z.object({
1246
1246
  })).nullish(),
1247
1247
  raiMediaFilteredCount: z.number().nullish()
1248
1248
  }).nullish()
1249
- });
1249
+ })));
1250
1250
  //#endregion
1251
1251
  //#region src/google-vertex-provider-base.ts
1252
1252
  const EXPRESS_MODE_BASE_URL = "https://aiplatform.googleapis.com/v1/publishers/google";