From ed908998d326b86f6fb9312ed2080a6ef0b58df1 Mon Sep 17 00:00:00 2001
From: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
Date: Wed, 23 Apr 2025 10:43:46 -0700
Subject: [PATCH 1/6] Added dotnet starter project for Process Framework
---
.../ProductDocumentation.csproj | 14 ++++++
.../ProductDocumentationDotnet/README.md | 45 +++++++++++++++++
.../Steps/GenerateDocumentationStep.cs | 47 ++++++++++++++++++
.../Steps/GetProductInfoStep.cs | 25 ++++++++++
.../Steps/PublishDocumentationStep.cs | 12 +++++
.../images/execute-process.jpeg | Bin 0 -> 89011 bytes
.../images/preview-process.jpeg | Bin 0 -> 87188 bytes
.../product-documentation.process.yaml | 43 ++++++++++++++++
8 files changed, 186 insertions(+)
create mode 100644 sk-process-framework/ProductDocumentationDotnet/ProductDocumentation.csproj
create mode 100644 sk-process-framework/ProductDocumentationDotnet/README.md
create mode 100644 sk-process-framework/ProductDocumentationDotnet/Steps/GenerateDocumentationStep.cs
create mode 100644 sk-process-framework/ProductDocumentationDotnet/Steps/GetProductInfoStep.cs
create mode 100644 sk-process-framework/ProductDocumentationDotnet/Steps/PublishDocumentationStep.cs
create mode 100644 sk-process-framework/ProductDocumentationDotnet/images/execute-process.jpeg
create mode 100644 sk-process-framework/ProductDocumentationDotnet/images/preview-process.jpeg
create mode 100644 sk-process-framework/ProductDocumentationDotnet/product-documentation.process.yaml
diff --git a/sk-process-framework/ProductDocumentationDotnet/ProductDocumentation.csproj b/sk-process-framework/ProductDocumentationDotnet/ProductDocumentation.csproj
new file mode 100644
index 0000000..782b8cf
--- /dev/null
+++ b/sk-process-framework/ProductDocumentationDotnet/ProductDocumentation.csproj
@@ -0,0 +1,14 @@
+
+
+
+ net8.0
+ enable
+ enable
+ SKEXP0080
+
+
+
+
+
+
+
diff --git a/sk-process-framework/ProductDocumentationDotnet/README.md b/sk-process-framework/ProductDocumentationDotnet/README.md
new file mode 100644
index 0000000..4362c24
--- /dev/null
+++ b/sk-process-framework/ProductDocumentationDotnet/README.md
@@ -0,0 +1,45 @@
+# Process Framework: Product Documentation application example
+
+This project example demonstrates how to define, preview, and execute a process of generating product documentation.
+
+Note: it is recommended to work with this example using [Semantic Kernel Tools](https://marketplace.visualstudio.com/items?itemName=ms-semantic-kernel.semantic-kernel) VS Code extension.
+
+## Prerequisites
+
+- Install [.NET 8](https://dotnet.microsoft.com/download/dotnet/8.0).
+
+## Setup
+
+1. Open a terminal in the project directory.
+2. Run `dotnet build` command to build the logic of the process nodes.
+
+## Getting Started
+
+1. Open the [product-documentation.process.yaml](./product-documentation.process.yaml) file in VS Code to start working with processes.
+
+## Features
+
+### Preview a Process
+
+To preview a process:
+- Open the [product-documentation.process.yaml](./product-documentation.process.yaml) file.
+- Click the **Preview Process** button in the top bar of the process file.
+
+
+
+### Execute a Process
+
+To execute a process:
+- Open the [product-documentation.process.yaml](./product-documentation.process.yaml) file.
+- Click the **Execute Process** button in the top bar of the process file.
+
+
+
+### Process Node Logic
+
+- The source code for each process node's logic is located in the [Steps](./Steps/) folder.
+- Explore this folder to review or modify the logic for individual process steps.
+
+## Reporting Issues
+
+If you encounter any issues or have suggestions, please report them on our [GitHub repository](https://github.com/microsoft/semantic-kernel).
diff --git a/sk-process-framework/ProductDocumentationDotnet/Steps/GenerateDocumentationStep.cs b/sk-process-framework/ProductDocumentationDotnet/Steps/GenerateDocumentationStep.cs
new file mode 100644
index 0000000..e979ddf
--- /dev/null
+++ b/sk-process-framework/ProductDocumentationDotnet/Steps/GenerateDocumentationStep.cs
@@ -0,0 +1,47 @@
+using Microsoft.SemanticKernel.ChatCompletion;
+using Microsoft.SemanticKernel;
+
+namespace ProductDocumentation.Steps;
+
+public sealed class GenerateDocumentationStep : KernelProcessStep
+{
+ private GeneratedDocumentationState _state = new();
+
+ private string systemPrompt =
+ """
+ Your job is to write high quality and engaging customer facing documentation for a new product from Contoso. You will be provide with information
+ about the product in the form of internal documentation, specs, and troubleshooting guides and you must use this information and
+ nothing else to generate the documentation. If suggestions are provided on the documentation you create, take the suggestions into account and
+ rewrite the documentation. Make sure the product sounds amazing.
+ """;
+
+ public override ValueTask ActivateAsync(KernelProcessStepState state)
+ {
+ _state = state.State!;
+ _state.ChatHistory ??= new ChatHistory(systemPrompt);
+
+ return base.ActivateAsync(state);
+ }
+
+ [KernelFunction]
+ public async Task GenerateDocumentation(Kernel kernel, KernelProcessStepContext context, string productInfo)
+ {
+ // Add the new product info to the chat history
+ _state.ChatHistory!.AddUserMessage($"Product Info:\n\n{productInfo}");
+
+ // Get a response from the LLM
+ IChatCompletionService chatCompletionService = kernel.GetRequiredService();
+ var generatedDocumentationResponse = await chatCompletionService.GetChatMessageContentAsync(this._state.ChatHistory!);
+
+ var documentationString = generatedDocumentationResponse.Content!.ToString();
+
+ await context.EmitEventAsync("DocumentationGenerated", documentationString);
+
+ return documentationString;
+ }
+}
+
+public class GeneratedDocumentationState
+{
+ public ChatHistory? ChatHistory { get; set; }
+}
diff --git a/sk-process-framework/ProductDocumentationDotnet/Steps/GetProductInfoStep.cs b/sk-process-framework/ProductDocumentationDotnet/Steps/GetProductInfoStep.cs
new file mode 100644
index 0000000..aa23591
--- /dev/null
+++ b/sk-process-framework/ProductDocumentationDotnet/Steps/GetProductInfoStep.cs
@@ -0,0 +1,25 @@
+using Microsoft.SemanticKernel;
+
+namespace ProductDocumentation.Steps;
+
+public sealed class GetProductInfoStep : KernelProcessStep
+{
+ [KernelFunction]
+ public string GetProductInfo()
+ {
+ return
+ """
+ Product Description:
+ GlowBrew is a revolutionary AI driven coffee machine with industry leading number of LEDs and programmable light shows. The machine is also capable of brewing coffee and has a built in grinder.
+
+ Product Features:
+ 1. **Luminous Brew Technology**: Customize your morning ambiance with programmable LED lights that sync with your brewing process.
+ 2. **AI Taste Assistant**: Learns your taste preferences over time and suggests new brew combinations to explore.
+ 3. **Gourmet Aroma Diffusion**: Built-in aroma diffusers enhance your coffee's scent profile, energizing your senses before the first sip.
+
+ Troubleshooting:
+ - **Issue**: LED Lights Malfunctioning
+ - **Solution**: Reset the lighting settings via the app. Ensure the LED connections inside the GlowBrew are secure. Perform a factory reset if necessary.
+ """;
+ }
+}
diff --git a/sk-process-framework/ProductDocumentationDotnet/Steps/PublishDocumentationStep.cs b/sk-process-framework/ProductDocumentationDotnet/Steps/PublishDocumentationStep.cs
new file mode 100644
index 0000000..c590156
--- /dev/null
+++ b/sk-process-framework/ProductDocumentationDotnet/Steps/PublishDocumentationStep.cs
@@ -0,0 +1,12 @@
+using Microsoft.SemanticKernel;
+
+namespace ProductDocumentation.Steps;
+
+public sealed class PublishDocumentationStep : KernelProcessStep
+{
+ [KernelFunction]
+ public string PublishDocumentation()
+ {
+ return "Publishing product documentation...";
+ }
+}
diff --git a/sk-process-framework/ProductDocumentationDotnet/images/execute-process.jpeg b/sk-process-framework/ProductDocumentationDotnet/images/execute-process.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..7123ee76cea10666f6b4810fe4fa1a6a4b2faf47
GIT binary patch
literal 89011
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