mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-10-05 10:09:40 +00:00
Remember chat provider (#217)
This commit is contained in:
1 parent
ba6b8d2b3c
commit
0d104f5abc
10 files changed
+120
-9
No files matched your search
@@ -25,6 +25,19 @@ public readonly record struct ConfigurationSelectData<T>(string Name, T Value);
|
||||
/// </summary>
|
||||
public static class ConfigurationSelectDataFactory
|
||||
{
|
||||
public static IEnumerable<ConfigurationSelectData<LoadingChatProviderBehavior>> GetLoadingChatProviderBehavior()
|
||||
{
|
||||
yield return new("When possible, use the LLM provider which was used for each chat in the first place", LoadingChatProviderBehavior.USE_CHAT_PROVIDER_IF_AVAILABLE);
|
||||
yield return new("Use the latest LLM provider, which was used before; use the default chat provider initially", LoadingChatProviderBehavior.ALWAYS_USE_LATEST_CHAT_PROVIDER);
|
||||
yield return new("Always use the default chat provider when loading chats", LoadingChatProviderBehavior.ALWAYS_USE_DEFAULT_CHAT_PROVIDER);
|
||||
}
|
||||
|
||||
public static IEnumerable<ConfigurationSelectData<AddChatProviderBehavior>> GetAddChatProviderBehavior()
|
||||
{
|
||||
yield return new("Use the latest LLM provider, which was used before; use the default chat provider initially", AddChatProviderBehavior.ADDED_CHATS_USE_LATEST_PROVIDER);
|
||||
yield return new("Always use the default chat provider for new chats", AddChatProviderBehavior.ADDED_CHATS_USE_DEFAULT_PROVIDER);
|
||||
}
|
||||
|
||||
public static IEnumerable<ConfigurationSelectData<SendBehavior>> GetSendBehaviorData()
|
||||
{
|
||||
yield return new("No key is sending the input", SendBehavior.NO_KEY_IS_SENDING);
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace AIStudio.Settings.DataModel;
|
||||
|
||||
public enum AddChatProviderBehavior
|
||||
{
|
||||
ADDED_CHATS_USE_DEFAULT_PROVIDER = 0,
|
||||
ADDED_CHATS_USE_LATEST_PROVIDER,
|
||||
}
|
||||
@@ -7,6 +7,16 @@ public sealed class DataChat
|
||||
/// </summary>
|
||||
public SendBehavior ShortcutSendBehavior { get; set; } = SendBehavior.ENTER_IS_SENDING;
|
||||
|
||||
/// <summary>
|
||||
/// Defines the provider behavior for loading a chat.
|
||||
/// </summary>
|
||||
public LoadingChatProviderBehavior LoadingProviderBehavior { get; set; } = LoadingChatProviderBehavior.USE_CHAT_PROVIDER_IF_AVAILABLE;
|
||||
|
||||
/// <summary>
|
||||
/// Defines the provider behavior when adding a chat.
|
||||
/// </summary>
|
||||
public AddChatProviderBehavior AddChatProviderBehavior { get; set; } = AddChatProviderBehavior.ADDED_CHATS_USE_LATEST_PROVIDER;
|
||||
|
||||
/// <summary>
|
||||
/// Preselect any chat options?
|
||||
/// </summary>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
namespace AIStudio.Settings.DataModel;
|
||||
|
||||
public enum LoadingChatProviderBehavior
|
||||
{
|
||||
USE_CHAT_PROVIDER_IF_AVAILABLE = 0,
|
||||
ALWAYS_USE_DEFAULT_CHAT_PROVIDER,
|
||||
ALWAYS_USE_LATEST_CHAT_PROVIDER,
|
||||
}
|
||||
@@ -131,7 +131,7 @@ public sealed class SettingsManager(ILogger<SettingsManager> logger)
|
||||
return minimumLevel;
|
||||
}
|
||||
|
||||
public Provider GetPreselectedProvider(Tools.Components component)
|
||||
public Provider GetPreselectedProvider(Tools.Components component, string? chatProviderId = null)
|
||||
{
|
||||
var minimumLevel = this.GetMinimumConfidenceLevel(component);
|
||||
|
||||
@@ -139,6 +139,14 @@ public sealed class SettingsManager(ILogger<SettingsManager> logger)
|
||||
if (this.ConfigurationData.Providers.Count == 1 && this.ConfigurationData.Providers[0].UsedLLMProvider.GetConfidence(this).Level >= minimumLevel)
|
||||
return this.ConfigurationData.Providers[0];
|
||||
|
||||
// When there is a chat provider, and it has a confidence level that is high enough, we return it:
|
||||
if (chatProviderId is not null && !string.IsNullOrWhiteSpace(chatProviderId))
|
||||
{
|
||||
var chatProvider = this.ConfigurationData.Providers.FirstOrDefault(x => x.Id == chatProviderId);
|
||||
if (chatProvider.UsedLLMProvider.GetConfidence(this).Level >= minimumLevel)
|
||||
return chatProvider;
|
||||
}
|
||||
|
||||
// When there is a component-preselected provider, and it has a confidence level that is high enough, we return it:
|
||||
var preselectedProvider = component.PreselectedProvider(this);
|
||||
if(preselectedProvider != default && preselectedProvider.UsedLLMProvider.GetConfidence(this).Level >= minimumLevel)
|
||||
|
||||
Reference in new issue
Block a user