UNPKG

@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.

220 lines (205 loc) 10.3 kB
import { z } from 'zod/v4'; import { GoogleAuthOptions } from 'google-auth-library'; import { EmbeddingModelV3, ProviderV3, LanguageModelV3, ImageModelV3, Experimental_VideoModelV3 } from '@ai-sdk/provider'; import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils'; import { Resolvable, FetchFunction } from '@ai-sdk/provider-utils'; 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-preview' | (string & {}); declare const googleVertexEmbeddingModelOptions: z.ZodObject<{ outputDimensionality: z.ZodOptional<z.ZodNumber>; taskType: z.ZodOptional<z.ZodEnum<{ SEMANTIC_SIMILARITY: "SEMANTIC_SIMILARITY"; CLASSIFICATION: "CLASSIFICATION"; CLUSTERING: "CLUSTERING"; RETRIEVAL_DOCUMENT: "RETRIEVAL_DOCUMENT"; RETRIEVAL_QUERY: "RETRIEVAL_QUERY"; QUESTION_ANSWERING: "QUESTION_ANSWERING"; FACT_VERIFICATION: "FACT_VERIFICATION"; CODE_RETRIEVAL_QUERY: "CODE_RETRIEVAL_QUERY"; }>>; title: z.ZodOptional<z.ZodString>; autoTruncate: z.ZodOptional<z.ZodBoolean>; }, z.core.$strip>; type GoogleVertexEmbeddingModelOptions = z.infer<typeof googleVertexEmbeddingModelOptions>; 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' | 'gemini-2.5-flash-image' | 'gemini-3-pro-image-preview' | 'gemini-3.1-flash-image-preview' | (string & {}); declare const googleVertexImageModelOptionsSchema: 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 GoogleVertexImageModelOptions = z.infer<typeof googleVertexImageModelOptionsSchema>; type GoogleVertexVideoModelId = 'veo-2.0-generate-preview' | 'veo-2.0-generate-exp' | 'veo-2.0-generate-001' | 'veo-3.0-generate-001' | 'veo-3.0-fast-generate-001' | 'veo-3.0-generate-preview' | 'veo-3.0-fast-generate-preview' | 'veo-3.1-generate-001' | 'veo-3.1-fast-generate-001' | 'veo-3.1-generate-preview' | 'veo-3.1-fast-generate-preview' | (string & {}); type GoogleVertexVideoModelOptions = { pollIntervalMs?: number | null; pollTimeoutMs?: number | null; personGeneration?: 'dont_allow' | 'allow_adult' | 'allow_all' | null; negativePrompt?: string | null; generateAudio?: boolean | null; gcsOutputDirectory?: string | null; referenceImages?: Array<{ bytesBase64Encoded?: string; gcsUri?: string; }> | null; [key: string]: unknown; }; 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-3.5-flash' | '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-preview-09-2025' | 'gemini-3-pro-preview' | 'gemini-3-pro-image-preview' | 'gemini-3-flash-preview' | 'gemini-3.1-pro-preview' | 'gemini-3.1-flash-image-preview' | 'gemini-3.1-flash-lite-preview' | 'gemini-2.0-pro-exp-02-05' | 'gemini-2.0-flash-exp' | (string & {}); declare const googleVertexTools: { googleSearch: _ai_sdk_provider_utils.ProviderToolFactory<{}, { [x: string]: unknown; searchTypes?: { webSearch?: Record<string, never> | undefined; imageSearch?: Record<string, never> | undefined; } | undefined; timeRangeFilter?: { startTime: string; endTime: string; } | undefined; }>; 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; /** * Creates a model for video generation. */ video(modelId: GoogleVertexVideoModelId): Experimental_VideoModelV3; /** * Creates a model for video generation. */ videoModel(modelId: GoogleVertexVideoModelId): Experimental_VideoModelV3; } 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 GoogleVertexEmbeddingModelOptions, type GoogleVertexImageModelOptions, type GoogleVertexImageModelOptions as GoogleVertexImageProviderOptions, type GoogleVertexProvider, type GoogleVertexProviderSettings, type GoogleVertexVideoModelId, type GoogleVertexVideoModelOptions, type GoogleVertexVideoModelOptions as GoogleVertexVideoProviderOptions, VERSION, createVertex, vertex };