Show the automatic reasoning behavior

This commit is contained in:
Thorsten Sommer 2026-07-05 12:31:24 +02:00
parent 3d516a4674
commit 5d57d8c49c
Signed by untrusted user who does not match committer: tsommer
GPG Key ID: 371BBA77A02C0108
2 changed files with 19 additions and 3 deletions

View File

@ -1,7 +1,6 @@
@using AIStudio.Provider @using AIStudio.Provider
@using AIStudio.Provider.HuggingFace @using AIStudio.Provider.HuggingFace
@using AIStudio.Provider.SelfHosted @using AIStudio.Provider.SelfHosted
@using AIStudio.Settings
@inherits MSGComponentBase @inherits MSGComponentBase
<MudDialog> <MudDialog>
<DialogContent> <DialogContent>
@ -106,7 +105,7 @@
} }
else else
{ {
<MudSelect T="AIStudio.Provider.Model" <MudSelect T="Provider.Model"
Value="@this.DataModel" Value="@this.DataModel"
ValueChanged="@(async model => await this.OnModelChanged(model))" ValueChanged="@(async model => await this.OnModelChanged(model))"
OpenIcon="@Icons.Material.Filled.FaceRetouchingNatural" AdornmentColor="Color.Info" OpenIcon="@Icons.Material.Filled.FaceRetouchingNatural" AdornmentColor="Color.Info"

View File

@ -444,6 +444,21 @@ public partial class ProviderDialog : MSGComponentBase, ISecretId
return ReasoningOverrideMode.NO_REASONING; return ReasoningOverrideMode.NO_REASONING;
} }
private ReasoningOverrideMode GetAutomaticReasoningOverrideMode()
{
var capabilities = this.GetAutomaticModelCapabilities();
if (capabilities.Contains(Capability.ALWAYS_REASONING))
return ReasoningOverrideMode.ALWAYS_ON;
if (capabilities.Contains(Capability.REASONING_BY_DEFAULT))
return ReasoningOverrideMode.ON_BY_DEFAULT;
if (capabilities.Contains(Capability.OPTIONAL_REASONING))
return ReasoningOverrideMode.CAN_BE_ENABLED;
return ReasoningOverrideMode.NO_REASONING;
}
private void SetReasoningOverrideMode(ReasoningOverrideMode mode) private void SetReasoningOverrideMode(ReasoningOverrideMode mode)
{ {
this.capabilityOverrides = mode switch this.capabilityOverrides = mode switch
@ -489,7 +504,7 @@ public partial class ProviderDialog : MSGComponentBase, ISecretId
private string GetReasoningOverrideModeDescription(ReasoningOverrideMode mode) => mode switch private string GetReasoningOverrideModeDescription(ReasoningOverrideMode mode) => mode switch
{ {
ReasoningOverrideMode.AUTOMATIC => T("Use detected model behavior."), ReasoningOverrideMode.AUTOMATIC => string.Format(T("Use detected model behavior: {0}."), this.GetReasoningOverrideModeLabel(this.GetAutomaticReasoningOverrideMode())),
ReasoningOverrideMode.NO_REASONING => T("No reasoning (thinking) capability."), ReasoningOverrideMode.NO_REASONING => T("No reasoning (thinking) capability."),
ReasoningOverrideMode.CAN_BE_ENABLED => T("Reasoning (thinking) is available, but off unless additional API parameters enable it."), ReasoningOverrideMode.CAN_BE_ENABLED => T("Reasoning (thinking) is available, but off unless additional API parameters enable it."),
ReasoningOverrideMode.ON_BY_DEFAULT => T("Reasoning (thinking) is available and on unless additional API parameters disable it."), ReasoningOverrideMode.ON_BY_DEFAULT => T("Reasoning (thinking) is available and on unless additional API parameters disable it."),
@ -520,6 +535,8 @@ public partial class ProviderDialog : MSGComponentBase, ISecretId
return currentProviderSettings.GetModelCapabilities(); return currentProviderSettings.GetModelCapabilities();
} }
private List<Capability> GetAutomaticModelCapabilities() => this.DataLLMProvider.GetModelCapabilities(this.DataModel);
private string GetCurrentModelApiLabel() private string GetCurrentModelApiLabel()
{ {
var capabilities = this.GetCurrentModelCapabilities(); var capabilities = this.GetCurrentModelCapabilities();