mirror of
https://github.com/tuxdotrs/highminded.git
synced 2025-08-23 08:01:03 +05:30
refactor: cleaup and implemented mvvm
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.ClientModel;
|
||||
using highminded.models;
|
||||
using OpenAI;
|
||||
using OpenAI.Chat;
|
||||
|
||||
@@ -7,37 +8,45 @@ namespace highminded.utils;
|
||||
|
||||
public class InMemoryDb
|
||||
{
|
||||
internal ChatClient ChatClient;
|
||||
internal SettingsManager<AppSettings> SettingsManager;
|
||||
public static readonly InMemoryDb Obj = new InMemoryDb();
|
||||
|
||||
internal readonly SettingsManager<SettingsViewModel> SettingsManager;
|
||||
internal readonly MainViewModel MainViewModel;
|
||||
internal readonly ChatViewModel ChatViewModel;
|
||||
internal readonly SettingsViewModel SettingsViewModel;
|
||||
internal ChatClient? ChatClient;
|
||||
|
||||
// Initialize Singleton Class
|
||||
private InMemoryDb()
|
||||
{
|
||||
SettingsManager = new SettingsManager<AppSettings>();
|
||||
if (SettingsManager.Settings.ApiKey != null)
|
||||
SettingsManager = new SettingsManager<SettingsViewModel>();
|
||||
|
||||
MainViewModel = new MainViewModel();
|
||||
ChatViewModel = new ChatViewModel();
|
||||
SettingsViewModel = new SettingsViewModel();
|
||||
SettingsViewModel = SettingsManager.Settings;
|
||||
|
||||
if (SettingsManager.Settings.ApiKey != string.Empty)
|
||||
{
|
||||
InitOpenAIClient();
|
||||
InitOpenAiClient();
|
||||
}
|
||||
}
|
||||
|
||||
public void InitOpenAIClient()
|
||||
public void SaveSettings()
|
||||
{
|
||||
SettingsManager.Save();
|
||||
InitOpenAiClient();
|
||||
}
|
||||
|
||||
private void InitOpenAiClient()
|
||||
{
|
||||
ChatClient = new ChatClient(
|
||||
model: SettingsManager.Settings.Model,
|
||||
credential: new ApiKeyCredential(SettingsManager.Settings.ApiKey),
|
||||
options: new OpenAIClientOptions
|
||||
{
|
||||
Endpoint = new Uri(SettingsManager.Settings.ApiURL)
|
||||
Endpoint = new Uri(SettingsManager.Settings.ApiUrl)
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
public void SaveSettings(AppSettings settings)
|
||||
{
|
||||
SettingsManager.Settings = settings;
|
||||
SettingsManager.Save();
|
||||
InitOpenAIClient();
|
||||
}
|
||||
|
||||
public static readonly InMemoryDb Obj = new InMemoryDb();
|
||||
}
|
Reference in New Issue
Block a user