getProvider method
Gets a specific LLM provider by name.
Implementation
Future<LLMProvider?> getProvider(String providerName) async {
final config = await _configService.loadConfig();
LLMProvider? provider;
switch (providerName.toLowerCase()) {
case 'openai':
if (config.openaiKey == null) return null;
provider = OpenAIProvider(
apiKey: config.openaiKey!,
modelName:
config.openaiModel ?? OpenAIProvider(apiKey: '').defaultModel,
);
break;
case 'claude':
if (config.claudeKey == null) return null;
provider = ClaudeProvider(
apiKey: config.claudeKey!,
modelName:
config.claudeModel ?? ClaudeProvider(apiKey: '').defaultModel,
);
break;
case 'gemini':
if (config.geminiKey == null) return null;
provider = GeminiProvider(
apiKey: config.geminiKey!,
modelName:
config.geminiModel ?? GeminiProvider(apiKey: '').defaultModel,
);
break;
default:
return null;
}
// Wrap with caching if enabled
if (_cachingEnabled && _cache != null) {
return CachedLLMProvider(delegate: provider, cache: _cache!);
}
return provider;
}