Files
aidio-description/src/providers/vision/visionProviderFactory.ts
2025-06-10 19:24:13 +02:00

31 lines
1.1 KiB
TypeScript

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.`);
}
}
}