using System.Linq.Expressions; using AIStudio.Provider; namespace AIStudio.Settings.DataModel; /// /// Stores the default options for the Prompt Optimizer. /// /// The managed-configuration selector. public sealed class DataPromptOptimizer(Expression>? configSelection = null) { /// /// Initializes an unmanaged Prompt Optimizer settings instance. /// public DataPromptOptimizer() : this(null) { } /// /// Preselect prompt optimizer options? /// public bool PreselectOptions { get; set; } = ManagedConfiguration.Register(configSelection, value => value.PreselectOptions, false); /// /// Preselect the target language? /// public CommonLanguages PreselectedTargetLanguage { get; set; } = ManagedConfiguration.Register(configSelection, value => value.PreselectedTargetLanguage, CommonLanguages.AS_IS); /// /// Preselect a custom target language when "Other" is selected? /// public string PreselectedOtherLanguage { get; set; } = ManagedConfiguration.Register(configSelection, value => value.PreselectedOtherLanguage, string.Empty); /// /// Preselect important aspects for the optimization. /// public string PreselectedImportantAspects { get; set; } = ManagedConfiguration.Register(configSelection, value => value.PreselectedImportantAspects, string.Empty); /// /// The file with the prompt guide to preselect. An empty path preselects the default prompt guide. /// /// /// The path names a file of the user and therefore stays absolute. A configuration plugin may give /// a path relative to itself, which is resolved before it lands here. The assistant reads the /// current content of the file whenever it applies the preselections. /// public string PreselectedCustomPromptGuidePath { get; set; } = ManagedConfiguration.Register(configSelection, value => value.PreselectedCustomPromptGuidePath, string.Empty); /// /// The minimum confidence level required for a provider to be considered. /// public ConfidenceLevel MinimumProviderConfidence { get; set; } = ManagedConfiguration.Register(configSelection, value => value.MinimumProviderConfidence, ConfidenceLevel.NONE); /// /// Preselect a provider? /// public string PreselectedProvider { get; set; } = ManagedConfiguration.Register(configSelection, value => value.PreselectedProvider, string.Empty); }