@thecodingwhale/cv-processor
Version:
CV Processor to extract structured data from PDF resumes using TypeScript
35 lines (34 loc) • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AIProviderFactory = void 0;
const AWSBedrockProvider_1 = require("./AWSBedrockProvider");
const AzureOpenAIProvider_1 = require("./AzureOpenAIProvider");
const GeminiAIProvider_1 = require("./GeminiAIProvider");
const GrokAIProvider_1 = require("./GrokAIProvider");
const OpenAIProvider_1 = require("./OpenAIProvider");
class AIProviderFactory {
/**
* Create an AI provider instance based on the specified type
*/
static createProvider(type, config) {
switch (type) {
case 'gemini':
return new GeminiAIProvider_1.GeminiAIProvider(config);
case 'openai':
return new OpenAIProvider_1.OpenAIProvider(config);
case 'azure':
if (!('endpoint' in config)) {
throw new Error('Azure OpenAI provider requires an endpoint');
}
return new AzureOpenAIProvider_1.AzureOpenAIProvider(config);
case 'grok':
return new GrokAIProvider_1.GrokAIProvider(config);
case 'aws':
return new AWSBedrockProvider_1.AWSBedrockProvider(config);
// Add more providers as needed
default:
throw new Error(`AI provider type ${type} not supported`);
}
}
}
exports.AIProviderFactory = AIProviderFactory;