From f6f08f774255bcb0640bbca67a6dc05cf9c0b3d9 Mon Sep 17 00:00:00 2001 From: juhangil Date: Mon, 9 Sep 2024 17:44:05 +0900 Subject: [PATCH 01/27] Add parameter tab component ui on config tab - Add border line on Playground.razor grid item for visualize layout --- .../Components/Pages/Playground.razor | 2 +- .../Components/UI/ParametersTabComponent.razor | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/Pages/Playground.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/Pages/Playground.razor index 4873e6c7..ff0fb72a 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/Pages/Playground.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/Pages/Playground.razor @@ -6,7 +6,7 @@

Azure OpenAI Proxy Playground

- + diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor new file mode 100644 index 00000000..b2806d6a --- /dev/null +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor @@ -0,0 +1,8 @@ + + + + +@code { + [Parameter] + public string? Id { get; set; } +} From 9c20518ad9341cb5a26b46a4a5c5f47e8236e58d Mon Sep 17 00:00:00 2001 From: juhangil Date: Tue, 10 Sep 2024 00:38:24 +0900 Subject: [PATCH 02/27] Add label with tooltip component --- .../Components/UI/LabelWithTooltip.razor | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor new file mode 100644 index 00000000..6530d23e --- /dev/null +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor @@ -0,0 +1,26 @@ + + @LabelText + + + @TooltipText + + + +@code { + [Parameter, EditorRequired] + public string Id { get; set; } = string.Empty; + + [Parameter, EditorRequired] + public string LabelText { get; set; } = string.Empty; + + [Parameter, EditorRequired] + public string TooltipText { get; set; } = string.Empty; + + private string anchorId = string.Empty; + + protected override void OnParametersSet() + { + base.OnParametersSet(); + anchorId = $"{Id}-tooltip"; + } +} \ No newline at end of file From a70db0fad4ebb8e32b819a5615375ba9b5da8ea1 Mon Sep 17 00:00:00 2001 From: juhangil Date: Tue, 10 Sep 2024 03:39:21 +0900 Subject: [PATCH 03/27] Add slider with text field component --- .../Components/UI/SliderWithTextfield.razor | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor new file mode 100644 index 00000000..6810dfd4 --- /dev/null +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor @@ -0,0 +1,72 @@ +@typeparam TValue where TValue : System.Numerics.INumber + + + + + + +@if (!hasNoError) +{ + + @errorText + +} + +@code { + [Parameter, EditorRequired] + public TValue? Min { get; set; } = default; + + [Parameter, EditorRequired] + public TValue? Max { get; set; } = default; + + [Parameter, EditorRequired] + public TValue? Step { get; set; } = default; + + [Parameter] + public TValue? Value { get; set; } + + [Parameter] + public EventCallback ValueChanged { get; set; } + + [Parameter] + public EventCallback OnChangeEvent { get; set; } + + public string? textFieldValue { get; set; } + + private bool hasNoError = true; + private string errorText = string.Empty; + + protected override void OnInitialized() + { + base.OnInitialized(); + textFieldValue = Value!.ToString(); + errorText = $"Only numbers between {Min} and {Max} are permitted"; + } + + private async Task AfterSliderChange() + { + hasNoError = true; + textFieldValue = Value!.ToString(); + + await ValueChanged.InvokeAsync(Value); + await OnChangeEvent.InvokeAsync(); + } + + private async Task AfterTextFieldChange() + { + hasNoError = TValue.TryParse(textFieldValue, null, out var parsed); + if (!hasNoError || parsed == null) + return; + + hasNoError = parsed >= Min! && parsed <= Max!; + if (!hasNoError) + return; + + this.Value = parsed; + await ValueChanged.InvokeAsync(Value); + await OnChangeEvent.InvokeAsync(); + } +} From 4661be787e5413d260fc8fdb21382f62293c386b Mon Sep 17 00:00:00 2001 From: juhangil Date: Tue, 10 Sep 2024 11:59:11 +0900 Subject: [PATCH 04/27] Add parameter tab ui contents --- .../UI/ParametersTabComponent.razor | 73 ++++++++++++++++++- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor index b2806d6a..df5c1f56 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor @@ -1,8 +1,77 @@ - +@using System.Linq + + + + + + + + + + + + + + + + + + Create "@(context)" + + + + + + + + @code { [Parameter] public string? Id { get; set; } -} + + private int pastMessagesValue = 10; + private int maxResponseValue = 800; + private double temperatureValue = 0.7; + private double topPValue = 0.95; + + private double frequencyPenaltyValue = 0; + private double presencePenaltyValue = 0; + + private IEnumerable stopSequenceValue = new List(); + private List searchTextItems = new(); + + private Task OnSearchAsync(OptionsSearchEventArgs e) + { + searchTextItems.Clear(); + if (string.IsNullOrEmpty(e.Text) || stopSequenceValue.Contains(e.Text)) + return Task.CompletedTask; + + searchTextItems.Add(e.Text); + e.Items = searchTextItems; + + return Task.CompletedTask; + } +} \ No newline at end of file From 36201f1892ce735dc7f24eec84c31809097d5308 Mon Sep 17 00:00:00 2001 From: juhangil Date: Tue, 10 Sep 2024 16:31:19 +0900 Subject: [PATCH 05/27] Move position css of child component to parent --- .../Components/UI/LabelWithTooltip.razor | 10 ++++-- .../UI/ParametersTabComponent.razor | 34 ++++++++++++------- .../Components/UI/SliderWithTextfield.razor | 13 ++++--- 3 files changed, 37 insertions(+), 20 deletions(-) diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor index 6530d23e..e2094444 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor @@ -1,7 +1,10 @@ - + @LabelText - + @TooltipText @@ -16,6 +19,9 @@ [Parameter, EditorRequired] public string TooltipText { get; set; } = string.Empty; + [Parameter] + public string? Style { get; set; } = null; + private string anchorId = string.Empty; protected override void OnParametersSet() diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor index df5c1f56..0cafc547 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor @@ -3,27 +3,33 @@ - + TooltipText="Select the number of past messages to include in each new API request. This helps give the model context for new user queries. Setting this number to 10 will include 5 user queries and 5 system responses." + Style="padding-left:10px;font-weight:bold" /> + + - + TooltipText="Set a limit on the number of tokens per model response. The API supports a maximum of MaxTokensPlaceholderDoNotTranslate tokens shared between the prompt (including system message, examples, message history, and user query) and the model's response. One token is roughly 4 characters for typical English text." + Style="padding-left:10px;font-weight:bold" /> + - + TooltipText="Controls randomness. Lowering the temperature means that the model will produce more repetitive and deterministic responses. Increasing the temperature will result in more unexpected or creative responses. Try adjusting temperature or Top P but not both." + Style="padding-left:10px;font-weight:bold" /> + - + TooltipText="Similar to temperature, this controls randomness but uses a different method. Lowering Top P will narrow the model’s token selection to likelier tokens. Increasing Top P will let the model choose from tokens with both high and low likelihood. Try adjusting temperature or Top P but not both." + Style="padding-left:10px;font-weight:bold" /> + + TooltipText="Make the model end its response at a desired point. The model response will end before the specified sequence, so it won't contain the stop sequence text. For ChatGPT, using <|im_end|> ensures that the model response doesn't generate a follow-up user query. You can include as many as four stop sequences." + Style="padding-left:10px;font-weight:bold" /> - + TooltipText="Reduce the chance of repeating a token proportionally based on how often it has appeared in the text so far. This decreases the likelihood of repeating the exact same text in a response." + Style="padding-left:10px;font-weight:bold" /> + - + TooltipText="Reduce the chance of repeating any token that has appeared in the text at all so far. This increases the likelihood of introducing new topics in a response." + Style="padding-left:10px;font-weight:bold" /> + @code { diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor index 6810dfd4..af0c9a6e 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor @@ -1,18 +1,18 @@ @typeparam TValue where TValue : System.Numerics.INumber - + + Style="width:88%;padding-top:15px;" /> + Style="width:12%;padding-left:0px" /> @if (!hasNoError) { - + @errorText - + } @code { @@ -34,6 +34,9 @@ [Parameter] public EventCallback OnChangeEvent { get; set; } + [Parameter] + public string? Style { get; set; } = null; + public string? textFieldValue { get; set; } private bool hasNoError = true; From 6a8d82df1aaa936397449e430a99ec61187dfeca Mon Sep 17 00:00:00 2001 From: juhangil Date: Tue, 10 Sep 2024 18:36:30 +0900 Subject: [PATCH 06/27] Comment and code style update --- .../Components/UI/LabelWithTooltip.razor | 3 +++ .../Components/UI/ParametersTabComponent.razor | 13 +++++++++++++ .../Components/UI/SliderWithTextfield.razor | 5 ++++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor index e2094444..80980fad 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor @@ -1,5 +1,7 @@  @LabelText + + @* Tooltip Image *@ @TooltipText + @code { diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor index 0cafc547..d1a8e504 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor @@ -1,6 +1,8 @@ @using System.Linq + + @* Past Messages Slider *@ + @* Max Response Slider *@ + + @* Temperature Slider *@ + + @* Top P Slider *@ + @* Stop Sequence Auto Complete *@ + @* Frequency Penalty Slider *@ + + @* Presence Penalty Slider *@ + + @code { diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor index af0c9a6e..f675c21a 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor @@ -1,18 +1,21 @@ @typeparam TValue where TValue : System.Numerics.INumber + + + @if (!hasNoError) { @errorText - + } @code { From 95039ebb16e2d88fd36ca95eb78238b8e8e03559 Mon Sep 17 00:00:00 2001 From: juhangil Date: Tue, 10 Sep 2024 19:18:02 +0900 Subject: [PATCH 07/27] Inherit fluent component base to derived component --- .../Components/UI/LabelWithTooltip.razor | 9 ++------- .../Components/UI/SliderWithTextfield.razor | 8 +++----- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor index 80980fad..b4e1c9af 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor @@ -1,4 +1,5 @@ - +@inherits FluentComponentBase + @LabelText @* Tooltip Image *@ @@ -13,18 +14,12 @@ @code { - [Parameter, EditorRequired] - public string Id { get; set; } = string.Empty; - [Parameter, EditorRequired] public string LabelText { get; set; } = string.Empty; [Parameter, EditorRequired] public string TooltipText { get; set; } = string.Empty; - [Parameter] - public string? Style { get; set; } = null; - private string anchorId = string.Empty; protected override void OnParametersSet() diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor index f675c21a..75f3e233 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor @@ -1,4 +1,5 @@ -@typeparam TValue where TValue : System.Numerics.INumber +@inherits FluentComponentBase +@typeparam TValue where TValue : System.Numerics.INumber @@ -7,7 +8,7 @@ Style="width:88%;padding-top:15px;" /> + Style="width:12%;padding-left:0px;font-size:9px" /> @@ -37,9 +38,6 @@ [Parameter] public EventCallback OnChangeEvent { get; set; } - [Parameter] - public string? Style { get; set; } = null; - public string? textFieldValue { get; set; } private bool hasNoError = true; From acb60479ee66c327a81f08585190d4d2e7460516 Mon Sep 17 00:00:00 2001 From: juhangil Date: Wed, 11 Sep 2024 01:08:41 +0900 Subject: [PATCH 08/27] Move inline styles to isolated css file --- .../Components/UI/LabelWithTooltip.razor | 10 ++--- .../UI/ParametersTabComponent.razor | 45 ++++++++++--------- .../UI/ParametersTabComponent.razor.css | 9 ++++ .../Components/UI/SliderWithTextfield.razor | 28 ++++++------ 4 files changed, 52 insertions(+), 40 deletions(-) create mode 100644 src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor.css diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor index b4e1c9af..88756b1d 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor @@ -1,5 +1,6 @@ @inherits FluentComponentBase - + +
@LabelText @* Tooltip Image *@ @@ -10,8 +11,7 @@ Style="line-break:anywhere"> @TooltipText - - +
@code { [Parameter, EditorRequired] @@ -22,9 +22,9 @@ private string anchorId = string.Empty; - protected override void OnParametersSet() + protected override void OnInitialized() { - base.OnParametersSet(); + base.OnInitialized(); anchorId = $"{Id}-tooltip"; } } \ No newline at end of file diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor index d1a8e504..58cdfa06 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor @@ -1,43 +1,44 @@ @using System.Linq - +
@* Past Messages Slider *@ + TooltipText="Select the number of past messages to include in each new API request. This helps give the model context for new user queries. Setting this number to 10 will include 5 user queries and 5 system responses." /> - + @* Max Response Slider *@ + TooltipText="Set a limit on the number of tokens per model response. The API supports a maximum of MaxTokensPlaceholderDoNotTranslate tokens shared between the prompt (including system message, examples, message history, and user query) and the model's response. One token is roughly 4 characters for typical English text." /> - + @* Temperature Slider *@ + TooltipText="Controls randomness. Lowering the temperature means that the model will produce more repetitive and deterministic responses. Increasing the temperature will result in more unexpected or creative responses. Try adjusting temperature or Top P but not both." /> - + @* Top P Slider *@ - + TooltipText="Similar to temperature, this controls randomness but uses a different method. Lowering Top P will narrow the model’s token selection to likelier tokens. Increasing Top P will let the model choose from tokens with both high and low likelihood. Try adjusting temperature or Top P but not both." /> + + @* Stop Sequence Auto Complete *@ + TooltipText="Make the model end its response at a desired point. The model response will end before the specified sequence, so it won't contain the stop sequence text. For ChatGPT, using <|im_end|> ensures that the model response doesn't generate a follow-up user query. You can include as many as four stop sequences." /> + TooltipText="Reduce the chance of repeating a token proportionally based on how often it has appeared in the text so far. This decreases the likelihood of repeating the exact same text in a response." /> - + @* Presence Penalty Slider *@ + TooltipText="Reduce the chance of repeating any token that has appeared in the text at all so far. This increases the likelihood of introducing new topics in a response." /> - + - +
@code { [Parameter] diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor.css b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor.css new file mode 100644 index 00000000..acab3cf1 --- /dev/null +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor.css @@ -0,0 +1,9 @@ +::deep .label-with-tooltip { + padding-left: 10px; + font-weight: bold; +} + +::deep .slider-with-text { + padding-left: 5px; + padding-right: 10px; +} \ No newline at end of file diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor index 75f3e233..1506b605 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor @@ -1,23 +1,25 @@ @inherits FluentComponentBase @typeparam TValue where TValue : System.Numerics.INumber - +
+ - + - + - + -@if (!hasNoError) -{ - - @errorText - -} + @if (!hasNoError) + { + + @errorText + + } +
@code { [Parameter, EditorRequired] From 6951bbf66da26626fffa390aacd67d3d65e42670 Mon Sep 17 00:00:00 2001 From: juhangil Date: Mon, 16 Sep 2024 14:33:53 +0900 Subject: [PATCH 09/27] Resolve merge conflict --- .../Components/Pages/Playground.razor | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/Pages/Playground.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/Pages/Playground.razor index ff0fb72a..aa9e0492 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/Pages/Playground.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/Pages/Playground.razor @@ -11,7 +11,8 @@ - +
From e65f4eca4d920428234a3c1a455fc6cc785e88be Mon Sep 17 00:00:00 2001 From: juhangil Date: Mon, 16 Sep 2024 18:46:01 +0900 Subject: [PATCH 10/27] Resolve merge conflict --- .../Components/Pages/Playground.razor | 2 +- .../Components/UI/ConfigTabComponent.razor | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/Pages/Playground.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/Pages/Playground.razor index aa9e0492..2425fb7c 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/Pages/Playground.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/Pages/Playground.razor @@ -12,7 +12,7 @@ + Style="border:1px solid lightgrey">
diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ConfigTabComponent.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ConfigTabComponent.razor index fcfeafb7..afe64b81 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ConfigTabComponent.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ConfigTabComponent.razor @@ -4,7 +4,7 @@ - This is "Parameters" tab. + From b14d8a3fef12fe86d2f320d3b666cc44212e775d Mon Sep 17 00:00:00 2001 From: juhangil Date: Wed, 18 Sep 2024 06:34:04 +0900 Subject: [PATCH 11/27] Move label component to slider and list --- .../Components/UI/LabelWithTooltip.razor | 30 ----- .../UI/ParameterListComponent.razor | 56 ++++++++++ ...d.razor => ParameterSliderComponent.razor} | 49 ++++++--- .../UI/ParameterSliderComponent.razor.css | 26 +++++ .../UI/ParametersTabComponent.razor | 103 +++++++----------- .../UI/ParametersTabComponent.razor.css | 9 -- 6 files changed, 154 insertions(+), 119 deletions(-) delete mode 100644 src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor create mode 100644 src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParameterListComponent.razor rename src/AzureOpenAIProxy.PlaygroundApp/Components/UI/{SliderWithTextfield.razor => ParameterSliderComponent.razor} (56%) create mode 100644 src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParameterSliderComponent.razor.css delete mode 100644 src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor.css diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor deleted file mode 100644 index 88756b1d..00000000 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/LabelWithTooltip.razor +++ /dev/null @@ -1,30 +0,0 @@ -@inherits FluentComponentBase - -
- @LabelText - - @* Tooltip Image *@ - - - @TooltipText - -
- -@code { - [Parameter, EditorRequired] - public string LabelText { get; set; } = string.Empty; - - [Parameter, EditorRequired] - public string TooltipText { get; set; } = string.Empty; - - private string anchorId = string.Empty; - - protected override void OnInitialized() - { - base.OnInitialized(); - anchorId = $"{Id}-tooltip"; - } -} \ No newline at end of file diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParameterListComponent.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParameterListComponent.razor new file mode 100644 index 00000000..184f0e71 --- /dev/null +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParameterListComponent.razor @@ -0,0 +1,56 @@ +@inherits FluentComponentBase + +
+ + +
+ + + Create "@(context)" + + +
+
+ +@code { + [Parameter, EditorRequired] + public string LabelText { get; set; } = string.Empty; + + [Parameter, EditorRequired] + public string TooltipText { get; set; } = string.Empty; + + private IEnumerable stopSequenceValue = new List(); + private List searchTextItems = new(); + + private Task OnSearchAsync(OptionsSearchEventArgs e) + { + searchTextItems.Clear(); + if (string.IsNullOrEmpty(e.Text) || stopSequenceValue.Contains(e.Text)) + return Task.CompletedTask; + + searchTextItems.Add(e.Text); + e.Items = searchTextItems; + + return Task.CompletedTask; + } +} diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParameterSliderComponent.razor similarity index 56% rename from src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor rename to src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParameterSliderComponent.razor index 1506b605..01f3c052 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/SliderWithTextfield.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParameterSliderComponent.razor @@ -1,21 +1,38 @@ @inherits FluentComponentBase @typeparam TValue where TValue : System.Numerics.INumber -
- - - - - +
+ + + + + + + @if (!hasNoError) { - + @errorText } @@ -37,8 +54,11 @@ [Parameter] public EventCallback ValueChanged { get; set; } - [Parameter] - public EventCallback OnChangeEvent { get; set; } + [Parameter, EditorRequired] + public string LabelText { get; set; } = string.Empty; + + [Parameter, EditorRequired] + public string TooltipText { get; set; } = string.Empty; public string? textFieldValue { get; set; } @@ -47,9 +67,10 @@ protected override void OnInitialized() { - base.OnInitialized(); textFieldValue = Value!.ToString(); errorText = $"Only numbers between {Min} and {Max} are permitted"; + + base.OnInitialized(); } private async Task AfterSliderChange() @@ -58,7 +79,6 @@ textFieldValue = Value!.ToString(); await ValueChanged.InvokeAsync(Value); - await OnChangeEvent.InvokeAsync(); } private async Task AfterTextFieldChange() @@ -73,6 +93,5 @@ this.Value = parsed; await ValueChanged.InvokeAsync(Value); - await OnChangeEvent.InvokeAsync(); } } diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParameterSliderComponent.razor.css b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParameterSliderComponent.razor.css new file mode 100644 index 00000000..9f15a73b --- /dev/null +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParameterSliderComponent.razor.css @@ -0,0 +1,26 @@ +::deep .parameter-label { + display: inline-block; + padding-left: 5px; + font-weight: bold; + font-size: 8px; +} + +::deep .parameter-slider { + width: 88%; + padding-top: 15px; +} + +::deep .parameter-textfield { + width: 12%; + font-size: 9px; + padding-right: 5px; +} + +::deep .parameter-error { + padding: 10px; + width: 95%; + margin: 5px auto; + border-color: crimson; + background-color: lightcoral; + color: black +} diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor index 58cdfa06..4ea33346 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor @@ -1,73 +1,58 @@ @using System.Linq
+ @* Past Messages Slider *@ - - - + @* Max Response Slider *@ - - - + @* Temperature Slider *@ - - - + @* Top P Slider *@ - - - + @* Stop Sequence Auto Complete *@ - - - - - Create "@(context)" - - + @* Frequency Penalty Slider *@ - - - + @* Presence Penalty Slider *@ - - - - +
@code { @@ -84,16 +69,4 @@ private IEnumerable stopSequenceValue = new List(); private List searchTextItems = new(); - - private Task OnSearchAsync(OptionsSearchEventArgs e) - { - searchTextItems.Clear(); - if (string.IsNullOrEmpty(e.Text) || stopSequenceValue.Contains(e.Text)) - return Task.CompletedTask; - - searchTextItems.Add(e.Text); - e.Items = searchTextItems; - - return Task.CompletedTask; - } } \ No newline at end of file diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor.css b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor.css deleted file mode 100644 index acab3cf1..00000000 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor.css +++ /dev/null @@ -1,9 +0,0 @@ -::deep .label-with-tooltip { - padding-left: 10px; - font-weight: bold; -} - -::deep .slider-with-text { - padding-left: 5px; - padding-right: 10px; -} \ No newline at end of file From 5d2ccb4e766bf8d07ec11ce55b913f0f4eec8b8d Mon Sep 17 00:00:00 2001 From: juhangil Date: Thu, 19 Sep 2024 14:49:17 +0900 Subject: [PATCH 12/27] Move label css to parent tab css file --- .../Components/UI/ParameterListComponent.razor | 2 +- .../Components/UI/ParameterSliderComponent.razor.css | 2 -- .../Components/UI/ParametersTabComponent.razor | 2 +- .../Components/UI/ParametersTabComponent.razor.css | 4 ++++ 4 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParametersTabComponent.razor.css diff --git a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParameterListComponent.razor b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParameterListComponent.razor index 184f0e71..81007a2f 100644 --- a/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParameterListComponent.razor +++ b/src/AzureOpenAIProxy.PlaygroundApp/Components/UI/ParameterListComponent.razor @@ -2,7 +2,7 @@