UNPKG

@agenite/bedrock

Version:
86 lines (82 loc) 4.22 kB
import { BaseLLMConfig, BaseLLMProvider, BaseMessage, GenerateOptions, PartialReturn, GenerateResponse } from '@agenite/llm'; import { BedrockRuntimeClientConfig, ConverseCommandInput, ConverseStreamCommandInput } from '@aws-sdk/client-bedrock-runtime'; /** * Bedrock Tool type */ interface BedrockTool { name: string; description: string; parameters: { type: 'object'; properties: Record<string, unknown>; required?: string[]; }; } /** * Available Bedrock model types */ type BedrockModel = 'ai21.jamba-1-5-large-v1:0' | 'ai21.jamba-1-5-mini-v1:0' | 'amazon.nova-canvas-v1:0' | 'amazon.nova-lite-v1:0' | 'amazon.nova-micro-v1:0' | 'amazon.nova-pro-v1:0' | 'amazon.nova-reel-v1:0' | 'amazon.rerank-v1:0' | 'amazon.titan-embed-text-v1' | 'amazon.titan-image-generator-v2:0' | 'amazon.titan-image-generator-v1' | 'amazon.titan-embed-image-v1' | 'amazon.titan-embed-text-v2:0' | 'amazon.titan-text-express-v1' | 'amazon.titan-text-lite-v1' | 'amazon.titan-text-premier-v1:0' | 'anthropic.claude-3-haiku-20240307-v1:0' | 'anthropic.claude-3-opus-20240229-v1:0' | 'anthropic.claude-3-sonnet-20240229-v1:0' | 'anthropic.claude-3-5-haiku-20241022-v1:0' | 'anthropic.claude-3-5-sonnet-20241022-v2:0' | 'anthropic.claude-3-5-sonnet-20240620-v1:0' | 'anthropic.claude-3-7-sonnet-20250219-v1:0' | 'cohere.command-light-text-v14' | 'cohere.command-r-plus-v1:0' | 'cohere.command-r-v1:0' | 'cohere.command-text-v14' | 'cohere.embed-english-v3' | 'cohere.embed-multilingual-v3' | 'cohere.rerank-v3-5:0' | 'luma.ray-v2:0' | 'meta.llama3-8b-instruct-v1:0' | 'meta.llama3-70b-instruct-v1:0' | 'meta.llama3-1-8b-instruct-v1:0' | 'meta.llama3-1-70b-instruct-v1:0' | 'meta.llama3-1-405b-instruct-v1:0' | 'meta.llama3-2-1b-instruct-v1:0' | 'meta.llama3-2-3b-instruct-v1:0' | 'meta.llama3-2-11b-instruct-v1:0' | 'meta.llama3-2-90b-instruct-v1:0' | 'meta.llama3-3-70b-instruct-v1:0' | 'mistral.mistral-7b-instruct-v0:2' | 'mistral.mistral-large-2402-v1:0' | 'mistral.mistral-large-2407-v1:0' | 'mistral.mistral-small-2402-v1:0' | 'mistral.mixtral-8x7b-instruct-v0:1' | 'stability.sd3-5-large-v1:0' | (string & {}); /** * Bedrock-specific configuration options */ interface BedrockConfig extends BaseLLMConfig { /** * AWS Region for Bedrock service * @default us-west-2 */ region?: string; /** * Model ID to use * @default anthropic.claude-3-sonnet-20240229-v1:0 */ model?: BedrockModel; /** * Default temperature for generation */ temperature?: number; /** * Default maximum tokens for generation */ maxTokens?: number; /** * AWS credentials configuration */ credentials?: { accessKeyId: string; secretAccessKey: string; sessionToken?: string; }; bedrockClientConfig?: Partial<BedrockRuntimeClientConfig>; converseCommandConfig?: Partial<ConverseCommandInput> | Partial<ConverseStreamCommandInput>[]; /** * @deprecated use enableThinking instead */ enableReasoning?: boolean; /** * Reasoning budget tokens */ reasoningBudgetTokens?: number; } type BedrockStopReason = 'max_tokens' | 'stop_sequence' | 'end_turn' | 'tool_use' | 'content_filtered' | 'guardrail_intervened' | null; declare class BedrockProvider extends BaseLLMProvider { private client; private config; private toolAdapter; readonly name = "Bedrock"; readonly version = "1.0"; constructor(config: BedrockConfig); private createRequestBody; private handleError; private createGenerateResponse; private handleStreamEvent; private handleContentBlockStart; private handleContentBlockDelta; private handleTextDelta; private handleReasoningDelta; private handleToolUseDelta; private handleContentBlockStop; private handleTextBlockStart; stream(input: string | BaseMessage[], options?: Partial<GenerateOptions>): AsyncGenerator<PartialReturn, GenerateResponse, unknown>; generate(input: string | BaseMessage[], options?: Partial<GenerateOptions>): Promise<GenerateResponse>; } export { type BedrockConfig, type BedrockModel, BedrockProvider, type BedrockStopReason, type BedrockTool };