mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-06-27 14:56:27 +00:00
Showing default setting values
This commit is contained in:
parent
a181e58543
commit
8901779342
@ -5794,6 +5794,9 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::TOOLSETTINGSDIALOG::T3730473128"]
|
|||||||
-- The selected tool could not be loaded.
|
-- The selected tool could not be loaded.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::TOOLSETTINGSDIALOG::T3907843187"] = "The selected tool could not be loaded."
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::TOOLSETTINGSDIALOG::T3907843187"] = "The selected tool could not be loaded."
|
||||||
|
|
||||||
|
-- {0} Default: {1}
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::TOOLSETTINGSDIALOG::T403490413"] = "{0} Default: {1}"
|
||||||
|
|
||||||
-- Cancel
|
-- Cancel
|
||||||
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::TOOLSETTINGSDIALOG::T900713019"] = "Cancel"
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::TOOLSETTINGSDIALOG::T900713019"] = "Cancel"
|
||||||
|
|
||||||
|
|||||||
@ -26,7 +26,7 @@
|
|||||||
var field = property.Value;
|
var field = property.Value;
|
||||||
if (field.EnumValues.Count > 0)
|
if (field.EnumValues.Count > 0)
|
||||||
{
|
{
|
||||||
<MudSelect T="string" Label="@this.GetFieldLabel(fieldName, field)" Value="@this.GetValue(fieldName)" ValueChanged="@(value => this.UpdateValue(fieldName, value))" Variant="Variant.Outlined" Margin="Margin.Dense" HelperText="@this.GetFieldDescription(fieldName, field)" Class="mb-3" Disabled="@this.IsFieldDisabled(fieldName)">
|
<MudSelect T="string" Label="@this.GetFieldLabel(fieldName, field)" Value="@this.GetValue(fieldName)" ValueChanged="@(value => this.UpdateValue(fieldName, value))" Variant="Variant.Outlined" Margin="Margin.Dense" HelperText="@this.GetFieldDescription(fieldName, field)" Placeholder="@this.GetFieldPlaceholder(fieldName, field)" Class="mb-3" Disabled="@this.IsFieldDisabled(fieldName)">
|
||||||
@foreach (var option in field.EnumValues)
|
@foreach (var option in field.EnumValues)
|
||||||
{
|
{
|
||||||
<MudSelectItem T="string" Value="@option">@option</MudSelectItem>
|
<MudSelectItem T="string" Value="@option">@option</MudSelectItem>
|
||||||
@ -35,7 +35,7 @@
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
<MudTextField T="string" Label="@this.GetFieldLabel(fieldName, field)" Value="@this.GetValue(fieldName)" ValueChanged="@(value => this.UpdateValue(fieldName, value))" Variant="Variant.Outlined" Margin="Margin.Dense" Class="mb-3" HelperText="@this.GetFieldDescription(fieldName, field)" InputType="@(field.Secret ? InputType.Password : InputType.Text)" Disabled="@this.IsFieldDisabled(fieldName)" />
|
<MudTextField T="string" Label="@this.GetFieldLabel(fieldName, field)" Value="@this.GetValue(fieldName)" ValueChanged="@(value => this.UpdateValue(fieldName, value))" Variant="Variant.Outlined" Margin="Margin.Dense" Class="mb-3" HelperText="@this.GetFieldDescription(fieldName, field)" Placeholder="@this.GetFieldPlaceholder(fieldName, field)" InputType="@(field.Secret ? InputType.Password : InputType.Text)" Disabled="@this.IsFieldDisabled(fieldName)" />
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</MudPaper>
|
</MudPaper>
|
||||||
|
|||||||
@ -37,7 +37,20 @@ public partial class ToolSettingsDialog : SettingsDialogBase
|
|||||||
this.implementation?.GetSettingsFieldLabel(fieldName, fieldDefinition) ?? fieldDefinition.Title;
|
this.implementation?.GetSettingsFieldLabel(fieldName, fieldDefinition) ?? fieldDefinition.Title;
|
||||||
|
|
||||||
private string GetFieldDescription(string fieldName, ToolSettingsFieldDefinition fieldDefinition) =>
|
private string GetFieldDescription(string fieldName, ToolSettingsFieldDefinition fieldDefinition) =>
|
||||||
this.implementation?.GetSettingsFieldDescription(fieldName, fieldDefinition) ?? fieldDefinition.Description;
|
this.GetFieldDescriptionWithDefault(fieldName, fieldDefinition);
|
||||||
|
|
||||||
|
private string GetFieldDefaultValue(string fieldName, ToolSettingsFieldDefinition fieldDefinition) =>
|
||||||
|
this.implementation?.GetSettingsFieldDefaultValue(fieldName, fieldDefinition) ?? string.Empty;
|
||||||
|
|
||||||
|
private string GetFieldDescriptionWithDefault(string fieldName, ToolSettingsFieldDefinition fieldDefinition)
|
||||||
|
{
|
||||||
|
var description = this.implementation?.GetSettingsFieldDescription(fieldName, fieldDefinition) ?? fieldDefinition.Description;
|
||||||
|
var defaultValue = this.GetFieldDefaultValue(fieldName, fieldDefinition);
|
||||||
|
if (string.IsNullOrWhiteSpace(defaultValue))
|
||||||
|
return description;
|
||||||
|
|
||||||
|
return string.Format(T("{0} Default: {1}"), description, defaultValue);
|
||||||
|
}
|
||||||
|
|
||||||
private bool IsFieldDisabled(string fieldName) =>
|
private bool IsFieldDisabled(string fieldName) =>
|
||||||
this.toolDefinition?.Id.Equals(ToolSelectionRules.READ_WEB_PAGE_TOOL_ID, StringComparison.Ordinal) is true &&
|
this.toolDefinition?.Id.Equals(ToolSelectionRules.READ_WEB_PAGE_TOOL_ID, StringComparison.Ordinal) is true &&
|
||||||
@ -45,6 +58,9 @@ public partial class ToolSettingsDialog : SettingsDialogBase
|
|||||||
ManagedConfiguration.TryGet(x => x.Tools, x => x.ReadWebPageAllowedPrivateHosts, out var meta) &&
|
ManagedConfiguration.TryGet(x => x.Tools, x => x.ReadWebPageAllowedPrivateHosts, out var meta) &&
|
||||||
meta.IsLocked;
|
meta.IsLocked;
|
||||||
|
|
||||||
|
private string GetFieldPlaceholder(string fieldName, ToolSettingsFieldDefinition fieldDefinition) =>
|
||||||
|
string.IsNullOrWhiteSpace(this.GetValue(fieldName)) ? this.GetFieldDefaultValue(fieldName, fieldDefinition) : string.Empty;
|
||||||
|
|
||||||
private void UpdateValue(string fieldName, string? value) => this.values[fieldName] = value ?? string.Empty;
|
private void UpdateValue(string fieldName, string? value) => this.values[fieldName] = value ?? string.Empty;
|
||||||
|
|
||||||
private async Task Save()
|
private async Task Save()
|
||||||
|
|||||||
@ -8082,9 +8082,6 @@ UI_TEXT_CONTENT["AISTUDIO::TOOLS::TOOLCALLINGSYSTEM::TOOLCALLINGIMPLEMENTATIONS:
|
|||||||
-- The setting '{0}' must be a positive integer.
|
-- The setting '{0}' must be a positive integer.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::TOOLS::TOOLCALLINGSYSTEM::TOOLCALLINGIMPLEMENTATIONS::SEARXNGWEBSEARCHTOOL::T4199432074"] = "Die Einstellung „{0}“ muss eine positive ganze Zahl sein."
|
UI_TEXT_CONTENT["AISTUDIO::TOOLS::TOOLCALLINGSYSTEM::TOOLCALLINGIMPLEMENTATIONS::SEARXNGWEBSEARCHTOOL::T4199432074"] = "Die Einstellung „{0}“ muss eine positive ganze Zahl sein."
|
||||||
|
|
||||||
-- Search the web with a configured SearXNG instance and return candidate URLs for the model. Use Read Web Page on relevant result URLs before answering factual or detailed web questions.
|
|
||||||
UI_TEXT_CONTENT["AISTUDIO::TOOLS::TOOLCALLINGSYSTEM::TOOLCALLINGIMPLEMENTATIONS::SEARXNGWEBSEARCHTOOL::T764865565"] = "Suche im Web mit einer konfigurierten SearXNG-Instanz und gib Kandidaten-URLs für das Modell zurück. Verwende „Webseite lesen“ für relevante Ergebnis-URLs, bevor du sachliche oder detaillierte Webfragen beantwortest."
|
|
||||||
|
|
||||||
-- The configured SearXNG URL must start with http:// or https://.
|
-- The configured SearXNG URL must start with http:// or https://.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::TOOLS::TOOLCALLINGSYSTEM::TOOLCALLINGIMPLEMENTATIONS::SEARXNGWEBSEARCHTOOL::T944878454"] = "Die konfigurierte SearXNG-URL muss mit http:// oder https:// beginnen."
|
UI_TEXT_CONTENT["AISTUDIO::TOOLS::TOOLCALLINGSYSTEM::TOOLCALLINGIMPLEMENTATIONS::SEARXNGWEBSEARCHTOOL::T944878454"] = "Die konfigurierte SearXNG-URL muss mit http:// oder https:// beginnen."
|
||||||
|
|
||||||
|
|||||||
@ -22,6 +22,8 @@ public interface IToolImplementation
|
|||||||
public string GetSettingsFieldDescription(string fieldName, ToolSettingsFieldDefinition fieldDefinition) =>
|
public string GetSettingsFieldDescription(string fieldName, ToolSettingsFieldDefinition fieldDefinition) =>
|
||||||
this.T(fieldDefinition.Description);
|
this.T(fieldDefinition.Description);
|
||||||
|
|
||||||
|
public string? GetSettingsFieldDefaultValue(string fieldName, ToolSettingsFieldDefinition fieldDefinition) => null;
|
||||||
|
|
||||||
public Task<ToolConfigurationState?> ValidateConfigurationAsync(
|
public Task<ToolConfigurationState?> ValidateConfigurationAsync(
|
||||||
ToolDefinition definition,
|
ToolDefinition definition,
|
||||||
IReadOnlyDictionary<string, string> settingsValues,
|
IReadOnlyDictionary<string, string> settingsValues,
|
||||||
|
|||||||
@ -43,7 +43,7 @@ public sealed class ReadWebPageTool(HTMLParser htmlParser, ILogger<ReadWebPageTo
|
|||||||
|
|
||||||
public string GetDisplayName() => TB("Read Web Page");
|
public string GetDisplayName() => TB("Read Web Page");
|
||||||
|
|
||||||
public string GetDescription() => TB("Load a single web page, extract its main HTML content, and return structured working material for the model. Use the result to synthesize a natural-language answer instead of exposing the raw payload to the user.");
|
public string GetDescription() => TB("Load a single web page and extract its main HTML content.");
|
||||||
|
|
||||||
public string GetSettingsFieldLabel(string fieldName, ToolSettingsFieldDefinition fieldDefinition) => fieldName switch
|
public string GetSettingsFieldLabel(string fieldName, ToolSettingsFieldDefinition fieldDefinition) => fieldName switch
|
||||||
{
|
{
|
||||||
@ -57,10 +57,17 @@ public sealed class ReadWebPageTool(HTMLParser htmlParser, ILogger<ReadWebPageTo
|
|||||||
{
|
{
|
||||||
"timeoutSeconds" => TB("Optional HTTP timeout for loading a web page in seconds."),
|
"timeoutSeconds" => TB("Optional HTTP timeout for loading a web page in seconds."),
|
||||||
"maxContentCharacters" => TB("Optional global truncation limit for extracted Markdown returned to the model."),
|
"maxContentCharacters" => TB("Optional global truncation limit for extracted Markdown returned to the model."),
|
||||||
ALLOWED_PRIVATE_HOSTS_SETTING => TB("Optional host allowlist for private or VPN web pages. Separate host patterns with commas, such as example.de, *.example.de. Allowed private hosts require a High-confidence provider."),
|
ALLOWED_PRIVATE_HOSTS_SETTING => TB("Optional host allowlist for private or VPN web pages. For security reasons, private or VPN web pages aren't allowed to be read by default. Separate host patterns with commas, such as example.de, example.com. Allowed private hosts require a high-confidence provider."),
|
||||||
_ => TB(fieldDefinition.Description),
|
_ => TB(fieldDefinition.Description),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public string? GetSettingsFieldDefaultValue(string fieldName, ToolSettingsFieldDefinition fieldDefinition) => fieldName switch
|
||||||
|
{
|
||||||
|
"timeoutSeconds" => DEFAULT_TIMEOUT_SECONDS.ToString(),
|
||||||
|
"maxContentCharacters" => DEFAULT_MAX_CONTENT_CHARACTERS.ToString(),
|
||||||
|
_ => null,
|
||||||
|
};
|
||||||
|
|
||||||
public Task<ToolConfigurationState?> ValidateConfigurationAsync(
|
public Task<ToolConfigurationState?> ValidateConfigurationAsync(
|
||||||
ToolDefinition definition,
|
ToolDefinition definition,
|
||||||
IReadOnlyDictionary<string, string> settingsValues,
|
IReadOnlyDictionary<string, string> settingsValues,
|
||||||
|
|||||||
@ -52,6 +52,13 @@ public sealed class SearXNGWebSearchTool : IToolImplementation
|
|||||||
_ => TB(fieldDefinition.Description),
|
_ => TB(fieldDefinition.Description),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public string? GetSettingsFieldDefaultValue(string fieldName, ToolSettingsFieldDefinition fieldDefinition) => fieldName switch
|
||||||
|
{
|
||||||
|
"maxResults" => DEFAULT_MAX_RESULTS.ToString(),
|
||||||
|
"timeoutSeconds" => DEFAULT_TIMEOUT_SECONDS.ToString(),
|
||||||
|
_ => null,
|
||||||
|
};
|
||||||
|
|
||||||
public Task<ToolConfigurationState?> ValidateConfigurationAsync(
|
public Task<ToolConfigurationState?> ValidateConfigurationAsync(
|
||||||
ToolDefinition definition,
|
ToolDefinition definition,
|
||||||
IReadOnlyDictionary<string, string> settingsValues,
|
IReadOnlyDictionary<string, string> settingsValues,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user