diff --git a/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor b/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor
index b5774e02..7dbef4bc 100644
--- a/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor
+++ b/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor
@@ -18,7 +18,7 @@
if (component is AssistantDropdown assistantDropdown)
{
diff --git a/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor.cs b/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor.cs
index 375f235b..f506cdfd 100644
--- a/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor.cs
+++ b/app/MindWork AI Studio/Assistants/Dynamic/AssistantDynamic.razor.cs
@@ -29,6 +29,7 @@ public partial class AssistantDynamic : AssistantBaseCore
private string customTargetLanguage = string.Empty;
private Dictionary inputFields = new();
+ private Dictionary dropdownFields = new();
protected override void OnInitialized()
{
@@ -54,6 +55,12 @@ public partial class AssistantDynamic : AssistantBaseCore
this.inputFields.Add(textArea.Name, textArea.PrefillText);
}
break;
+ case AssistantUiCompontentType.DROPDOWN:
+ if (component is AssistantDropdown dropdown)
+ {
+ this.dropdownFields.Add(dropdown.Name, dropdown.Default.Value);
+ }
+ break;
}
}
base.OnInitialized();
@@ -94,27 +101,30 @@ public partial class AssistantDynamic : AssistantBaseCore
}
}
break;
+ case AssistantUiCompontentType.DROPDOWN:
+ if (component is AssistantDropdown dropdown)
+ {
+ prompt += $"{Environment.NewLine}context:{Environment.NewLine}{dropdown.UserPrompt}{Environment.NewLine}{Environment.NewLine}---{Environment.NewLine}";
+ if (this.dropdownFields.TryGetValue(dropdown.Name, out userInput))
+ {
+ prompt += $"user prompt:{Environment.NewLine}{userInput}";
+ }
+ }
+ break;
default:
prompt += $"{userInput}{Environment.NewLine}";
break;
}
}
-
+
+ Console.WriteLine(prompt);
return prompt;
}
private async Task Submit()
{
this.CreateChatThread();
- var time = this.AddUserRequest(
- $"""
-
- The given text is:
-
- ---
- {this.CollectUserPrompt()}
- """);
-
+ var time = this.AddUserRequest(this.CollectUserPrompt());
await this.AddAIResponseAsync(time);
}
}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/DynamicAssistantDropdown.razor b/app/MindWork AI Studio/Components/DynamicAssistantDropdown.razor
index b826881a..647bc2ca 100644
--- a/app/MindWork AI Studio/Components/DynamicAssistantDropdown.razor
+++ b/app/MindWork AI Studio/Components/DynamicAssistantDropdown.razor
@@ -1,17 +1,21 @@
- @foreach (var item in Items)
- {
-
- @item.Display
-
- }
+ Margin="Margin.Dense"
+ MultiSelection="false"
+ >
+ @foreach (var item in Items)
+ {
+
+ @item.Display
+
+ }
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/DynamicAssistantDropdown.razor.cs b/app/MindWork AI Studio/Components/DynamicAssistantDropdown.razor.cs
index 7d4a72ce..5ecc5a1a 100644
--- a/app/MindWork AI Studio/Components/DynamicAssistantDropdown.razor.cs
+++ b/app/MindWork AI Studio/Components/DynamicAssistantDropdown.razor.cs
@@ -29,5 +29,14 @@ namespace AIStudio.Components
[Parameter]
public string Icon { get; set; } = Icons.Material.Filled.ArrowDropDown;
+
+ private async Task OnValueChanged(string newValue)
+ {
+ if (this.Value != newValue)
+ {
+ this.Value = newValue;
+ await this.ValueChanged.InvokeAsync(newValue);
+ }
+ }
}
}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantDropdown.cs b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantDropdown.cs
index fa28202c..080be355 100644
--- a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantDropdown.cs
+++ b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/AssistantDropdown.cs
@@ -20,6 +20,15 @@ public class AssistantDropdown : AssistantComponentBase
: string.Empty;
set => this.Props[nameof(this.Label)] = value;
}
+
+ public string UserPrompt
+ {
+ get => this.Props.TryGetValue(nameof(this.UserPrompt), out var v)
+ ? v.ToString() ?? string.Empty
+ : string.Empty;
+ set => this.Props[nameof(this.UserPrompt)] = value;
+ }
+
public AssistantDropdownItem Default
{
get
diff --git a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/ComponentPropSpecs.cs b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/ComponentPropSpecs.cs
index 34b98341..7f15f35d 100644
--- a/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/ComponentPropSpecs.cs
+++ b/app/MindWork AI Studio/Tools/PluginSystem/Assistants/DataModel/ComponentPropSpecs.cs
@@ -19,7 +19,7 @@ public static class ComponentPropSpecs
),
[AssistantUiCompontentType.DROPDOWN] = new(
required: ["Name", "Label", "Default", "Items"],
- optional: []
+ optional: ["UserPrompt"]
),
[AssistantUiCompontentType.PROVIDER_SELECTION] = new(
required: ["Name", "Label"],