UNPKG

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
/** * 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;