From af6ce882735d6b52e90918239cc4406ab78f844e Mon Sep 17 00:00:00 2001 From: Zachary Teutsch Date: Thu, 23 Jan 2025 18:49:00 -0800 Subject: [PATCH 1/3] Save custom parameters state with AppData --- .../Language Models/CustomSystemPrompt.xaml | 2 +- .../CustomSystemPrompt.xaml.cs | 33 +++++++++++++++++++ AIDevGallery/Utils/AppData.cs | 13 ++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/AIDevGallery/Samples/Open Source Models/Language Models/CustomSystemPrompt.xaml b/AIDevGallery/Samples/Open Source Models/Language Models/CustomSystemPrompt.xaml index 8715503..57cff7a 100644 --- a/AIDevGallery/Samples/Open Source Models/Language Models/CustomSystemPrompt.xaml +++ b/AIDevGallery/Samples/Open Source Models/Language Models/CustomSystemPrompt.xaml @@ -39,7 +39,7 @@ AcceptsReturn="True" AutomationProperties.Name="Prompt input" PlaceholderText="Enter a system prompt for the model..." - Text="You are a helpful assistant." + Text="{x:Bind defaultSystemPrompt, Mode=OneTime}" TextWrapping="Wrap" /> CleanUp(); + Unloaded += (s, e) => Page_Unloaded(); // Loaded += (s, e) => Page_Loaded(); // InitializeComponent(); DoSampleToggle.Toggled += DoSampleToggle_Toggled; @@ -56,6 +59,36 @@ protected override async Task LoadModelAsync(SampleNavigationParameters samplePa private void Page_Loaded() { InputTextBox.Focus(FocusState.Programmatic); + CustomParametersState? lastState = App.AppData.LastCustomParamtersState; + if (lastState != null) + { + DoSampleToggle.IsOn = lastState.DoSample ?? defaultDoSample; + MinLengthSlider.Value = lastState.MinLength ?? 0; + MaxLengthSlider.Value = lastState.MaxLength ?? defaultMaxLength; + TopKSlider.Value = lastState.TopK ?? defaultTopK; + TemperatureSlider.Value = lastState.Temperature ?? defaultTemperature; + TopPSlider.Value = lastState.TopP ?? defaultTopP; + SystemPromptInputTextBox.Text = lastState.SystemPrompt ?? defaultSystemPrompt; + InputTextBox.Text = lastState.UserPrompt ?? string.Empty; + } + } + + private void Page_Unloaded() + { + CustomParametersState lastState = new() + { + DoSample = DoSampleToggle.IsOn, + MinLength = (int)MinLengthSlider.Value, + MaxLength = (int)MaxLengthSlider.Value, + TopK = (int)TopKSlider.Value, + TopP = (float)TopPSlider.Value, + Temperature = (float)TemperatureSlider.Value, + SystemPrompt = SystemPromptInputTextBox.Text, + UserPrompt = InputTextBox.Text + }; + + App.AppData.LastCustomParamtersState = lastState; + App.AppData.SaveAsync(); } // diff --git a/AIDevGallery/Utils/AppData.cs b/AIDevGallery/Utils/AppData.cs index e636359..0cf38ad 100644 --- a/AIDevGallery/Utils/AppData.cs +++ b/AIDevGallery/Utils/AppData.cs @@ -16,6 +16,7 @@ internal class AppData { public required string ModelCachePath { get; set; } public required LinkedList MostRecentlyUsedItems { get; set; } + public CustomParametersState? LastCustomParamtersState { get; set; } // model or api ids public required LinkedList UsageHistory { get; set; } @@ -101,4 +102,16 @@ private static AppData GetDefault() UsageHistory = new() }; } +} + +internal class CustomParametersState +{ + public bool? DoSample { get; set; } + public int? MaxLength { get; set; } + public int? MinLength { get; set; } + public int? TopK { get; set; } + public float? TopP { get; set; } + public float? Temperature { get; set; } + public string? UserPrompt { get; set; } + public string? SystemPrompt { get; set; } } \ No newline at end of file From 4288b417f128002d012fd0bb5684e8228d955e28 Mon Sep 17 00:00:00 2001 From: Zachary Teutsch Date: Thu, 23 Jan 2025 20:04:22 -0800 Subject: [PATCH 2/3] added await --- .../Language Models/CustomSystemPrompt.xaml.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AIDevGallery/Samples/Open Source Models/Language Models/CustomSystemPrompt.xaml.cs b/AIDevGallery/Samples/Open Source Models/Language Models/CustomSystemPrompt.xaml.cs index 8ebacb8..e75c22f 100644 --- a/AIDevGallery/Samples/Open Source Models/Language Models/CustomSystemPrompt.xaml.cs +++ b/AIDevGallery/Samples/Open Source Models/Language Models/CustomSystemPrompt.xaml.cs @@ -73,7 +73,7 @@ private void Page_Loaded() } } - private void Page_Unloaded() + private async void Page_Unloaded() { CustomParametersState lastState = new() { @@ -88,7 +88,7 @@ private void Page_Unloaded() }; App.AppData.LastCustomParamtersState = lastState; - App.AppData.SaveAsync(); + await App.AppData.SaveAsync(); } // From c08ea1465e973b7272a24a0715dffa3eae29f3ac Mon Sep 17 00:00:00 2001 From: Niels Laute Date: Fri, 24 Jan 2025 17:03:38 +0100 Subject: [PATCH 3/3] UI tweaks --- .../Language Models/CustomSystemPrompt.xaml | 241 +++++++++--------- 1 file changed, 116 insertions(+), 125 deletions(-) diff --git a/AIDevGallery/Samples/Open Source Models/Language Models/CustomSystemPrompt.xaml b/AIDevGallery/Samples/Open Source Models/Language Models/CustomSystemPrompt.xaml index 57cff7a..e1dd91d 100644 --- a/AIDevGallery/Samples/Open Source Models/Language Models/CustomSystemPrompt.xaml +++ b/AIDevGallery/Samples/Open Source Models/Language Models/CustomSystemPrompt.xaml @@ -1,167 +1,158 @@ - + - - - - - - - - - - - - - + + + + + + - - - - - - - - + HorizontalAlignment="Right" + Orientation="Horizontal" + Spacing="8"> + + + + + + + + + + + +