Implement LLM provider configuration and update user settings
- Added functionality to update the default LLM provider for users via a new endpoint in UserController. - Introduced LlmProvider enum to manage available LLM options: Auto, Gemini, OpenAI, and Claude. - Updated User and UserEntity models to include DefaultLlmProvider property. - Enhanced database context and migrations to support the new LLM provider configuration. - Integrated LLM services into the application bootstrap for dependency injection. - Updated TypeScript API client to include methods for managing LLM providers and chat requests.
This commit is contained in:
@@ -339,6 +339,22 @@ public class UserService : IUserService
|
||||
return user;
|
||||
}
|
||||
|
||||
public async Task<User> UpdateDefaultLlmProvider(User user, LlmProvider defaultLlmProvider)
|
||||
{
|
||||
user = await GetUserByName(user.Name);
|
||||
if (user.DefaultLlmProvider == defaultLlmProvider)
|
||||
return user;
|
||||
|
||||
// Update the default LLM provider on the provided user object
|
||||
user.DefaultLlmProvider = defaultLlmProvider;
|
||||
await _userRepository.SaveOrUpdateUserAsync(user);
|
||||
|
||||
_logger.LogInformation("Updated default LLM provider to {Provider} for user {UserId}",
|
||||
defaultLlmProvider, user.Id);
|
||||
|
||||
return user;
|
||||
}
|
||||
|
||||
public async Task<User> UpdateUserSettings(User user, UserSettingsDto settings)
|
||||
{
|
||||
user = await GetUserByName(user.Name);
|
||||
|
||||
Reference in New Issue
Block a user