diff --git a/app/MindWork AI Studio/Assistants/ERI/AllowedLLMProviders.cs b/app/MindWork AI Studio/Assistants/ERI/AllowedLLMProviders.cs
new file mode 100644
index 00000000..7bc8f0d2
--- /dev/null
+++ b/app/MindWork AI Studio/Assistants/ERI/AllowedLLMProviders.cs
@@ -0,0 +1,9 @@
+namespace AIStudio.Assistants.ERI;
+
+public enum AllowedLLMProviders
+{
+ NONE,
+
+ ANY,
+ SELF_HOSTED,
+}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Assistants/ERI/AllowedLLMProvidersExtensions.cs b/app/MindWork AI Studio/Assistants/ERI/AllowedLLMProvidersExtensions.cs
new file mode 100644
index 00000000..a0066d99
--- /dev/null
+++ b/app/MindWork AI Studio/Assistants/ERI/AllowedLLMProvidersExtensions.cs
@@ -0,0 +1,16 @@
+namespace AIStudio.Assistants.ERI;
+
+public static class AllowedLLMProvidersExtensions
+{
+ public static string Name(this AllowedLLMProviders provider)
+ {
+ return provider switch
+ {
+ AllowedLLMProviders.NONE => "Please select what kind of LLM provider are allowed for this data source",
+ AllowedLLMProviders.ANY => "Any LLM provider is allowed: users might choose a cloud-based or a self-hosted provider",
+ AllowedLLMProviders.SELF_HOSTED => "Self-hosted LLM providers are allowed: users cannot choose any cloud-based provider",
+
+ _ => "Unknown option was selected"
+ };
+ }
+}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor b/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor
index 84bf6e8c..875b6823 100644
--- a/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor
+++ b/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor
@@ -123,6 +123,17 @@
}
+
+ Data protection settings
+
+
+
+ @foreach (var option in Enum.GetValues())
+ {
+ @option.Name()
+ }
+
+
Data retrieval settings
diff --git a/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor.cs b/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor.cs
index 1f971234..1b0ff5a3 100644
--- a/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor.cs
+++ b/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor.cs
@@ -55,6 +55,7 @@ public partial class AssistantERI : AssistantBaseCore
this.selectedAuthenticationMethods = [];
this.authDescription = string.Empty;
this.selectedOperatingSystem = OperatingSystem.NONE;
+ this.allowedLLMProviders = AllowedLLMProviders.NONE;
this.retrievalDescription = string.Empty;
this.additionalLibraries = string.Empty;
}
@@ -80,6 +81,7 @@ public partial class AssistantERI : AssistantBaseCore
this.authDescription = this.SettingsManager.ConfigurationData.ERI.PreselectedAuthDescription;
this.selectedOperatingSystem = this.SettingsManager.ConfigurationData.ERI.PreselectedOperatingSystem;
+ this.allowedLLMProviders = this.SettingsManager.ConfigurationData.ERI.PreselectedAllowedLLMProviders;
this.retrievalDescription = this.SettingsManager.ConfigurationData.ERI.PreselectedRetrievalDescription;
this.additionalLibraries = this.SettingsManager.ConfigurationData.ERI.PreselectedAdditionalLibraries;
return true;
@@ -101,6 +103,7 @@ public partial class AssistantERI : AssistantBaseCore
private IEnumerable selectedAuthenticationMethods = new HashSet();
private string authDescription = string.Empty;
private OperatingSystem selectedOperatingSystem = OperatingSystem.NONE;
+ private AllowedLLMProviders allowedLLMProviders = AllowedLLMProviders.NONE;
private string retrievalDescription = string.Empty;
private string additionalLibraries = string.Empty;
@@ -284,6 +287,14 @@ public partial class AssistantERI : AssistantBaseCore
return null;
}
+ private string? ValidateAllowedLLMProviders(AllowedLLMProviders provider)
+ {
+ if(provider == AllowedLLMProviders.NONE)
+ return "Please select which types of LLMs users are allowed to use with the data from this ERI server.";
+
+ return null;
+ }
+
private string AuthDescriptionTitle()
{
const string TITLE = "Describe how you planned the authentication process";
diff --git a/app/MindWork AI Studio/Settings/DataModel/DataERI.cs b/app/MindWork AI Studio/Settings/DataModel/DataERI.cs
index 3a10c6cd..64e835f5 100644
--- a/app/MindWork AI Studio/Settings/DataModel/DataERI.cs
+++ b/app/MindWork AI Studio/Settings/DataModel/DataERI.cs
@@ -77,6 +77,11 @@ public sealed class DataERI
///
public OperatingSystem PreselectedOperatingSystem { get; set; } = OperatingSystem.NONE;
+ ///
+ /// Do you want to preselect which LLM providers are allowed?
+ ///
+ public AllowedLLMProviders PreselectedAllowedLLMProviders { get; set; } = AllowedLLMProviders.NONE;
+
///
/// Do you want to preselect a retrieval description?
///