mirror of
				https://github.com/MindWorkAI/AI-Studio.git
				synced 2025-11-04 01:20:21 +00:00 
			
		
		
		
	Added allowed LLM provider setting (data protection)
This commit is contained in:
		
							parent
							
								
									d06c913c52
								
							
						
					
					
						commit
						370de3a2ae
					
				@ -0,0 +1,9 @@
 | 
			
		||||
namespace AIStudio.Assistants.ERI;
 | 
			
		||||
 | 
			
		||||
public enum AllowedLLMProviders
 | 
			
		||||
{
 | 
			
		||||
    NONE,
 | 
			
		||||
    
 | 
			
		||||
    ANY,
 | 
			
		||||
    SELF_HOSTED,
 | 
			
		||||
}
 | 
			
		||||
@ -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"
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -123,6 +123,17 @@
 | 
			
		||||
    </MudSelect>
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
<MudText Typo="Typo.h4" Class="mt-6 mb-3">
 | 
			
		||||
    Data protection settings
 | 
			
		||||
</MudText>
 | 
			
		||||
 | 
			
		||||
<MudSelect T="AllowedLLMProviders" @bind-Value="@this.allowedLLMProviders" Label="Allowed LLM providers for this data source" Variant="Variant.Outlined" Margin="Margin.Dense" Validation="@this.ValidateAllowedLLMProviders" Class="mb-1">
 | 
			
		||||
    @foreach (var option in Enum.GetValues<AllowedLLMProviders>())
 | 
			
		||||
    {
 | 
			
		||||
        <MudSelectItem Value="@option">@option.Name()</MudSelectItem>
 | 
			
		||||
    }
 | 
			
		||||
</MudSelect>
 | 
			
		||||
 | 
			
		||||
<MudText Typo="Typo.h4" Class="mt-6 mb-1">
 | 
			
		||||
    Data retrieval settings
 | 
			
		||||
</MudText>
 | 
			
		||||
 | 
			
		||||
@ -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<Auth> selectedAuthenticationMethods = new HashSet<Auth>();
 | 
			
		||||
    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";
 | 
			
		||||
 | 
			
		||||
@ -77,6 +77,11 @@ public sealed class DataERI
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    public OperatingSystem PreselectedOperatingSystem { get; set; } = OperatingSystem.NONE;
 | 
			
		||||
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// Do you want to preselect which LLM providers are allowed?
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    public AllowedLLMProviders PreselectedAllowedLLMProviders { get; set; } = AllowedLLMProviders.NONE;
 | 
			
		||||
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// Do you want to preselect a retrieval description?
 | 
			
		||||
    /// </summary>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user