UNPKG

@nomyx/assistant

Version:

A powerful assistant library and cli for your AI projects. works with Vertex AI (Claude and Gemini)

44 lines (43 loc) 1.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AIProviderFactory = void 0; class AIProviderFactory { constructor(logger) { this.logger = logger; this.providerCache = new Map(); } createProvider(config) { const cacheKey = `${config.type}-${config.apiKey}`; if (this.providerCache.has(cacheKey)) { return this.providerCache.get(cacheKey); } let provider; switch (config.type) { case 'openai': const { OpenAIProvider } = require('./providers/OpenAIProvider'); provider = new OpenAIProvider(config, this.logger); break; case 'anthropic': const { AnthropicProvider } = require('./providers/AnthropicProvider'); provider = new AnthropicProvider(config, this.logger); break; case 'azure': const { AzureProvider } = require('./providers/AzureProvider'); provider = new AzureProvider(config, this.logger); break; case 'vertex': const { VertexProvider } = require('./providers/VertexProvider'); provider = new VertexProvider(config, this.logger); break; case 'openrouter': const { OpenRouterProvider } = require('./providers/OpenRouterProvider'); provider = new OpenRouterProvider(config, this.logger); break; default: throw new Error(`Unsupported AI provider type: ${config.type}`); } this.providerCache.set(cacheKey, provider); return provider; } } exports.AIProviderFactory = AIProviderFactory;