using AIStudio.Provider;
using AIStudio.Settings;
using Microsoft.AspNetCore.Components;
namespace AIStudio.Components;
public partial class ConfigurationMinConfidenceSelection : ComponentBase
{
///
/// The selected value.
///
[Parameter]
public Func SelectedValue { get; set; } = () => default!;
///
/// An action that is called when the selection changes.
///
[Parameter]
public Action SelectionUpdate { get; set; } = _ => { };
///
/// Is the selection component disabled?
///
[Parameter]
public Func Disabled { get; set; } = () => false;
///
/// Boolean value indicating whether the selection is restricted to a global minimum confidence level.
///
[Parameter]
public bool RestrictToGlobalMinimumConfidence { get; set; }
[Inject]
private SettingsManager SettingsManager { get; init; } = null!;
private ConfidenceLevel FilteredSelectedValue()
{
if (this.SelectedValue() is ConfidenceLevel.NONE)
return ConfidenceLevel.NONE;
if(this.RestrictToGlobalMinimumConfidence && this.SettingsManager.ConfigurationData.LLMProviders.EnforceGlobalMinimumConfidence)
{
var minimumLevel = this.SettingsManager.ConfigurationData.LLMProviders.GlobalMinimumConfidence;
if(this.SelectedValue() < minimumLevel)
return minimumLevel;
}
return this.SelectedValue();
}
}