llmforge
Version:
One API, every AI model, instant switching. Change from GPT-4 to Gemini to local models with a single config update. LLMForge is the lightweight, TypeScript-first solution for multi-provider AI applications with zero vendor lock-in.
29 lines • 1.2 kB
JavaScript
import { logger } from '../utils/logger';
export class Factory {
constructor(config) {
this.config = config;
}
async create() {
try {
const supportedProviders = ['openai', 'google', 'groq'];
const providerName = this.config.provider.toLowerCase();
if (!supportedProviders.includes(providerName)) {
throw new Error(`Provider '${providerName}' is not supported. Supported providers are: ${supportedProviders.join(', ')}`);
}
const classMap = {
openai: 'OpenAIClient',
google: 'GeminiClient',
groq: 'GroqClient',
};
const className = classMap[providerName];
const module = await import(`./${providerName}.adapter`);
const Client = module[className];
return new Client(this.config);
}
catch (error) {
logger.error(`Error creating client for provider '${this.config.provider}':`, error);
throw new Error(`Failed to create client for provider '${this.config.provider}': ${error.message}`);
}
}
}
//# sourceMappingURL=provider.factory.js.map