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.

282 lines (276 loc) 10.7 kB
import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils'; import { Resolvable, FetchFunction } from '@ai-sdk/provider-utils'; import { ProviderV3, LanguageModelV3 } from '@ai-sdk/provider'; interface GoogleCredentials { /** * The client email for the Google Cloud service account. Defaults to the * value of the `GOOGLE_CLIENT_EMAIL` environment variable. */ clientEmail: string; /** * The private key for the Google Cloud service account. Defaults to the * value of the `GOOGLE_PRIVATE_KEY` environment variable. */ privateKey: string; /** * Optional. The private key ID for the Google Cloud service account. Defaults * to the value of the `GOOGLE_PRIVATE_KEY_ID` environment variable. */ privateKeyId?: string; } type GoogleVertexAnthropicMessagesModelId = 'claude-opus-4-7' | 'claude-opus-4-6' | 'claude-sonnet-4-6' | 'claude-opus-4-5@20251101' | 'claude-sonnet-4-5@20250929' | 'claude-opus-4-1@20250805' | 'claude-opus-4@20250514' | 'claude-sonnet-4@20250514' | 'claude-3-7-sonnet@20250219' | 'claude-3-5-sonnet-v2@20241022' | 'claude-3-5-haiku@20241022' | 'claude-3-5-sonnet@20240620' | 'claude-3-haiku@20240307' | 'claude-3-sonnet@20240229' | 'claude-3-opus@20240229' | (string & {}); /** * Tools supported by Google Vertex Anthropic. * This is a subset of the full Anthropic tools - only these are recognized by the Vertex API. */ declare const vertexAnthropicTools: { /** * The bash tool enables Claude to execute shell commands in a persistent bash session, * allowing system operations, script execution, and command-line automation. * * Image results are supported. */ bash_20241022: _ai_sdk_provider_utils.ProviderToolFactory<{ command: string; restart?: boolean; }, {}>; /** * The bash tool enables Claude to execute shell commands in a persistent bash session, * allowing system operations, script execution, and command-line automation. * * Image results are supported. */ bash_20250124: _ai_sdk_provider_utils.ProviderToolFactory<{ command: string; restart?: boolean; }, {}>; /** * Claude can use an Anthropic-defined text editor tool to view and modify text files, * helping you debug, fix, and improve your code or other text documents. * * Supported models: Claude Sonnet 3.5 */ textEditor_20241022: _ai_sdk_provider_utils.ProviderToolFactory<{ command: "view" | "create" | "str_replace" | "insert" | "undo_edit"; path: string; file_text?: string; insert_line?: number; new_str?: string; insert_text?: string; old_str?: string; view_range?: number[]; }, {}>; /** * Claude can use an Anthropic-defined text editor tool to view and modify text files, * helping you debug, fix, and improve your code or other text documents. * * Supported models: Claude Sonnet 3.7 */ textEditor_20250124: _ai_sdk_provider_utils.ProviderToolFactory<{ command: "view" | "create" | "str_replace" | "insert" | "undo_edit"; path: string; file_text?: string; insert_line?: number; new_str?: string; insert_text?: string; old_str?: string; view_range?: number[]; }, {}>; /** * Claude can use an Anthropic-defined text editor tool to view and modify text files. * Note: This version does not support the "undo_edit" command. * @deprecated Use textEditor_20250728 instead */ textEditor_20250429: _ai_sdk_provider_utils.ProviderToolFactory<{ command: "view" | "create" | "str_replace" | "insert"; path: string; file_text?: string; insert_line?: number; new_str?: string; insert_text?: string; old_str?: string; view_range?: number[]; }, {}>; /** * Claude can use an Anthropic-defined text editor tool to view and modify text files. * Note: This version does not support the "undo_edit" command and adds optional max_characters parameter. * Supported models: Claude Sonnet 4, Opus 4, and Opus 4.1 */ textEditor_20250728: (args?: Parameters<_ai_sdk_provider_utils.ProviderToolFactory<{ command: "view" | "create" | "str_replace" | "insert"; path: string; file_text?: string; insert_line?: number; new_str?: string; insert_text?: string; old_str?: string; view_range?: number[]; }, { maxCharacters?: number; }>>[0]) => _ai_sdk_provider_utils.Tool<{ command: "view" | "create" | "str_replace" | "insert"; path: string; file_text?: string; insert_line?: number; new_str?: string; insert_text?: string; old_str?: string; view_range?: number[]; }, unknown>; /** * Claude can interact with computer environments through the computer use tool, which * provides screenshot capabilities and mouse/keyboard control for autonomous desktop interaction. * * Image results are supported. */ computer_20241022: _ai_sdk_provider_utils.ProviderToolFactory<{ action: "key" | "type" | "mouse_move" | "left_click" | "left_click_drag" | "right_click" | "middle_click" | "double_click" | "screenshot" | "cursor_position"; coordinate?: number[]; text?: string; }, { displayWidthPx: number; displayHeightPx: number; displayNumber?: number; }>; /** * Creates a web search tool that gives Claude direct access to real-time web content. */ webSearch_20250305: (args?: Parameters<_ai_sdk_provider_utils.ProviderToolFactoryWithOutputSchema<{ query: string; }, { type: "web_search_result"; url: string; title: string | null; pageAge: string | null; encryptedContent: string; }[], { maxUses?: number; allowedDomains?: string[]; blockedDomains?: string[]; userLocation?: { type: "approximate"; city?: string; region?: string; country?: string; timezone?: string; }; }>>[0]) => _ai_sdk_provider_utils.Tool<{ query: string; }, { type: "web_search_result"; url: string; title: string | null; pageAge: string | null; encryptedContent: string; }[]>; /** * Creates a tool search tool that uses regex patterns to find tools. * * The tool search tool enables Claude to work with hundreds or thousands of tools * by dynamically discovering and loading them on-demand. * * Use `providerOptions: { anthropic: { deferLoading: true } }` on other tools * to mark them for deferred loading. */ toolSearchRegex_20251119: (args?: Parameters<_ai_sdk_provider_utils.ProviderToolFactoryWithOutputSchema<{ pattern: string; limit?: number; }, { type: "tool_reference"; toolName: string; }[], {}>>[0]) => _ai_sdk_provider_utils.Tool<{ pattern: string; limit?: number; }, { type: "tool_reference"; toolName: string; }[]>; /** * Creates a tool search tool that uses BM25 (natural language) to find tools. * * The tool search tool enables Claude to work with hundreds or thousands of tools * by dynamically discovering and loading them on-demand. * * Use `providerOptions: { anthropic: { deferLoading: true } }` on other tools * to mark them for deferred loading. */ toolSearchBm25_20251119: (args?: Parameters<_ai_sdk_provider_utils.ProviderToolFactoryWithOutputSchema<{ query: string; limit?: number; }, { type: "tool_reference"; toolName: string; }[], {}>>[0]) => _ai_sdk_provider_utils.Tool<{ query: string; limit?: number; }, { type: "tool_reference"; toolName: string; }[]>; }; interface GoogleVertexAnthropicProvider extends ProviderV3 { /** * Creates a model for text generation. */ (modelId: GoogleVertexAnthropicMessagesModelId): LanguageModelV3; /** * Creates a model for text generation. */ languageModel(modelId: GoogleVertexAnthropicMessagesModelId): LanguageModelV3; /** * Anthropic tools supported by Google Vertex. * Note: Only a subset of Anthropic tools are available on Vertex. * Supported tools: bash_20241022, bash_20250124, textEditor_20241022, * textEditor_20250124, textEditor_20250429, textEditor_20250728, * computer_20241022, webSearch_20250305, toolSearchRegex_20251119, * toolSearchBm25_20251119 */ tools: typeof vertexAnthropicTools; /** * @deprecated Use `embeddingModel` instead. */ textEmbeddingModel(modelId: string): never; } interface GoogleVertexAnthropicProviderSettings$1 { /** * Google Cloud project ID. Defaults to the value of the `GOOGLE_VERTEX_PROJECT` environment variable. */ project?: string; /** * Google Cloud region. Defaults to the value of the `GOOGLE_VERTEX_LOCATION` environment variable. */ location?: string; /** * Use a different URL prefix for API calls, e.g. to use proxy servers. * The default prefix is `https://api.anthropic.com/v1`. */ baseURL?: string; /** * Custom headers to include in the requests. */ 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; } interface GoogleVertexAnthropicProviderSettings extends GoogleVertexAnthropicProviderSettings$1 { /** * Optional. The Google credentials for the Google Cloud service account. If * not provided, the Google Vertex provider will use environment variables to * load the credentials. */ googleCredentials?: GoogleCredentials; /** * Optional. Override the Bearer token generator. Defaults to OAuth exchange * with `googleCredentials`. */ generateAuthToken?: () => Promise<string>; } declare function createVertexAnthropic(options?: GoogleVertexAnthropicProviderSettings): GoogleVertexAnthropicProvider; /** * Default Google Vertex AI Anthropic provider instance. */ declare const vertexAnthropic: GoogleVertexAnthropicProvider; export { type GoogleVertexAnthropicProvider, type GoogleVertexAnthropicProviderSettings, createVertexAnthropic, vertexAnthropic };