31 lines
1.1 KiB
TypeScript
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.`);
|
|
}
|
|
}
|
|
} |