WIP typescript conversion
This commit is contained in:
31
src/providers/vision/visionProviderFactory.ts
Normal file
31
src/providers/vision/visionProviderFactory.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
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.`);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user