import { VisionProvider } from '../../interfaces'; import { Config } from '../../config/config'; import { OpenAIVisionProvider } from './openAIVisionProvider'; import { GeminiVisionProvider } from './geminiVisionProvider'; import { OllamaVisionProvider } from './ollamaVisionProvider'; /** * Factory for creating vision AI providers */ export class VisionProviderFactory { static getProvider(config: Config): VisionProvider { const providerName = config.visionProvider; const providerConfig = config.visionProviders[providerName]; if (!providerConfig) { throw new Error(`Vision provider "${providerName}" not configured.`); } switch (providerName) { case 'openai': return new OpenAIVisionProvider(providerConfig); case 'gemini': return new GeminiVisionProvider(providerConfig); case "ollama": return new OllamaVisionProvider(providerConfig); // Add other providers here default: throw new Error(`Vision provider "${providerName}" not implemented.`); } } }