ai-switcher
Version:
A package which helps you switch between AI APIs using configurations, so that code changes are not required.
55 lines (49 loc) • 1.13 kB
text/typescript
// src/types.ts
export type Provider = 'anthropic' | 'openai';
export interface ModelConfig {
provider: Provider;
modelId: string;
maxTokens?: number;
temperature?: number;
}
export interface Message {
role: 'system' | 'user' | 'assistant';
content: string;
}
export interface AIClientConfig {
defaultProvider?: Provider;
defaultModel?: string;
anthropicApiKey?: string;
openaiApiKey?: string;
}
export interface CompletionOptions {
model?: string;
provider?: Provider;
maxTokens?: number;
temperature?: number;
responseFormat?: 'text' | 'json';
topP?: number;
frequencyPenalty?: number;
presencePenalty?: number;
stop?: string[];
seed?: number;
}
export class AIError extends Error {
constructor(
message: string,
public provider: Provider,
public statusCode?: number,
public raw?: any
) {
super(message);
this.name = 'AIError';
}
}
export enum AIErrorCode {
INVALID_API_KEY = 'invalid_api_key',
RATE_LIMIT = 'rate_limit',
CONTEXT_LENGTH = 'context_length',
BAD_REQUEST = 'bad_request',
SERVER_ERROR = 'server_error',
TIMEOUT = 'timeout'
}