diff --git a/src/AI/Service.cs b/src/AI/Service.cs index e36bc15b..ebf9170e 100644 --- a/src/AI/Service.cs +++ b/src/AI/Service.cs @@ -2,7 +2,6 @@ using System.ClientModel; using System.Collections.Generic; using System.Text.Json.Serialization; -using System.Threading.Tasks; using Azure.AI.OpenAI; using CommunityToolkit.Mvvm.ComponentModel; using OpenAI; @@ -55,7 +54,7 @@ namespace SourceGit.AI set; } = string.Empty; - public async Task> FetchAvailableModelsAsync() + public void FetchAvailableModels() { var allModels = GetOpenAIClient().GetOpenAIModelClient().GetModels(); AvailableModels = new List(); @@ -71,8 +70,6 @@ namespace SourceGit.AI { Model = null; } - - return AvailableModels; } public ChatClient GetChatClient() diff --git a/src/App.axaml.cs b/src/App.axaml.cs index 44dbc977..c2f03f7f 100644 --- a/src/App.axaml.cs +++ b/src/App.axaml.cs @@ -547,6 +547,7 @@ namespace SourceGit var pref = ViewModels.Preferences.Instance; pref.SetCanModify(); + pref.UpdateAvailableAIModels(); _launcher = new ViewModels.Launcher(startupRepo); desktop.MainWindow = new Views.Launcher() { DataContext = _launcher }; diff --git a/src/ViewModels/Preferences.cs b/src/ViewModels/Preferences.cs index 04ffbeb9..c68f5559 100644 --- a/src/ViewModels/Preferences.cs +++ b/src/ViewModels/Preferences.cs @@ -629,19 +629,22 @@ namespace SourceGit.ViewModels RemoveInvalidRepositoriesRecursive(RepositoryNodes); } - public async Task UpdateAvailableAIModelsAsync() + public void UpdateAvailableAIModels() { - foreach (var service in OpenAIServices) + Task.Run(() => { - try + foreach (var service in OpenAIServices) { - await service.FetchAvailableModelsAsync(); + try + { + service.FetchAvailableModels(); + } + catch + { + // Ignore errors. + } } - catch - { - // Ignore errors. - } - } + }); } public void Save() diff --git a/src/Views/Launcher.axaml.cs b/src/Views/Launcher.axaml.cs index fb295c55..0c8b32c5 100644 --- a/src/Views/Launcher.axaml.cs +++ b/src/Views/Launcher.axaml.cs @@ -106,7 +106,7 @@ namespace SourceGit.Views Activate(); } - protected override async void OnOpened(EventArgs e) + protected override void OnOpened(EventArgs e) { base.OnOpened(e); @@ -114,8 +114,6 @@ namespace SourceGit.Views var state = preferences.Layout.LauncherWindowState; if (state == WindowState.Maximized || state == WindowState.FullScreen) WindowState = WindowState.Maximized; - - await preferences.UpdateAvailableAIModelsAsync(); } protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) diff --git a/src/Views/Preferences.axaml.cs b/src/Views/Preferences.axaml.cs index 28cdf901..3c9c2e3f 100644 --- a/src/Views/Preferences.axaml.cs +++ b/src/Views/Preferences.axaml.cs @@ -206,7 +206,7 @@ namespace SourceGit.Views } var preferences = ViewModels.Preferences.Instance; - await preferences.UpdateAvailableAIModelsAsync(); + preferences.UpdateAvailableAIModels(); preferences.Save(); }