UNPKG

@ai-sdk/amazon-bedrock

Version:
300 lines • 13.6 kB
import { LanguageModelV4, ModelEntry, ProviderV4 } from "@ai-sdk/provider"; import { FetchFunction, Resolvable } from "@ai-sdk/provider-utils"; import { anthropicTools } from "@ai-sdk/anthropic/internal"; //#region src/amazon-bedrock-sigv4-fetch.d.ts interface AmazonBedrockCredentials { region: string; accessKeyId: string; secretAccessKey: string; sessionToken?: string; } //#endregion //#region src/amazon-bedrock-model-catalog.d.ts declare const amazonBedrockImageModelCatalog: { 'amazon.nova-canvas-v1:0': { capabilities: { image: { sizes: { description: string; }; fileInput: true; maskInput: true; maxImagesPerCall: number; }; }; providerOptions: { image: { quality: true; negativeText: true; cfgScale: true; style: true; taskType: true; maskPrompt: true; outPaintingMode: true; similarityStrength: true; }; }; }; }; declare const languageModelIds: readonly ["amazon.titan-tg1-large", "amazon.titan-text-express-v1", "anthropic.claude-v2", "anthropic.claude-v2:1", "anthropic.claude-instant-v1", "anthropic.claude-sonnet-5", "anthropic.claude-sonnet-5-5", "anthropic.claude-haiku-5-5", "anthropic.claude-fable-5", "anthropic.claude-fable-5-1", "anthropic.claude-fable-5-2", "anthropic.claude-opus-5", "anthropic.claude-opus-5-5", "anthropic.claude-opus-4-8", "anthropic.claude-opus-4-7", "anthropic.claude-opus-4-6-v1", "anthropic.claude-sonnet-4-6-v1", "anthropic.claude-opus-4-5-20251101-v1:0", "anthropic.claude-haiku-4-5-20251001-v1:0", "anthropic.claude-sonnet-4-5-20250929-v1:0", "anthropic.claude-sonnet-4-20250514-v1:0", "anthropic.claude-opus-4-20250514-v1:0", "anthropic.claude-opus-4-1-20250805-v1:0", "anthropic.claude-3-7-sonnet-20250219-v1:0", "anthropic.claude-3-5-sonnet-20240620-v1:0", "anthropic.claude-3-5-sonnet-20241022-v2:0", "anthropic.claude-3-5-haiku-20241022-v1:0", "anthropic.claude-3-sonnet-20240229-v1:0", "anthropic.claude-3-haiku-20240307-v1:0", "anthropic.claude-3-opus-20240229-v1:0", "cohere.command-text-v14", "cohere.command-light-text-v14", "cohere.command-r-v1:0", "cohere.command-r-plus-v1:0", "meta.llama3-70b-instruct-v1:0", "meta.llama3-8b-instruct-v1:0", "meta.llama3-1-405b-instruct-v1:0", "meta.llama3-1-70b-instruct-v1:0", "meta.llama3-1-8b-instruct-v1:0", "meta.llama3-2-11b-instruct-v1:0", "meta.llama3-2-1b-instruct-v1:0", "meta.llama3-2-3b-instruct-v1:0", "meta.llama3-2-90b-instruct-v1:0", "mistral.mistral-7b-instruct-v0:2", "mistral.mixtral-8x7b-instruct-v0:1", "mistral.mistral-large-2402-v1:0", "mistral.mistral-small-2402-v1:0", "openai.gpt-oss-120b-1:0", "openai.gpt-oss-20b-1:0", "amazon.titan-text-lite-v1", "us.amazon.nova-premier-v1:0", "us.amazon.nova-pro-v1:0", "us.amazon.nova-micro-v1:0", "us.amazon.nova-lite-v1:0", "us.anthropic.claude-3-sonnet-20240229-v1:0", "us.anthropic.claude-3-opus-20240229-v1:0", "us.anthropic.claude-3-haiku-20240307-v1:0", "us.anthropic.claude-3-5-sonnet-20240620-v1:0", "us.anthropic.claude-3-5-haiku-20241022-v1:0", "us.anthropic.claude-3-5-sonnet-20241022-v2:0", "us.anthropic.claude-3-7-sonnet-20250219-v1:0", "us.anthropic.claude-sonnet-5", "us.anthropic.claude-sonnet-5-5", "us.anthropic.claude-haiku-5-5", "us.anthropic.claude-fable-5", "us.anthropic.claude-fable-5-1", "us.anthropic.claude-fable-5-2", "us.anthropic.claude-opus-5", "us.anthropic.claude-opus-5-5", "us.anthropic.claude-opus-4-8", "us.anthropic.claude-opus-4-7", "us.anthropic.claude-opus-4-6-v1", "us.anthropic.claude-sonnet-4-6-v1", "us.anthropic.claude-opus-4-5-20251101-v1:0", "us.anthropic.claude-sonnet-4-5-20250929-v1:0", "us.anthropic.claude-sonnet-4-20250514-v1:0", "us.anthropic.claude-opus-4-20250514-v1:0", "us.anthropic.claude-opus-4-1-20250805-v1:0", "us.anthropic.claude-haiku-4-5-20251001-v1:0", "global.anthropic.claude-fable-5-1", "global.anthropic.claude-fable-5-2", "us.meta.llama3-2-11b-instruct-v1:0", "us.meta.llama3-2-3b-instruct-v1:0", "us.meta.llama3-2-90b-instruct-v1:0", "us.meta.llama3-2-1b-instruct-v1:0", "us.meta.llama3-1-8b-instruct-v1:0", "us.meta.llama3-1-70b-instruct-v1:0", "us.meta.llama3-3-70b-instruct-v1:0", "us.deepseek.r1-v1:0", "us.mistral.pixtral-large-2502-v1:0", "us.meta.llama4-scout-17b-instruct-v1:0", "us.meta.llama4-maverick-17b-instruct-v1:0", "amazon.nova-2-lite-v1:0"]; declare const amazonBedrockEmbeddingModelEntries: { 'amazon.titan-embed-text-v1': ModelEntry; 'amazon.titan-embed-text-v2:0': ModelEntry; 'amazon.nova-embed-text-v2:0': ModelEntry; 'cohere.embed-english-v3': ModelEntry; 'cohere.embed-multilingual-v3': ModelEntry; 'cohere.embed-v4:0': ModelEntry; }; declare const amazonBedrockRerankingModelEntries: { 'amazon.rerank-v1:0': { capabilities: { reranking: { documents: { text: true; object: true; }; topN: true; }; }; providerOptions: { reranking: { nextToken: true; additionalModelRequestFields: true; }; }; }; 'cohere.rerank-v3-5:0': { capabilities: { reranking: { documents: { text: true; object: true; }; topN: true; }; }; providerOptions: { reranking: { nextToken: true; additionalModelRequestFields: true; }; }; }; }; /** Capabilities of the native Anthropic endpoint, distinct from Converse. */ declare const nativeAnthropicModels: { 'us.anthropic.claude-fable-5-1': { computerUse: boolean; reasoning: boolean; }; 'us.anthropic.claude-fable-5-2': { computerUse: boolean; reasoning: boolean; }; 'us.anthropic.claude-sonnet-5-5': { computerUse: boolean; reasoning: boolean; }; 'us.anthropic.claude-sonnet-5': { computerUse: boolean; reasoning: boolean; }; 'us.anthropic.claude-haiku-5-5': { computerUse: boolean; reasoning: boolean; }; 'us.anthropic.claude-fable-5': { computerUse: boolean; reasoning: boolean; }; 'us.anthropic.claude-opus-4-8': { computerUse: boolean; reasoning: boolean; }; 'us.anthropic.claude-opus-4-7': { computerUse: boolean; reasoning: boolean; }; 'us.anthropic.claude-opus-4-6-v1': { computerUse: boolean; reasoning: boolean; }; 'us.anthropic.claude-opus-4-5-20251101-v1:0': { computerUse: boolean; reasoning: boolean; }; 'us.anthropic.claude-sonnet-4-5-20250929-v1:0': { computerUse: boolean; reasoning: boolean; }; 'us.anthropic.claude-opus-4-20250514-v1:0': { computerUse: boolean; reasoning: boolean; }; 'us.anthropic.claude-sonnet-4-20250514-v1:0': { computerUse: boolean; reasoning: boolean; }; 'us.anthropic.claude-opus-4-1-20250805-v1:0': { computerUse: boolean; reasoning: boolean; }; 'us.anthropic.claude-haiku-4-5-20251001-v1:0': { computerUse: boolean; reasoning: boolean; }; 'us.anthropic.claude-3-5-sonnet-20241022-v2:0': { computerUse: boolean; reasoning: boolean; }; 'anthropic.claude-3-5-haiku-20241022-v1:0': undefined; 'anthropic.claude-3-5-sonnet-20240620-v1:0': undefined; 'anthropic.claude-3-5-sonnet-20241022-v2:0': undefined; 'anthropic.claude-3-7-sonnet-20250219-v1:0': undefined; 'anthropic.claude-3-haiku-20240307-v1:0': undefined; 'anthropic.claude-3-opus-20240229-v1:0': undefined; 'anthropic.claude-3-sonnet-20240229-v1:0': undefined; 'anthropic.claude-fable-5': undefined; 'anthropic.claude-fable-5-1': undefined; 'anthropic.claude-fable-5-2': undefined; 'anthropic.claude-haiku-4-5-20251001-v1:0': undefined; 'anthropic.claude-haiku-5-5': undefined; 'anthropic.claude-opus-4-1-20250805-v1:0': undefined; 'anthropic.claude-opus-4-20250514-v1:0': undefined; 'anthropic.claude-opus-4-5-20251101-v1:0': undefined; 'anthropic.claude-opus-4-6-v1': undefined; 'anthropic.claude-opus-4-7': undefined; 'anthropic.claude-opus-4-8': undefined; 'anthropic.claude-opus-5': undefined; 'anthropic.claude-opus-5-5': undefined; 'anthropic.claude-sonnet-4-20250514-v1:0': undefined; 'anthropic.claude-sonnet-4-5-20250929-v1:0': undefined; 'anthropic.claude-sonnet-4-6-v1': undefined; 'anthropic.claude-sonnet-5': undefined; 'anthropic.claude-sonnet-5-5': undefined; 'global.anthropic.claude-fable-5-1': undefined; 'global.anthropic.claude-fable-5-2': undefined; 'us.anthropic.claude-3-5-haiku-20241022-v1:0': undefined; 'us.anthropic.claude-3-5-sonnet-20240620-v1:0': undefined; 'us.anthropic.claude-3-7-sonnet-20250219-v1:0': undefined; 'us.anthropic.claude-3-haiku-20240307-v1:0': undefined; 'us.anthropic.claude-3-opus-20240229-v1:0': undefined; 'us.anthropic.claude-3-sonnet-20240229-v1:0': undefined; 'us.anthropic.claude-opus-5': undefined; 'us.anthropic.claude-opus-5-5': undefined; 'us.anthropic.claude-sonnet-4-6-v1': undefined; }; /** Endpoint availability documented for Mantle's known GPT-OSS models. */ declare const mantleModels: { readonly 'openai.gpt-oss-20b': { readonly chatCompletions: true; readonly responses: true; }; readonly 'openai.gpt-oss-120b': { readonly chatCompletions: true; readonly responses: true; }; readonly 'openai.gpt-oss-safeguard-20b': { readonly chatCompletions: true; readonly responses: false; }; readonly 'openai.gpt-oss-safeguard-120b': { readonly chatCompletions: true; readonly responses: false; }; }; /** Known model IDs, derived from the declarations used to build the catalog. */ type AmazonBedrockModelIds = { language: (typeof languageModelIds)[number]; embedding: keyof typeof amazonBedrockEmbeddingModelEntries; reranking: keyof typeof amazonBedrockRerankingModelEntries; image: keyof typeof amazonBedrockImageModelCatalog; anthropic: keyof typeof nativeAnthropicModels; mantleChat: keyof typeof mantleModels; mantleResponses: { [Id in keyof typeof mantleModels]: (typeof mantleModels)[Id]['responses'] extends true ? Id : never; }[keyof typeof mantleModels]; }; //#endregion //#region src/anthropic/amazon-bedrock-anthropic-options.d.ts type AmazonBedrockAnthropicModelId = AmazonBedrockModelIds['anthropic'] | (string & {}); //#endregion //#region src/anthropic/amazon-bedrock-anthropic-provider.d.ts interface AmazonBedrockAnthropicProvider extends ProviderV4 { /** * Creates a model for text generation. */ (modelId: AmazonBedrockAnthropicModelId): LanguageModelV4; /** * Creates a model for text generation. */ languageModel(modelId: AmazonBedrockAnthropicModelId): LanguageModelV4; /** * Anthropic-specific computer use tool. */ tools: typeof anthropicTools; /** * @deprecated Use `embeddingModel` instead. */ textEmbeddingModel(modelId: string): never; } interface AmazonBedrockAnthropicProviderSettings { /** * The AWS region to use for the Bedrock provider. Defaults to the value of the * `AWS_REGION` environment variable. */ region?: string; /** * API key for authenticating requests using Bearer token authentication. * A callback is resolved before each request and must return a non-empty key. * When provided, this will be used instead of AWS SigV4 authentication. * Defaults to the value of the `AWS_BEARER_TOKEN_BEDROCK` environment variable. */ apiKey?: Resolvable<string>; /** * The AWS access key ID to use for the Bedrock provider. Defaults to the value of the * `AWS_ACCESS_KEY_ID` environment variable. */ accessKeyId?: string; /** * The AWS secret access key to use for the Bedrock provider. Defaults to the value of the * `AWS_SECRET_ACCESS_KEY` environment variable. */ secretAccessKey?: string; /** * The AWS session token to use for the Bedrock provider. Defaults to the value of the * `AWS_SESSION_TOKEN` environment variable. */ sessionToken?: string; /** * Base URL for the Bedrock API calls. */ 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; /** * The AWS credential provider to use for the Bedrock provider to get dynamic * credentials similar to the AWS SDK. Setting a provider here will cause its * credential values to be used instead of the `accessKeyId`, `secretAccessKey`, * and `sessionToken` settings. */ credentialProvider?: () => PromiseLike<Omit<AmazonBedrockCredentials, 'region'>>; } /** * Create an Amazon Bedrock Anthropic provider instance. * This provider uses the native Anthropic API through Bedrock's InvokeModel endpoint, * bypassing the Converse API for better feature compatibility. */ export declare function createAmazonBedrockAnthropic(options?: AmazonBedrockAnthropicProviderSettings): AmazonBedrockAnthropicProvider; /** * Default Bedrock Anthropic provider instance. */ export declare const amazonBedrockAnthropic: AmazonBedrockAnthropicProvider; //#endregion export { type AmazonBedrockAnthropicModelId, type AmazonBedrockAnthropicModelId as BedrockAnthropicModelId, type AmazonBedrockAnthropicProvider, type AmazonBedrockAnthropicProvider as BedrockAnthropicProvider, type AmazonBedrockAnthropicProviderSettings, type AmazonBedrockAnthropicProviderSettings as BedrockAnthropicProviderSettings, amazonBedrockAnthropic as bedrockAnthropic, createAmazonBedrockAnthropic as createBedrockAnthropic }; //# sourceMappingURL=index.d.ts.map