@ai-sdk/google-vertex
Version:
The **[Google Vertex provider](https://ai-sdk.dev/providers/ai-sdk-providers/google-vertex)** for the [AI SDK](https://ai-sdk.dev/docs) contains language model support for the [Google Vertex AI](https://cloud.google.com/vertex-ai) APIs.
173 lines (160 loc) • 7.77 kB
TypeScript
import { z } from 'zod/v4';
import { GoogleAuthOptions } from 'google-auth-library';
import { EmbeddingModelV3, ProviderV3, LanguageModelV3, ImageModelV3 } from '@ai-sdk/provider';
import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
import { Resolvable, FetchFunction } from '@ai-sdk/provider-utils';
type GoogleVertexImageModelId = 'imagen-3.0-generate-001' | 'imagen-3.0-generate-002' | 'imagen-3.0-fast-generate-001' | 'imagen-4.0-generate-001' | 'imagen-4.0-ultra-generate-001' | 'imagen-4.0-fast-generate-001' | (string & {});
declare const vertexImageProviderOptionsSchema: z.ZodObject<{
negativePrompt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
personGeneration: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
dont_allow: "dont_allow";
allow_adult: "allow_adult";
allow_all: "allow_all";
}>>>;
safetySetting: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
block_low_and_above: "block_low_and_above";
block_medium_and_above: "block_medium_and_above";
block_only_high: "block_only_high";
block_none: "block_none";
}>>>;
addWatermark: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
storageUri: z.ZodOptional<z.ZodNullable<z.ZodString>>;
sampleImageSize: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
"1K": "1K";
"2K": "2K";
}>>>;
edit: z.ZodOptional<z.ZodNullable<z.ZodObject<{
baseSteps: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
mode: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
EDIT_MODE_INPAINT_INSERTION: "EDIT_MODE_INPAINT_INSERTION";
EDIT_MODE_INPAINT_REMOVAL: "EDIT_MODE_INPAINT_REMOVAL";
EDIT_MODE_OUTPAINT: "EDIT_MODE_OUTPAINT";
EDIT_MODE_CONTROLLED_EDITING: "EDIT_MODE_CONTROLLED_EDITING";
EDIT_MODE_PRODUCT_IMAGE: "EDIT_MODE_PRODUCT_IMAGE";
EDIT_MODE_BGSWAP: "EDIT_MODE_BGSWAP";
}>>>;
maskMode: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
MASK_MODE_DEFAULT: "MASK_MODE_DEFAULT";
MASK_MODE_USER_PROVIDED: "MASK_MODE_USER_PROVIDED";
MASK_MODE_DETECTION_BOX: "MASK_MODE_DETECTION_BOX";
MASK_MODE_CLOTHING_AREA: "MASK_MODE_CLOTHING_AREA";
MASK_MODE_PARSED_PERSON: "MASK_MODE_PARSED_PERSON";
}>>>;
maskDilation: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
}, z.core.$strip>>>;
}, z.core.$strip>;
type GoogleVertexImageProviderOptions = z.infer<typeof vertexImageProviderOptionsSchema>;
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' | (string & {});
interface GoogleVertexConfig {
provider: string;
baseURL: string;
headers: Resolvable<Record<string, string | undefined>>;
fetch?: FetchFunction;
}
declare class GoogleVertexEmbeddingModel implements EmbeddingModelV3 {
readonly specificationVersion = "v3";
readonly modelId: GoogleVertexEmbeddingModelId;
readonly maxEmbeddingsPerCall = 2048;
readonly supportsParallelCalls = true;
private readonly config;
get provider(): string;
constructor(modelId: GoogleVertexEmbeddingModelId, config: GoogleVertexConfig);
doEmbed({ values, headers, abortSignal, providerOptions, }: Parameters<EmbeddingModelV3['doEmbed']>[0]): Promise<Awaited<ReturnType<EmbeddingModelV3['doEmbed']>>>;
}
type GoogleVertexModelId = 'gemini-2.5-pro' | 'gemini-2.5-flash' | 'gemini-2.5-flash-lite' | 'gemini-2.0-flash-lite' | 'gemini-2.0-flash' | 'gemini-2.0-flash-001' | 'gemini-1.5-flash' | 'gemini-1.5-flash-001' | 'gemini-1.5-flash-002' | 'gemini-1.5-pro' | 'gemini-1.5-pro-001' | 'gemini-1.5-pro-002' | 'gemini-1.0-pro-001' | 'gemini-1.0-pro-vision-001' | 'gemini-1.0-pro' | 'gemini-1.0-pro-002' | 'gemini-2.0-flash-lite-preview-02-05' | 'gemini-2.5-flash-lite-preview-09-2025' | 'gemini-2.5-flash-preview-09-2025' | 'gemini-3-pro-preview' | 'gemini-3-pro-image-preview' | 'gemini-3-flash-preview' | 'gemini-2.0-pro-exp-02-05' | 'gemini-2.0-flash-exp' | (string & {});
declare const googleVertexTools: {
googleSearch: _ai_sdk_provider_utils.ProviderToolFactory<{}, {
mode?: "MODE_DYNAMIC" | "MODE_UNSPECIFIED";
dynamicThreshold?: number;
}>;
enterpriseWebSearch: _ai_sdk_provider_utils.ProviderToolFactory<{}, {}>;
googleMaps: _ai_sdk_provider_utils.ProviderToolFactory<{}, {}>;
urlContext: _ai_sdk_provider_utils.ProviderToolFactory<{}, {}>;
fileSearch: _ai_sdk_provider_utils.ProviderToolFactory<{}, {
[x: string]: unknown;
fileSearchStoreNames: string[];
topK?: number | undefined;
metadataFilter?: string | undefined;
}>;
codeExecution: _ai_sdk_provider_utils.ProviderToolFactoryWithOutputSchema<{
language: string;
code: string;
}, {
outcome: string;
output: string;
}, {}>;
vertexRagStore: _ai_sdk_provider_utils.ProviderToolFactory<{}, {
ragCorpus: string;
topK?: number;
}>;
};
interface GoogleVertexProvider extends ProviderV3 {
/**
Creates a model for text generation.
*/
(modelId: GoogleVertexModelId): LanguageModelV3;
languageModel: (modelId: GoogleVertexModelId) => LanguageModelV3;
/**
* Creates a model for image generation.
*/
image(modelId: GoogleVertexImageModelId): ImageModelV3;
/**
Creates a model for image generation.
*/
imageModel(modelId: GoogleVertexImageModelId): ImageModelV3;
tools: typeof googleVertexTools;
/**
* @deprecated Use `embeddingModel` instead.
*/
textEmbeddingModel(modelId: GoogleVertexEmbeddingModelId): GoogleVertexEmbeddingModel;
}
interface GoogleVertexProviderSettings$1 {
/**
* Optional. The API key for the Google Cloud project. If provided, the
* provider will use express mode with API key authentication. Defaults to
* the value of the `GOOGLE_VERTEX_API_KEY` environment variable.
*/
apiKey?: string;
/**
Your Google Vertex location. Defaults to the environment variable `GOOGLE_VERTEX_LOCATION`.
*/
location?: string;
/**
Your Google Vertex project. Defaults to the environment variable `GOOGLE_VERTEX_PROJECT`.
*/
project?: string;
/**
* Headers to use for requests. Can be:
* - A headers object
* - A Promise that resolves to a headers object
* - A function that returns a headers object
* - A function that returns a Promise of a headers object
*/
headers?: Resolvable<Record<string, string | undefined>>;
/**
Custom fetch implementation. You can use it as a middleware to intercept requests,
or to provide a custom fetch implementation for e.g. testing.
*/
fetch?: FetchFunction;
generateId?: () => string;
/**
Base URL for the Google Vertex API calls.
*/
baseURL?: string;
}
interface GoogleVertexProviderSettings extends GoogleVertexProviderSettings$1 {
/**
* Optional. The Authentication options provided by google-auth-library.
* Complete list of authentication options is documented in the
* GoogleAuthOptions interface:
* https://github.com/googleapis/google-auth-library-nodejs/blob/main/src/auth/googleauth.ts.
*/
googleAuthOptions?: GoogleAuthOptions;
}
declare function createVertex(options?: GoogleVertexProviderSettings): GoogleVertexProvider;
/**
Default Google Vertex AI provider instance.
*/
declare const vertex: GoogleVertexProvider;
declare const VERSION: string;
export { type GoogleVertexImageProviderOptions, type GoogleVertexProvider, type GoogleVertexProviderSettings, VERSION, createVertex, vertex };