diff --git a/app/MindWork AI Studio/Assistants/Builder/AssistantBuilder.razor b/app/MindWork AI Studio/Assistants/Builder/AssistantBuilder.razor index c2951401..e7dee796 100644 --- a/app/MindWork AI Studio/Assistants/Builder/AssistantBuilder.razor +++ b/app/MindWork AI Studio/Assistants/Builder/AssistantBuilder.razor @@ -1,7 +1,7 @@ @attribute [Route(Routes.ASSISTANT_META_ASSISTANT)] @using AIStudio.Agents.AssistantAudit @using AIStudio.Tools.PluginSystem.Assistants.DataModel -@inherits AssistantBaseCore +@inherits AssistantBaseCore diff --git a/app/MindWork AI Studio/Assistants/Builder/AssistantBuilder.razor.cs b/app/MindWork AI Studio/Assistants/Builder/AssistantBuilder.razor.cs index 42482f07..3646d3f9 100644 --- a/app/MindWork AI Studio/Assistants/Builder/AssistantBuilder.razor.cs +++ b/app/MindWork AI Studio/Assistants/Builder/AssistantBuilder.razor.cs @@ -11,7 +11,7 @@ using DialogOptions = AIStudio.Dialogs.DialogOptions; namespace AIStudio.Assistants.Builder; -public partial class AssistantBuilder : AssistantBaseCore +public partial class AssistantBuilder : AssistantBaseCore { [Inject] private IDialogService DialogService { get; init; } = null!; @@ -64,7 +64,6 @@ public partial class AssistantBuilder : AssistantBaseCore protected override bool ShowProfileSelection => false; protected override bool ShowCopyResult => this.step is BuilderStep.DONE; - protected override bool HasSettingsPanel => false; protected override Func Result2Copy => () => !string.IsNullOrWhiteSpace(this.generatedLuaAssistant) ? this.generatedLuaAssistant : this.generatedAssistantSpec; @@ -209,9 +208,7 @@ public partial class AssistantBuilder : AssistantBaseCore this.typicalInput = string.Empty; this.expectedOutput = string.Empty; this.selectedAssistantComponents = []; - this.selectedOutputLanguage = CommonLanguages.AS_IS; - this.customOutputLanguage = string.Empty; - this.allowGeneratedAssistantProfiles = true; + this.ApplyDefaultBuilderOptions(); this.extraRules = string.Empty; this.exampleRequest = string.Empty; this.generatedAssistantSpec = string.Empty; @@ -220,7 +217,27 @@ public partial class AssistantBuilder : AssistantBaseCore this.ResetInstallFlow(); } - protected override bool MightPreselectValues() => false; + protected override bool MightPreselectValues() + { + this.ApplyDefaultBuilderOptions(); + return true; + } + + private void ApplyDefaultBuilderOptions() + { + var defaults = this.SettingsManager.ConfigurationData.AssistantBuilder; + if (!defaults.PreselectOptions) + { + this.selectedOutputLanguage = CommonLanguages.AS_IS; + this.customOutputLanguage = string.Empty; + this.allowGeneratedAssistantProfiles = true; + return; + } + + this.selectedOutputLanguage = defaults.PreselectedOutputLanguage; + this.customOutputLanguage = defaults.PreselectedOtherOutputLanguage; + this.allowGeneratedAssistantProfiles = true; + } /// protected override void CaptureCustomAssistantSessionState(AssistantSessionStateWriter state) diff --git a/app/MindWork AI Studio/Assistants/I18N/allTexts.lua b/app/MindWork AI Studio/Assistants/I18N/allTexts.lua index 68813a98..31b58e46 100644 --- a/app/MindWork AI Studio/Assistants/I18N/allTexts.lua +++ b/app/MindWork AI Studio/Assistants/I18N/allTexts.lua @@ -6208,6 +6208,30 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBIAS::T6790 -- When enabled, you can preselect options. This is might be useful when you prefer a specific language or LLM model. UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBIAS::T711745239"] = "When enabled, you can preselect options. This is might be useful when you prefer a specific language or LLM model." +-- Preselect Assistant Builder options? +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T2127606148"] = "Preselect Assistant Builder options?" + +-- When disabled, the Assistant Builder uses the app provider and does not preselect an output language. +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T2235956198"] = "When disabled, the Assistant Builder uses the app provider and does not preselect an output language." + +-- Default custom output language +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T3360584376"] = "Default custom output language" + +-- Close +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T3448155331"] = "Close" + +-- Default output language +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T3652922567"] = "Default output language" + +-- Assistant: Assistant Builder defaults +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T3668274570"] = "Assistant: Assistant Builder defaults" + +-- Assistant Builder options are preselected +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T3962364100"] = "Assistant Builder options are preselected" + +-- No Assistant Builder options are preselected +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T4104323209"] = "No Assistant Builder options are preselected" + -- Preselect one of your chat templates? UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGCHAT::T1402022556"] = "Preselect one of your chat templates?" diff --git a/app/MindWork AI Studio/Dialogs/Settings/SettingsDialogAssistantBuilder.razor b/app/MindWork AI Studio/Dialogs/Settings/SettingsDialogAssistantBuilder.razor new file mode 100644 index 00000000..5e581306 --- /dev/null +++ b/app/MindWork AI Studio/Dialogs/Settings/SettingsDialogAssistantBuilder.razor @@ -0,0 +1,25 @@ +@using AIStudio.Settings +@inherits SettingsDialogBase + + + + + + @T("Assistant: Assistant Builder defaults") + + + + + + + @if (this.SettingsManager.ConfigurationData.AssistantBuilder.PreselectedOutputLanguage is CommonLanguages.OTHER) + { + + } + + + + + @T("Close") + + diff --git a/app/MindWork AI Studio/Dialogs/Settings/SettingsDialogAssistantBuilder.razor.cs b/app/MindWork AI Studio/Dialogs/Settings/SettingsDialogAssistantBuilder.razor.cs new file mode 100644 index 00000000..19031f3f --- /dev/null +++ b/app/MindWork AI Studio/Dialogs/Settings/SettingsDialogAssistantBuilder.razor.cs @@ -0,0 +1,3 @@ +namespace AIStudio.Dialogs.Settings; + +public partial class SettingsDialogAssistantBuilder : SettingsDialogBase; diff --git a/app/MindWork AI Studio/Pages/Assistants.razor b/app/MindWork AI Studio/Pages/Assistants.razor index 26acd14d..8ec8d5bf 100644 --- a/app/MindWork AI Studio/Pages/Assistants.razor +++ b/app/MindWork AI Studio/Pages/Assistants.razor @@ -19,7 +19,7 @@ - + @if (this.AssistantPlugins.Count > 0) @@ -79,4 +79,4 @@ - \ No newline at end of file + diff --git a/app/MindWork AI Studio/Plugins/languages/de-de-43065dbc-78d0-45b7-92be-f14c2926e2dc/plugin.lua b/app/MindWork AI Studio/Plugins/languages/de-de-43065dbc-78d0-45b7-92be-f14c2926e2dc/plugin.lua index 28fb5a33..061a525b 100644 --- a/app/MindWork AI Studio/Plugins/languages/de-de-43065dbc-78d0-45b7-92be-f14c2926e2dc/plugin.lua +++ b/app/MindWork AI Studio/Plugins/languages/de-de-43065dbc-78d0-45b7-92be-f14c2926e2dc/plugin.lua @@ -6210,6 +6210,30 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBIAS::T6790 -- When enabled, you can preselect options. This is might be useful when you prefer a specific language or LLM model. UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBIAS::T711745239"] = "Wenn diese Option aktiviert ist, können Sie Voreinstellungen vornehmen. Das kann nützlich sein, wenn Sie eine bestimmte Sprache oder ein bestimmtes LLM-Modell bevorzugen." +-- Preselect Assistant Builder options? +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T2127606148"] = "Optionen für den Assistenten-Builder vorauswählen?" + +-- When disabled, the Assistant Builder uses the app provider and does not preselect an output language. +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T2235956198"] = "Wenn diese Option deaktiviert ist, verwendet der Assistenten-Builder den App-Anbieter und wählt keine Ausgabesprache vorab aus." + +-- Default custom output language +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T3360584376"] = "Standardmäßige benutzerdefinierte Ausgabesprache" + +-- Close +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T3448155331"] = "Schließen" + +-- Default output language +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T3652922567"] = "Standardsprache für Ausgaben" + +-- Assistant: Assistant Builder defaults +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T3668274570"] = "Assistent: Standardwerte für den Assistenten-Builder" + +-- Assistant Builder options are preselected +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T3962364100"] = "Optionen für den Assistenten-Builder sind vorausgewählt" + +-- No Assistant Builder options are preselected +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T4104323209"] = "Keine Optionen für den Assistenten-Builder sind vorausgewählt" + -- Preselect one of your chat templates? UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGCHAT::T1402022556"] = "Eine ihrer Chat-Vorlagen vorab auswählen?" diff --git a/app/MindWork AI Studio/Plugins/languages/en-us-97dfb1ba-50c4-4440-8dfa-6575daf543c8/plugin.lua b/app/MindWork AI Studio/Plugins/languages/en-us-97dfb1ba-50c4-4440-8dfa-6575daf543c8/plugin.lua index aa294bf6..2b61b3e6 100644 --- a/app/MindWork AI Studio/Plugins/languages/en-us-97dfb1ba-50c4-4440-8dfa-6575daf543c8/plugin.lua +++ b/app/MindWork AI Studio/Plugins/languages/en-us-97dfb1ba-50c4-4440-8dfa-6575daf543c8/plugin.lua @@ -6210,6 +6210,30 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBIAS::T6790 -- When enabled, you can preselect options. This is might be useful when you prefer a specific language or LLM model. UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBIAS::T711745239"] = "When enabled, you can preselect options. This is might be useful when you prefer a specific language or LLM model." +-- Preselect Assistant Builder options? +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T2127606148"] = "Preselect Assistant Builder options?" + +-- When disabled, the Assistant Builder uses the app provider and does not preselect an output language. +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T2235956198"] = "When disabled, the Assistant Builder uses the app provider and does not preselect an output language." + +-- Default custom output language +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T3360584376"] = "Default custom output language" + +-- Close +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T3448155331"] = "Close" + +-- Default output language +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T3652922567"] = "Default output language" + +-- Assistant: Assistant Builder defaults +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T3668274570"] = "Assistant: Assistant Builder defaults" + +-- Assistant Builder options are preselected +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T3962364100"] = "Assistant Builder options are preselected" + +-- No Assistant Builder options are preselected +UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGASSISTANTBUILDER::T4104323209"] = "No Assistant Builder options are preselected" + -- Preselect one of your chat templates? UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGCHAT::T1402022556"] = "Preselect one of your chat templates?" diff --git a/app/MindWork AI Studio/Settings/DataModel/Data.cs b/app/MindWork AI Studio/Settings/DataModel/Data.cs index 9909b3af..6900058e 100644 --- a/app/MindWork AI Studio/Settings/DataModel/Data.cs +++ b/app/MindWork AI Studio/Settings/DataModel/Data.cs @@ -160,6 +160,8 @@ public sealed class Data public DataSlideBuilder SlideBuilder { get; init; } = new(); + public DataAssistantBuilder AssistantBuilder { get; init; } = new(); + /// /// Gets the managed Visual Briefing Assistant defaults. /// diff --git a/app/MindWork AI Studio/Settings/DataModel/DataAssistantBuilder.cs b/app/MindWork AI Studio/Settings/DataModel/DataAssistantBuilder.cs new file mode 100644 index 00000000..f699ce40 --- /dev/null +++ b/app/MindWork AI Studio/Settings/DataModel/DataAssistantBuilder.cs @@ -0,0 +1,28 @@ +namespace AIStudio.Settings.DataModel; + +/// +/// Stores the default options for the Assistant Builder. +/// +public sealed class DataAssistantBuilder +{ + /// + /// Gets or sets whether Assistant Builder defaults are preselected. + /// + public bool PreselectOptions { get; set; } = true; + + /// + /// Gets or sets the provider used by default. An empty value uses the app default. + /// + public string PreselectedProvider { get; set; } = string.Empty; + + /// + /// Gets or sets the default output language for generated assistants. + /// + public CommonLanguages PreselectedOutputLanguage { get; set; } = CommonLanguages.AS_IS; + + /// + /// Gets or sets the default custom output language. + /// + public string PreselectedOtherOutputLanguage { get; set; } = string.Empty; + +} diff --git a/app/MindWork AI Studio/Tools/ComponentsExtensions.cs b/app/MindWork AI Studio/Tools/ComponentsExtensions.cs index 8e1501aa..a2b26c92 100644 --- a/app/MindWork AI Studio/Tools/ComponentsExtensions.cs +++ b/app/MindWork AI Studio/Tools/ComponentsExtensions.cs @@ -180,6 +180,7 @@ public static class ComponentsExtensions Components.ERI_ASSISTANT => settingsManager.ConfigurationData.ERI.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.ERI.PreselectedProvider) : null, Components.I18N_ASSISTANT => settingsManager.ConfigurationData.I18N.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.I18N.PreselectedProvider) : null, Components.SLIDE_BUILDER_ASSISTANT => settingsManager.ConfigurationData.SlideBuilder.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.SlideBuilder.PreselectedProvider) : null, + Components.META_ASSISTANT => settingsManager.ConfigurationData.AssistantBuilder.PreselectOptions ? settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.AssistantBuilder.PreselectedProvider) : null, Components.VISUAL_BRIEFING_ASSISTANT => settingsManager.ConfigurationData.Providers.FirstOrDefault(x => x.Id == settingsManager.ConfigurationData.VisualBriefing.PreselectedProvider), // The Document Analysis Assistant does not have a preselected provider at the component level.