Add default configuration for assistants (#52)

This commit is contained in:
Thorsten Sommer authored and GitHub committed 2024-07-28 11:20:00 +02:00
1 parent a1c4618796
commit b3b8bf23dc
42 files changed
+729 -138

No files matched your search

@@ -0,0 +1,192 @@
using AIStudio.Components.Pages.Coding;
using AIStudio.Components.Pages.IconFinder;
using AIStudio.Components.Pages.TextSummarizer;
using AIStudio.Tools;
namespace AIStudio.Settings.DataModel;
/// <summary>
/// The data model for the settings file.
/// </summary>
public sealed class Data
{
/// <summary>
/// The version of the settings file. Allows us to upgrade the settings
/// when a new version is available.
/// </summary>
public Version Version { get; init; } = Version.V3;
/// <summary>
/// List of configured providers.
/// </summary>
public List<Provider> Providers { get; init; } = [];
/// <summary>
/// The next provider number to use.
/// </summary>
public uint NextProviderNum { get; set; } = 1;
#region App Settings
/// <summary>
/// Should we save energy? When true, we will update content streamed
/// from the server, i.e., AI, less frequently.
/// </summary>
public bool IsSavingEnergy { get; set; }
/// <summary>
/// Should we enable spellchecking for all input fields?
/// </summary>
public bool EnableSpellchecking { get; set; }
/// <summary>
/// If and when we should look for updates.
/// </summary>
public UpdateBehavior UpdateBehavior { get; set; } = UpdateBehavior.ONCE_STARTUP;
/// <summary>
/// The navigation behavior.
/// </summary>
public NavBehavior NavigationBehavior { get; set; } = NavBehavior.EXPAND_ON_HOVER;
#endregion
#region Chat Settings
/// <summary>
/// Shortcuts to send the input to the AI.
/// </summary>
public SendBehavior ShortcutSendBehavior { get; set; } = SendBehavior.MODIFER_ENTER_IS_SENDING;
#endregion
#region Workspace Settings
/// <summary>
/// The chat storage behavior.
/// </summary>
public WorkspaceStorageBehavior WorkspaceStorageBehavior { get; set; } = WorkspaceStorageBehavior.STORE_CHATS_AUTOMATICALLY;
/// <summary>
/// The chat storage maintenance behavior.
/// </summary>
public WorkspaceStorageTemporaryMaintenancePolicy WorkspaceStorageTemporaryMaintenancePolicy { get; set; } = WorkspaceStorageTemporaryMaintenancePolicy.DELETE_OLDER_THAN_90_DAYS;
#endregion
#region Assiatant: Icon Finder Settings
/// <summary>
/// Do we want to preselect any icon options?
/// </summary>
public bool PreselectIconOptions { get; set; }
/// <summary>
/// The preselected icon source.
/// </summary>
public IconSources PreselectedIconSource { get; set; }
/// <summary>
/// The preselected icon provider.
/// </summary>
public string PreselectedIconProvider { get; set; } = string.Empty;
#endregion
#region Assistant: Translation Settings
/// <summary>
/// The live translation interval for debouncing in milliseconds.
/// </summary>
public int LiveTranslationDebounceIntervalMilliseconds { get; set; } = 1_000;
/// <summary>
/// Do we want to preselect any translator options?
/// </summary>
public bool PreselectTranslationOptions { get; set; }
/// <summary>
/// Preselect the live translation?
/// </summary>
public bool PreselectLiveTranslation { get; set; }
/// <summary>
/// Preselect the target language?
/// </summary>
public CommonLanguages PreselectedTranslationTargetLanguage { get; set; } = CommonLanguages.EN_US;
/// <summary>
/// Preselect any other language?
/// </summary>
public string PreselectTranslationOtherLanguage { get; set; } = string.Empty;
/// <summary>
/// The preselected translator provider.
/// </summary>
public string PreselectedTranslationProvider { get; set; } = string.Empty;
#endregion
#region Assistant: Coding Settings
/// <summary>
/// Preselect any coding options?
/// </summary>
public bool PreselectCodingOptions { get; set; }
/// <summary>
/// Preselect the compiler messages?
/// </summary>
public bool PreselectCodingCompilerMessages { get; set; }
/// <summary>
/// Preselect the coding language for new contexts?
/// </summary>
public CommonCodingLanguages PreselectedCodingLanguage { get; set; }
/// <summary>
/// Do you want to preselect any other language?
/// </summary>
public string PreselectedCodingOtherLanguage { get; set; } = string.Empty;
/// <summary>
/// Which coding provider should be preselected?
/// </summary>
public string PreselectedCodingProvider { get; set; } = string.Empty;
#endregion
#region Assistant: Text Summarizer Settings
/// <summary>
/// Preselect any text summarizer options?
/// </summary>
public bool PreselectTextSummarizerOptions { get; set; }
/// <summary>
/// Preselect the target language?
/// </summary>
public CommonLanguages PreselectedTextSummarizerTargetLanguage { get; set; }
/// <summary>
/// Preselect any other language?
/// </summary>
public string PreselectedTextSummarizerOtherLanguage { get; set; } = string.Empty;
/// <summary>
/// Preselect the complexity?
/// </summary>
public Complexity PreselectedTextSummarizerComplexity { get; set; }
/// <summary>
/// Preselect any expertise in a field?
/// </summary>
public string PreselectedTextSummarizerExpertInField { get; set; } = string.Empty;
/// <summary>
/// Preselect a text summarizer provider?
/// </summary>
public string PreselectedTextSummarizerProvider { get; set; } = string.Empty;
#endregion
}
@@ -0,0 +1,9 @@
namespace AIStudio.Settings.DataModel;
public enum NavBehavior
{
EXPAND_ON_HOVER,
NEVER_EXPAND_USE_TOOLTIPS,
NEVER_EXPAND_NO_TOOLTIPS,
ALWAYS_EXPAND,
}
@@ -0,0 +1,28 @@
namespace AIStudio.Settings.DataModel;
/// <summary>
/// Possible behaviors for sending the input to the AI.
/// </summary>
public enum SendBehavior
{
/// <summary>
/// There is no shortcut to send the input to the AI. The user must click
/// the send button. The enter key adds a new line.
/// </summary>
NO_KEY_IS_SENDING,
/// <summary>
/// The user can send the input to the AI by pressing any modifier key
/// together with the enter key. Alternatively, the user can click the sent
/// button. The enter key alone adds a new line.
/// </summary>
MODIFER_ENTER_IS_SENDING,
/// <summary>
/// The user can send the input to the AI by pressing the enter key. In order
/// to add a new line, the user must press the shift key together with the
/// enter key. Alternatively, the user can click the send button to send the
/// input to the AI.
/// </summary>
ENTER_IS_SENDING,
}
@@ -0,0 +1,10 @@
namespace AIStudio.Settings.DataModel;
public enum UpdateBehavior
{
NO_CHECK,
ONCE_STARTUP,
HOURLY,
DAILY,
WEEKLY,
}
@@ -0,0 +1,9 @@
namespace AIStudio.Settings.DataModel;
public enum WorkspaceStorageBehavior
{
DISABLE_WORKSPACES,
STORE_CHATS_AUTOMATICALLY,
STORE_CHATS_MANUALLY,
}
@@ -0,0 +1,12 @@
namespace AIStudio.Settings.DataModel;
public enum WorkspaceStorageTemporaryMaintenancePolicy
{
NO_AUTOMATIC_MAINTENANCE,
DELETE_OLDER_THAN_7_DAYS,
DELETE_OLDER_THAN_30_DAYS,
DELETE_OLDER_THAN_90_DAYS,
DELETE_OLDER_THAN_180_DAYS,
DELETE_OLDER_THAN_365_DAYS,
}