using AIStudio.Provider; using Microsoft.AspNetCore.Components; namespace AIStudio.Components; public partial class ConfidenceInfo : MSGComponentBase { [Parameter] public PopoverTriggerMode Mode { get; set; } = PopoverTriggerMode.BUTTON; [Parameter] public LLMProviders LLMProvider { get; set; } private Confidence currentConfidence; private bool showConfidence; public ConfidenceInfo() { this.currentConfidence = LLMProviders.NONE.GetConfidence(this.SettingsManager); } #region Overrides of ComponentBase protected override async Task OnParametersSetAsync() { this.currentConfidence = this.LLMProvider.GetConfidence(this.SettingsManager); await base.OnParametersSetAsync(); } #endregion private void ToggleConfidence() { this.showConfidence = !this.showConfidence; } private void HideConfidence() { this.showConfidence = false; } private IEnumerable<(string Index, string Source)> GetConfidenceSources() { var index = 0; foreach (var source in this.currentConfidence.Sources) yield return ($"Source {++index}", source); } private string GetCurrentConfidenceColor() => $"color: {this.currentConfidence.Level.GetColor(this.SettingsManager)};"; private string GetPopoverStyle() => $"border-color: {this.currentConfidence.Level.GetColor(this.SettingsManager)};"; }