@agenite/bedrock
Version:
AWS Bedrock provider for Agenite
86 lines (82 loc) • 4.22 kB
text/typescript
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 };