From 76d64aab6e811d99a6a392483adf53996fb4b8ed Mon Sep 17 00:00:00 2001 From: Richard Dizon Date: Wed, 12 Nov 2025 13:45:37 -0800 Subject: [PATCH 1/2] Add Describe Your Change sample --- .../Examples/TextIntelligenceDescribe.md | 12 +++++++ .../cs-winui/Models/LanguageModelModel.cs | 32 +++++++++++++++++++ .../cs-winui/Pages/LanguageModelPage.xaml | 31 ++++++++++++++++++ .../ViewModels/LanguageModelViewModel.cs | 17 ++++++++++ 4 files changed, 92 insertions(+) create mode 100644 Samples/WindowsAIFoundry/cs-winui/Examples/TextIntelligenceDescribe.md diff --git a/Samples/WindowsAIFoundry/cs-winui/Examples/TextIntelligenceDescribe.md b/Samples/WindowsAIFoundry/cs-winui/Examples/TextIntelligenceDescribe.md new file mode 100644 index 000000000..4f43137b6 --- /dev/null +++ b/Samples/WindowsAIFoundry/cs-winui/Examples/TextIntelligenceDescribe.md @@ -0,0 +1,12 @@ +IProgress progress; +using LanguageModel languageModel = await LanguageModel.CreateAsync(); +var textRewriter = new TextRewriter(languageModel); + +var textRewriterResponseWithProgress = textRewriter.RewriteCustomAsync(prompt, customTone); + +string progressText = string.Empty; +textRewriterResponseWithProgress.Progress = (_, generationProgress) => +{ + progress.Report(generationProgress); +}; +var response = await textRewriterResponseWithProgress; diff --git a/Samples/WindowsAIFoundry/cs-winui/Models/LanguageModelModel.cs b/Samples/WindowsAIFoundry/cs-winui/Models/LanguageModelModel.cs index 221d75d0b..5a3c40c39 100644 --- a/Samples/WindowsAIFoundry/cs-winui/Models/LanguageModelModel.cs +++ b/Samples/WindowsAIFoundry/cs-winui/Models/LanguageModelModel.cs @@ -82,6 +82,38 @@ public IAsyncOperationWithProgress ); } + public IAsyncOperationWithProgress + GenerateResponseTextIntelligenceDescribeWithProgressAsync(string prompt) + { + IAsyncOperationWithProgress response; + + response = SessionTextRewrite.RewriteCustomAsync(prompt, "Make me sound like Yoda"); + + // Add completion handler to debug any errors + response.Completed = (asyncInfo, asyncStatus) => + { + if (asyncStatus == AsyncStatus.Error) + { + Debug.WriteLine($"RewriteCustomAsync failed with error: {asyncInfo.ErrorCode?.Message}"); + } + else if (asyncStatus == AsyncStatus.Completed) + { + var result = asyncInfo.GetResults(); + Debug.WriteLine($"RewriteCustomAsync completed with status: {result.Status}"); + if (result.Status == LanguageModelResponseStatus.Error) + { + Debug.WriteLine($"Model returned error."); + } + } + }; + + return new AsyncOperationWithProgressAdapter( + response, + result => result /* LanguageModelResponseResult */, + progress => progress + ); + } + public string GenerateResponseTextIntelligenceTextToTableAsync(string prompt) { diff --git a/Samples/WindowsAIFoundry/cs-winui/Pages/LanguageModelPage.xaml b/Samples/WindowsAIFoundry/cs-winui/Pages/LanguageModelPage.xaml index 0c21366ef..fc4105ba3 100644 --- a/Samples/WindowsAIFoundry/cs-winui/Pages/LanguageModelPage.xaml +++ b/Samples/WindowsAIFoundry/cs-winui/Pages/LanguageModelPage.xaml @@ -133,6 +133,37 @@ Margin="10"/> + + + + + + + + + + + + _generateResponseWithTextIntelligenceSummarizeSkills; private readonly AsyncCommandWithProgress _generateResponseWithTextIntelligenceRewriteSkills; + private readonly AsyncCommandWithProgress _generateResponseWithTextIntelligenceDescribeSkills; private readonly AsyncCommand _generateResponseWithTextIntelligenceTextToTableSkills; private readonly StringBuilder _responseProgress = new(); @@ -90,6 +91,20 @@ public LanguageModelViewModel(LanguageModelModel languageModelSession) _generateResponseWithTextIntelligenceRewriteSkills.ResultProgressHandler += OnResultProgressTextIntelligence; _generateResponseWithTextIntelligenceRewriteSkills.ResultHandler += OnResultTextIntelligence; + // GenerateResponseWithTextIntelligenceDescribeSkills + _generateResponseWithTextIntelligenceDescribeSkills = new( + prompt => + { + _responseProgressTextIntelligence.Clear(); + DispatchPropertyChanged(nameof(ResponseProgressTextIntelligence)); + + return Session.GenerateResponseTextIntelligenceDescribeWithProgressAsync(prompt!); + }, + (prompt) => IsAvailable && !string.IsNullOrEmpty(TextIntelligencePrompt)); + + _generateResponseWithTextIntelligenceDescribeSkills.ResultProgressHandler += OnResultProgressTextIntelligence; + _generateResponseWithTextIntelligenceDescribeSkills.ResultHandler += OnResultTextIntelligence; + // GenerateResponseWithTextIntelligenceTextToTableSkills _generateResponseWithTextIntelligenceTextToTableSkills = new( prompt => @@ -206,12 +221,14 @@ public SeverityLevel SelfHarmContentSevToBlockForResponse public ICommand GenerateResponseWithTextIntelligenceSummarizeSkills => _generateResponseWithTextIntelligenceSummarizeSkills; public ICommand GenerateResponseWithTextIntelligenceRewriteSkills => _generateResponseWithTextIntelligenceRewriteSkills; + public ICommand GenerateResponseWithTextIntelligenceDescribeSkills => _generateResponseWithTextIntelligenceDescribeSkills; public ICommand GenerateResponseWithTextIntelligenceTextToTableSkills => _generateResponseWithTextIntelligenceTextToTableSkills; protected override void OnIsAvailableChanged() { _generateResponseWithTextIntelligenceSummarizeSkills.FireCanExecuteChanged(); _generateResponseWithTextIntelligenceRewriteSkills.FireCanExecuteChanged(); + _generateResponseWithTextIntelligenceDescribeSkills.FireCanExecuteChanged(); _generateResponseWithTextIntelligenceTextToTableSkills.FireCanExecuteChanged(); } From 0d92035c53347fdbc2324cae3fff94ec2a9e1912 Mon Sep 17 00:00:00 2001 From: Richard Dizon Date: Wed, 12 Nov 2025 13:58:58 -0800 Subject: [PATCH 2/2] Comment build specifications --- Samples/WindowsAIFoundry/cs-winui/global.json | 1 + Samples/nuget.config | 3 +++ 2 files changed, 4 insertions(+) diff --git a/Samples/WindowsAIFoundry/cs-winui/global.json b/Samples/WindowsAIFoundry/cs-winui/global.json index 50ad33eb4..b2683c48c 100644 --- a/Samples/WindowsAIFoundry/cs-winui/global.json +++ b/Samples/WindowsAIFoundry/cs-winui/global.json @@ -1,5 +1,6 @@ { "sdk": { + // "version": "9.0.305", "version": "8.0.100", "allowPrerelease": true, "rollForward": "latestFeature" diff --git a/Samples/nuget.config b/Samples/nuget.config index 24e7b8484..3399ef7a3 100644 --- a/Samples/nuget.config +++ b/Samples/nuget.config @@ -15,6 +15,9 @@ +