diff --git a/src/Managing.Application/LLM/LlmService.cs b/src/Managing.Application/LLM/LlmService.cs index 2b31df15..a01840b4 100644 --- a/src/Managing.Application/LLM/LlmService.cs +++ b/src/Managing.Application/LLM/LlmService.cs @@ -74,7 +74,7 @@ public class LlmService : ILlmService // BYOK: If user provides their own API key if (!string.IsNullOrWhiteSpace(request.ApiKey)) { - var requestedProvider = ParseProviderString(request.Provider) ?? LlmProvider.Claude; // Default to Claude for BYOK + var requestedProvider = ParseProviderString(request.Provider) ?? LlmProvider.Gemini; // Default to Gemini for BYOK var providerName = ConvertLlmProviderToString(requestedProvider); provider = CreateProviderWithCustomKey(requestedProvider, request.ApiKey); _logger.LogInformation("Using BYOK for provider: {Provider} for user: {UserId}", providerName, user.Id); @@ -143,7 +143,11 @@ public class LlmService : ILlmService private ILlmProvider SelectProvider() { - // Priority: OpenAI > Claude > Gemini + // Priority: Gemini > OpenAI > Claude + var geminiKey = ConvertLlmProviderToString(LlmProvider.Gemini); + if (_providers.TryGetValue(geminiKey, out var gemini)) + return gemini; + var openaiKey = ConvertLlmProviderToString(LlmProvider.OpenAI); if (_providers.TryGetValue(openaiKey, out var openai)) return openai; @@ -151,10 +155,6 @@ public class LlmService : ILlmService var claudeKey = ConvertLlmProviderToString(LlmProvider.Claude); if (_providers.TryGetValue(claudeKey, out var claude)) return claude; - - var geminiKey = ConvertLlmProviderToString(LlmProvider.Gemini); - if (_providers.TryGetValue(geminiKey, out var gemini)) - return gemini; throw new InvalidOperationException("No LLM providers are configured. Please add API keys to configuration."); }