mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-11-14 21:48:27 +00:00
Added the Model Comparison assistant for blind comparisons of two models (#1009)
Co-authored-by: Thorsten Sommer <SommerEngineering@users.noreply.github.com>
This commit is contained in:
1 parent
12f26445ba
commit
b7255694cd
221 files changed
+19989
-90
No files matched your search
@@ -0,0 +1,82 @@
|
||||
using AIStudio.Assistants.ModelComparison;
|
||||
using AIStudio.Settings;
|
||||
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace AIStudio.Dialogs.Settings;
|
||||
|
||||
public partial class SettingsDialogModelComparison : SettingsDialogBase
|
||||
{
|
||||
[Inject]
|
||||
private ModelComparisonStore ModelComparisonStore { get; init; } = null!;
|
||||
|
||||
[Inject]
|
||||
private ILogger<SettingsDialogModelComparison> Logger { get; init; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// The presets of the mode Answer Variance, as the store listed them when the dialog opened.
|
||||
/// </summary>
|
||||
private IReadOnlyList<ModelComparisonPreset> presets = [];
|
||||
|
||||
/// <summary>
|
||||
/// Whether the presets were listed. Until then, a preselected preset does not count as missing.
|
||||
/// </summary>
|
||||
private bool presetsListed;
|
||||
|
||||
private bool OptionsDisabled() => !this.SettingsManager.ConfigurationData.ModelComparison.PreselectOptions;
|
||||
|
||||
#region Overrides of SettingsDialogBase
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
await base.OnInitializedAsync();
|
||||
|
||||
try
|
||||
{
|
||||
this.presets = await this.ModelComparisonStore.ListPresetsAsync();
|
||||
this.presetsListed = true;
|
||||
}
|
||||
catch (Exception exception) when (exception is IOException or UnauthorizedAccessException)
|
||||
{
|
||||
this.Logger.LogWarning(exception, "Could not list the presets of the Model Comparison assistant.");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Gets the entries of the preset selection: none, every preset, and the preselected one when it no longer exists.
|
||||
/// </summary>
|
||||
private IReadOnlyList<ConfigurationSelectData<string>> PresetData
|
||||
{
|
||||
get
|
||||
{
|
||||
var selectedPresetId = this.SettingsManager.ConfigurationData.ModelComparison.PreselectedPresetId;
|
||||
List<ConfigurationSelectData<string>> entries =
|
||||
[
|
||||
new(T("No preset preselected"), string.Empty),
|
||||
.. this.presets.Select(preset => new ConfigurationSelectData<string>(preset.Name, preset.Id.ToString("D")))
|
||||
];
|
||||
|
||||
if (this.SelectedPresetMissing)
|
||||
entries.Add(new(string.Format(T("Missing preset ({0})"), selectedPresetId), selectedPresetId));
|
||||
|
||||
return entries;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets whether the preselected preset was deleted since.
|
||||
/// </summary>
|
||||
private bool SelectedPresetMissing
|
||||
{
|
||||
get
|
||||
{
|
||||
var selectedPresetId = this.SettingsManager.ConfigurationData.ModelComparison.PreselectedPresetId;
|
||||
return this.presetsListed
|
||||
&& !string.IsNullOrWhiteSpace(selectedPresetId)
|
||||
&& this.presets.All(preset => !string.Equals(preset.Id.ToString("D"), selectedPresetId, StringComparison.OrdinalIgnoreCase));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user