UNPKG

@aituber-onair/core

Version:

Core library for AITuber OnAir providing voice synthesis and chat processing

61 lines 2.21 kB
import { OpenAIChatServiceProvider } from './providers/openai/OpenAIChatServiceProvider'; import { GeminiChatServiceProvider } from './providers/gemini/GeminiChatServiceProvider'; import { ClaudeChatServiceProvider } from './providers/claude/ClaudeChatServiceProvider'; /** * Chat service factory * Manages and creates various AI providers */ export class ChatServiceFactory { /** * Register a new provider * @param provider Provider instance */ static registerProvider(provider) { this.providers.set(provider.getProviderName(), provider); } /** * Create a chat service with the specified provider name and options * @param providerName Provider name * @param options Service options * @returns Created ChatService instance */ static createChatService(providerName, options) { const provider = this.providers.get(providerName); if (!provider) { throw new Error(`Unknown chat provider: ${providerName}`); } return provider.createChatService(options); } /** * Get registered providers * @returns Provider map */ static getProviders() { return this.providers; } /** * Get array of available provider names * @returns Array of provider names */ static getAvailableProviders() { return Array.from(this.providers.keys()); } /** * Get models supported by the specified provider * @param providerName Provider name * @returns Array of supported models, empty array if provider doesn't exist */ static getSupportedModels(providerName) { const provider = this.providers.get(providerName); return provider ? provider.getSupportedModels() : []; } } /** Map of registered providers */ ChatServiceFactory.providers = new Map(); // Register OpenAI as a provider ChatServiceFactory.registerProvider(new OpenAIChatServiceProvider()); // Register Gemini as a provider ChatServiceFactory.registerProvider(new GeminiChatServiceProvider()); // Register Claude as a provider ChatServiceFactory.registerProvider(new ClaudeChatServiceProvider()); //# sourceMappingURL=ChatServiceFactory.js.map