simple-ai-provider
Version:
A simple and extensible AI provider package for easy integration of multiple AI services
31 lines (30 loc) • 1.74 kB
TypeScript
/**
* Factory utilities for creating AI providers.
*/
import { ClaudeProvider, type ClaudeConfig } from '../providers/claude.js';
import { OpenAIProvider, type OpenAIConfig } from '../providers/openai.js';
import { GeminiProvider, type GeminiConfig } from '../providers/gemini.js';
import { OpenWebUIProvider, type OpenWebUIConfig } from '../providers/openwebui.js';
import { ClaudeCodeProvider, type ClaudeCodeConfig } from '../providers/claude-code.js';
import { BaseAIProvider } from '../providers/base.js';
export declare const PROVIDER_REGISTRY: {
readonly claude: typeof ClaudeProvider;
readonly openai: typeof OpenAIProvider;
readonly gemini: typeof GeminiProvider;
readonly openwebui: typeof OpenWebUIProvider;
readonly 'claude-code': typeof ClaudeCodeProvider;
};
export type ProviderType = keyof typeof PROVIDER_REGISTRY;
export interface ProviderConfigMap {
claude: ClaudeConfig;
openai: OpenAIConfig;
gemini: GeminiConfig;
openwebui: OpenWebUIConfig;
'claude-code': ClaudeCodeConfig;
}
export declare function createProvider<T extends ProviderType>(type: T, config: ProviderConfigMap[T]): BaseAIProvider;
export declare function createClaudeProvider(apiKey: string, options?: Partial<Omit<ClaudeConfig, 'apiKey'>>): ClaudeProvider;
export declare function createOpenAIProvider(apiKey: string, options?: Partial<Omit<OpenAIConfig, 'apiKey'>>): OpenAIProvider;
export declare function createGeminiProvider(apiKey: string, options?: Partial<Omit<GeminiConfig, 'apiKey'>>): GeminiProvider;
export declare function createOpenWebUIProvider(config: OpenWebUIConfig): OpenWebUIProvider;
export declare function createClaudeCodeProvider(options?: Partial<ClaudeCodeConfig>): ClaudeCodeProvider;