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:
2026-01-03 21:55:55 +07:00
parent fb49190346
commit 6f55566db3
46 changed files with 7900 additions and 3 deletions

View File

@@ -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);