From 6cdcc3fca2db1701a233ddf2462b230135057147 Mon Sep 17 00:00:00 2001 From: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com> Date: Fri, 28 Jun 2024 12:41:47 -0700 Subject: [PATCH 1/6] Removed experimental flags. Updated documentation. --- dotnet/docs/EXPERIMENTS.md | 2 +- .../Optimization/{FrugalGPT.cs => FrugalGPTWithFilters.cs} | 2 +- .../{PluginSelection.cs => PluginSelectionWithFilters.cs} | 6 +++--- dotnet/samples/Concepts/README.md | 4 ++-- .../AutoFunctionInvocation/AutoFunctionInvocationContext.cs | 2 -- .../AutoFunctionInvocation/IAutoFunctionInvocationFilter.cs | 2 -- .../Filters/Function/FunctionInvocationContext.cs | 3 --- .../Filters/Function/IFunctionInvocationFilter.cs | 2 -- .../Filters/Prompt/IPromptRenderFilter.cs | 2 -- .../Filters/Prompt/PromptRenderContext.cs | 3 --- dotnet/src/SemanticKernel.Abstractions/Kernel.cs | 5 ----- 11 files changed, 7 insertions(+), 26 deletions(-) rename dotnet/samples/Concepts/Optimization/{FrugalGPT.cs => FrugalGPTWithFilters.cs} (99%) rename dotnet/samples/Concepts/Optimization/{PluginSelection.cs => PluginSelectionWithFilters.cs} (99%) diff --git a/dotnet/docs/EXPERIMENTS.md b/dotnet/docs/EXPERIMENTS.md index 2be4606e5596..1213902cfd98 100644 --- a/dotnet/docs/EXPERIMENTS.md +++ b/dotnet/docs/EXPERIMENTS.md @@ -31,7 +31,7 @@ You can use the following diagnostic IDs to ignore warnings or errors for a part | SKEXP0001 | Embedding services | | | | | | | SKEXP0001 | Image services | | | | | | | SKEXP0001 | Memory connectors | | | | | | -| SKEXP0001 | Kernel filters | | | | | | +| SKEXP0001 | Kernel filters | [AutoFunctionInvocationContext Class](https://learn.microsoft.com/en-us/dotnet/api/microsoft.semantickernel.autofunctioninvocationcontext?view=semantic-kernel-dotnet)
[IAutoFunctionInvocationFilter Interface](https://learn.microsoft.com/en-us/dotnet/api/microsoft.semantickernel.iautofunctioninvocationfilter?view=semantic-kernel-dotnet)
[FunctionInvocationContext Class](https://learn.microsoft.com/en-us/dotnet/api/microsoft.semantickernel.functioninvocationcontext?view=semantic-kernel-dotnet)
[IFunctionInvocationFilter Interface](https://learn.microsoft.com/en-us/dotnet/api/microsoft.semantickernel.ifunctioninvocationfilter?view=semantic-kernel-dotnet)
[IPromptRenderFilter Interface](https://learn.microsoft.com/en-us/dotnet/api/microsoft.semantickernel.ipromptrenderfilter?view=semantic-kernel-dotnet)
[PromptRenderContext Class](https://learn.microsoft.com/en-us/dotnet/api/microsoft.semantickernel.promptrendercontext?view=semantic-kernel-dotnet) | | [Auto Function Invocation Filtering](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Filtering/AutoFunctionInvocationFiltering.cs)
[Function Invocation Filtering](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Filtering/FunctionInvocationFiltering.cs)
[Prompt Render Filtering](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Filtering/PromptRenderFiltering.cs)
[FrugalGPT with Filters](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Optimization/FrugalGPTWithFilters.cs)
[Plugin selection with Filters](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Optimization/PluginSelectionWithFilters.cs)
[PII Detection](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Filtering/PIIDetection.cs)
[Retry with Filters](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Filtering/RetryWithFilters.cs)
[Telemetry with Filters](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Filtering/TelemetryWithFilters.cs)
[Semantic Caching with Filters](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Caching/SemanticCachingWithFilters.cs)
[Azure AI Content Safety and Prompt Shields service](https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples/Demos/ContentSafety)
[Function Invocation Approval](https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples/Demos/FunctionInvocationApproval)
[Quality Check with Filters](https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples/Demos/QualityCheck) | | | | SKEXP0001 | Audio services | | | | | | | | | | | | | | | SKEXP0010 | Azure OpenAI with your data service | | | | | | diff --git a/dotnet/samples/Concepts/Optimization/FrugalGPT.cs b/dotnet/samples/Concepts/Optimization/FrugalGPTWithFilters.cs similarity index 99% rename from dotnet/samples/Concepts/Optimization/FrugalGPT.cs rename to dotnet/samples/Concepts/Optimization/FrugalGPTWithFilters.cs index f5ede1764789..2ac3fce56b23 100644 --- a/dotnet/samples/Concepts/Optimization/FrugalGPT.cs +++ b/dotnet/samples/Concepts/Optimization/FrugalGPTWithFilters.cs @@ -15,7 +15,7 @@ namespace Optimization; /// This example shows how to use FrugalGPT techniques to reduce cost and improve LLM-related task performance. /// More information here: https://arxiv.org/abs/2305.05176. /// -public sealed class FrugalGPT(ITestOutputHelper output) : BaseTest(output) +public sealed class FrugalGPTWithFilters(ITestOutputHelper output) : BaseTest(output) { /// /// One of the FrugalGPT techniques is to reduce prompt size when using few-shot prompts. diff --git a/dotnet/samples/Concepts/Optimization/PluginSelection.cs b/dotnet/samples/Concepts/Optimization/PluginSelectionWithFilters.cs similarity index 99% rename from dotnet/samples/Concepts/Optimization/PluginSelection.cs rename to dotnet/samples/Concepts/Optimization/PluginSelectionWithFilters.cs index 70c55456e72d..bd1766a61597 100644 --- a/dotnet/samples/Concepts/Optimization/PluginSelection.cs +++ b/dotnet/samples/Concepts/Optimization/PluginSelectionWithFilters.cs @@ -21,7 +21,7 @@ namespace Optimization; /// It also helps to handle the scenario with a general purpose chat experience for a large enterprise, /// where there are so many plugins, that it's impossible to share all of them with AI model in a single request. /// -public sealed class PluginSelection(ITestOutputHelper output) : BaseTest(output) +public sealed class PluginSelectionWithFilters(ITestOutputHelper output) : BaseTest(output) { /// /// This method shows how to select best functions to share with AI using vector similarity search. @@ -37,7 +37,7 @@ public async Task UsingVectorSearchWithKernelAsync() .AddOpenAITextEmbeddingGeneration("text-embedding-3-small", TestConfiguration.OpenAI.ApiKey); // Add logging. - var logger = this.LoggerFactory.CreateLogger(); + var logger = this.LoggerFactory.CreateLogger(); builder.Services.AddSingleton(logger); // Add memory store to keep functions and search for the most relevant ones for specific request. @@ -111,7 +111,7 @@ public async Task UsingVectorSearchWithChatCompletionAsync() .AddOpenAITextEmbeddingGeneration("text-embedding-3-small", TestConfiguration.OpenAI.ApiKey); // Add logging. - var logger = this.LoggerFactory.CreateLogger(); + var logger = this.LoggerFactory.CreateLogger(); builder.Services.AddSingleton(logger); // Add memory store to keep functions and search for the most relevant ones for specific request. diff --git a/dotnet/samples/Concepts/README.md b/dotnet/samples/Concepts/README.md index fea33c88822e..b26cfce9ae0a 100644 --- a/dotnet/samples/Concepts/README.md +++ b/dotnet/samples/Concepts/README.md @@ -104,8 +104,8 @@ Down below you can find the code snippets that demonstrate the usage of many Sem ## Optimization - Examples of different cost and performance optimization techniques -- [FrugalGPT](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Optimization/FrugalGPT.cs) -- [PluginSelection](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Optimization/PluginSelection.cs) +- [FrugalGPTWithFilters](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Optimization/FrugalGPTWithFilters.cs) +- [PluginSelectionWithFilters](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Optimization/PluginSelectionWithFilters.cs) ## Planners - Examples on using `Planners` diff --git a/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/AutoFunctionInvocationContext.cs b/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/AutoFunctionInvocationContext.cs index f430324df867..4c7be4698c30 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/AutoFunctionInvocationContext.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/AutoFunctionInvocationContext.cs @@ -1,6 +1,5 @@ // Copyright (c) Microsoft. All rights reserved. -using System.Diagnostics.CodeAnalysis; using Microsoft.SemanticKernel.ChatCompletion; namespace Microsoft.SemanticKernel; @@ -8,7 +7,6 @@ namespace Microsoft.SemanticKernel; /// /// Class with data related to automatic function invocation. /// -[Experimental("SKEXP0001")] public class AutoFunctionInvocationContext { /// diff --git a/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/IAutoFunctionInvocationFilter.cs b/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/IAutoFunctionInvocationFilter.cs index 92d293b7a4b7..911425e239b1 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/IAutoFunctionInvocationFilter.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/IAutoFunctionInvocationFilter.cs @@ -1,7 +1,6 @@ // Copyright (c) Microsoft. All rights reserved. using System; -using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; namespace Microsoft.SemanticKernel; @@ -11,7 +10,6 @@ namespace Microsoft.SemanticKernel; /// /// Interface for filtering actions during automatic function invocation. /// -[Experimental("SKEXP0001")] public interface IAutoFunctionInvocationFilter { /// diff --git a/dotnet/src/SemanticKernel.Abstractions/Filters/Function/FunctionInvocationContext.cs b/dotnet/src/SemanticKernel.Abstractions/Filters/Function/FunctionInvocationContext.cs index c208f1a75f85..4923c4fffd31 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Filters/Function/FunctionInvocationContext.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Filters/Function/FunctionInvocationContext.cs @@ -1,13 +1,10 @@ // Copyright (c) Microsoft. All rights reserved. -using System.Diagnostics.CodeAnalysis; - namespace Microsoft.SemanticKernel; /// /// Class with data related to function invocation. /// -[Experimental("SKEXP0001")] public class FunctionInvocationContext { /// diff --git a/dotnet/src/SemanticKernel.Abstractions/Filters/Function/IFunctionInvocationFilter.cs b/dotnet/src/SemanticKernel.Abstractions/Filters/Function/IFunctionInvocationFilter.cs index 90077a019eea..384640b1052b 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Filters/Function/IFunctionInvocationFilter.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Filters/Function/IFunctionInvocationFilter.cs @@ -1,7 +1,6 @@ // Copyright (c) Microsoft. All rights reserved. using System; -using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; namespace Microsoft.SemanticKernel; @@ -11,7 +10,6 @@ namespace Microsoft.SemanticKernel; /// /// Interface for filtering actions during function invocation. /// -[Experimental("SKEXP0001")] public interface IFunctionInvocationFilter { /// diff --git a/dotnet/src/SemanticKernel.Abstractions/Filters/Prompt/IPromptRenderFilter.cs b/dotnet/src/SemanticKernel.Abstractions/Filters/Prompt/IPromptRenderFilter.cs index 036bf26859aa..75cb097fb3e9 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Filters/Prompt/IPromptRenderFilter.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Filters/Prompt/IPromptRenderFilter.cs @@ -1,7 +1,6 @@ // Copyright (c) Microsoft. All rights reserved. using System; -using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; namespace Microsoft.SemanticKernel; @@ -11,7 +10,6 @@ namespace Microsoft.SemanticKernel; /// /// Interface for filtering actions during prompt rendering. /// -[Experimental("SKEXP0001")] public interface IPromptRenderFilter { /// diff --git a/dotnet/src/SemanticKernel.Abstractions/Filters/Prompt/PromptRenderContext.cs b/dotnet/src/SemanticKernel.Abstractions/Filters/Prompt/PromptRenderContext.cs index a1e449642071..a892da43be28 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Filters/Prompt/PromptRenderContext.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Filters/Prompt/PromptRenderContext.cs @@ -1,13 +1,10 @@ // Copyright (c) Microsoft. All rights reserved. -using System.Diagnostics.CodeAnalysis; - namespace Microsoft.SemanticKernel; /// /// Class with data related to prompt rendering. /// -[Experimental("SKEXP0001")] public sealed class PromptRenderContext { private string? _renderedPrompt; diff --git a/dotnet/src/SemanticKernel.Abstractions/Kernel.cs b/dotnet/src/SemanticKernel.Abstractions/Kernel.cs index c466fb9f6485..92b610fff51f 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Kernel.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Kernel.cs @@ -132,7 +132,6 @@ public Kernel Clone() => /// /// Gets the collection of function filters available through the kernel. /// - [Experimental("SKEXP0001")] public IList FunctionInvocationFilters => this._functionInvocationFilters ?? Interlocked.CompareExchange(ref this._functionInvocationFilters, [], null) ?? @@ -141,7 +140,6 @@ public Kernel Clone() => /// /// Gets the collection of function filters available through the kernel. /// - [Experimental("SKEXP0001")] public IList PromptRenderFilters => this._promptRenderFilters ?? Interlocked.CompareExchange(ref this._promptRenderFilters, [], null) ?? @@ -150,7 +148,6 @@ public Kernel Clone() => /// /// Gets the collection of auto function invocation filters available through the kernel. /// - [Experimental("SKEXP0001")] public IList AutoFunctionInvocationFilters => this._autoFunctionInvocationFilters ?? Interlocked.CompareExchange(ref this._autoFunctionInvocationFilters, [], null) ?? @@ -309,7 +306,6 @@ private void AddFilters() } } - [Experimental("SKEXP0001")] internal async Task OnFunctionInvocationAsync( KernelFunction function, KernelArguments arguments, @@ -347,7 +343,6 @@ await functionFilters[index].OnFunctionInvocationAsync(context, } } - [Experimental("SKEXP0001")] internal async Task OnPromptRenderAsync( KernelFunction function, KernelArguments arguments, From 45deece40d1bda8be8b0949c34c19d7968013a13 Mon Sep 17 00:00:00 2001 From: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com> Date: Fri, 28 Jun 2024 13:03:14 -0700 Subject: [PATCH 2/6] Fixed broken link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e8518c0ef1cf..29ad470876bd 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ is an SDK that integrates Large Language Models (LLMs) like [Azure OpenAI](https://azure.microsoft.com/en-us/products/ai-services/openai-service), and [Hugging Face](https://huggingface.co/) with conventional programming languages like C#, Python, and Java. Semantic Kernel achieves this -by allowing you to define [plugins](https://learn.microsoft.com/en-us/semantic-kernel/ai-orchestration/plugins) +by allowing you to define [plugins](https://learn.microsoft.com/en-us/semantic-kernel/concepts/plugins) that can be chained together in just a [few lines of code](https://learn.microsoft.com/en-us/semantic-kernel/ai-orchestration/chaining-functions?tabs=Csharp#using-the-runasync-method-to-simplify-your-code). From c62638a168ed6f5d26704c66391e19abdb0cd853 Mon Sep 17 00:00:00 2001 From: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com> Date: Fri, 5 Jul 2024 09:24:34 -0700 Subject: [PATCH 3/6] Updated Experiments documentation --- dotnet/docs/EXPERIMENTS.md | 92 +++++++++++++++++++------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/dotnet/docs/EXPERIMENTS.md b/dotnet/docs/EXPERIMENTS.md index 1213902cfd98..8cc9287ff55e 100644 --- a/dotnet/docs/EXPERIMENTS.md +++ b/dotnet/docs/EXPERIMENTS.md @@ -26,57 +26,57 @@ You can use the following diagnostic IDs to ignore warnings or errors for a part ## Experimental Features Tracking -| SKEXP​ | Features​​ | API docs​​ | Learn docs​​ | Samples​​ | Issues​​ | Implementations​ | -|-------|----------|----------|------------|---------|--------|-----------------| -| SKEXP0001 | Embedding services | | | | | | -| SKEXP0001 | Image services | | | | | | -| SKEXP0001 | Memory connectors | | | | | | -| SKEXP0001 | Kernel filters | [AutoFunctionInvocationContext Class](https://learn.microsoft.com/en-us/dotnet/api/microsoft.semantickernel.autofunctioninvocationcontext?view=semantic-kernel-dotnet)
[IAutoFunctionInvocationFilter Interface](https://learn.microsoft.com/en-us/dotnet/api/microsoft.semantickernel.iautofunctioninvocationfilter?view=semantic-kernel-dotnet)
[FunctionInvocationContext Class](https://learn.microsoft.com/en-us/dotnet/api/microsoft.semantickernel.functioninvocationcontext?view=semantic-kernel-dotnet)
[IFunctionInvocationFilter Interface](https://learn.microsoft.com/en-us/dotnet/api/microsoft.semantickernel.ifunctioninvocationfilter?view=semantic-kernel-dotnet)
[IPromptRenderFilter Interface](https://learn.microsoft.com/en-us/dotnet/api/microsoft.semantickernel.ipromptrenderfilter?view=semantic-kernel-dotnet)
[PromptRenderContext Class](https://learn.microsoft.com/en-us/dotnet/api/microsoft.semantickernel.promptrendercontext?view=semantic-kernel-dotnet) | | [Auto Function Invocation Filtering](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Filtering/AutoFunctionInvocationFiltering.cs)
[Function Invocation Filtering](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Filtering/FunctionInvocationFiltering.cs)
[Prompt Render Filtering](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Filtering/PromptRenderFiltering.cs)
[FrugalGPT with Filters](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Optimization/FrugalGPTWithFilters.cs)
[Plugin selection with Filters](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Optimization/PluginSelectionWithFilters.cs)
[PII Detection](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Filtering/PIIDetection.cs)
[Retry with Filters](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Filtering/RetryWithFilters.cs)
[Telemetry with Filters](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Filtering/TelemetryWithFilters.cs)
[Semantic Caching with Filters](https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/Concepts/Caching/SemanticCachingWithFilters.cs)
[Azure AI Content Safety and Prompt Shields service](https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples/Demos/ContentSafety)
[Function Invocation Approval](https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples/Demos/FunctionInvocationApproval)
[Quality Check with Filters](https://github.com/microsoft/semantic-kernel/tree/main/dotnet/samples/Demos/QualityCheck) | | | -| SKEXP0001 | Audio services | | | | | | +| SKEXP​ | Features​​ | +|-------|----------| +| SKEXP0001 | Embedding services | +| SKEXP0001 | Image services | +| SKEXP0001 | Memory connectors | +| SKEXP0001 | Kernel filters | +| SKEXP0001 | Audio services | | | | | | | | | -| SKEXP0010 | Azure OpenAI with your data service | | | | | | -| SKEXP0010 | OpenAI embedding service | | | | | | -| SKEXP0010 | OpenAI image service | | | | | | -| SKEXP0010 | OpenAI parameters | | | | | | -| SKEXP0010 | OpenAI chat history extension | | | | | | -| SKEXP0010 | OpenAI file service | | | | | | +| SKEXP0010 | Azure OpenAI with your data service | +| SKEXP0010 | OpenAI embedding service | +| SKEXP0010 | OpenAI image service | +| SKEXP0010 | OpenAI parameters | +| SKEXP0010 | OpenAI chat history extension | +| SKEXP0010 | OpenAI file service | | | | | | | | | -| SKEXP0020 | Azure AI Search memory connector | | | | | | -| SKEXP0020 | Chroma memory connector | | | | | | -| SKEXP0020 | DuckDB memory connector | | | | | | -| SKEXP0020 | Kusto memory connector | | | | | | -| SKEXP0020 | Milvus memory connector | | | | | | -| SKEXP0020 | Qdrant memory connector | | | | | | -| SKEXP0020 | Redis memory connector | | | | | | -| SKEXP0020 | Sqlite memory connector | | | | | | -| SKEXP0020 | Weaviate memory connector | | | | | | -| SKEXP0020 | MongoDB memory connector | | | | | | -| SKEXP0020 | Pinecone memory connector | | | | | | -| SKEXP0020 | Postgres memory connector | | | | | | +| SKEXP0020 | Azure AI Search memory connector | +| SKEXP0020 | Chroma memory connector | +| SKEXP0020 | DuckDB memory connector | +| SKEXP0020 | Kusto memory connector | +| SKEXP0020 | Milvus memory connector | +| SKEXP0020 | Qdrant memory connector | +| SKEXP0020 | Redis memory connector | +| SKEXP0020 | Sqlite memory connector | +| SKEXP0020 | Weaviate memory connector | +| SKEXP0020 | MongoDB memory connector | +| SKEXP0020 | Pinecone memory connector | +| SKEXP0020 | Postgres memory connector | | | | | | | | | -| SKEXP0040 | GRPC functions | | | | | | -| SKEXP0040 | Markdown functions | | | | | | -| SKEXP0040 | OpenAPI functions | | | | | | -| SKEXP0040 | OpenAPI function extensions | | | | | | -| SKEXP0040 | Prompty Format support | | | | | | +| SKEXP0040 | GRPC functions | +| SKEXP0040 | Markdown functions | +| SKEXP0040 | OpenAPI functions | +| SKEXP0040 | OpenAPI function extensions | +| SKEXP0040 | Prompty Format support | | | | | | | | | -| SKEXP0050 | Core plugins | | | | | | -| SKEXP0050 | Document plugins | | | | | | -| SKEXP0050 | Memory plugins | | | | | | -| SKEXP0050 | Microsoft 365 plugins | | | | | | -| SKEXP0050 | Web plugins | | | | | | -| SKEXP0050 | Text chunker plugin | | | | | | +| SKEXP0050 | Core plugins | +| SKEXP0050 | Document plugins | +| SKEXP0050 | Memory plugins | +| SKEXP0050 | Microsoft 365 plugins | +| SKEXP0050 | Web plugins | +| SKEXP0050 | Text chunker plugin | | | | | | | | | -| SKEXP0060 | Handlebars planner | | | | | | -| SKEXP0060 | OpenAI Stepwise planner | | | | | | +| SKEXP0060 | Handlebars planner | +| SKEXP0060 | OpenAI Stepwise planner | | | | | | | | | -| SKEXP0070 | Ollama AI connector | | | | | | -| SKEXP0070 | Gemini AI connector | | | | | | -| SKEXP0070 | Mistral AI connector | | | | | | -| SKEXP0070 | ONNX AI connector | | | | | | -| SKEXP0070 | Hugging Face AI connector | | | | | | +| SKEXP0070 | Ollama AI connector | +| SKEXP0070 | Gemini AI connector | +| SKEXP0070 | Mistral AI connector | +| SKEXP0070 | ONNX AI connector | +| SKEXP0070 | Hugging Face AI connector | | | | | | | | | -| SKEXP0101 | Experiment with Assistants | | | | | | -| SKEXP0101 | Experiment with Flow Orchestration | | | | | | +| SKEXP0101 | Experiment with Assistants | +| SKEXP0101 | Experiment with Flow Orchestration | | | | | | | | | -| SKEXP0110 | Agent Framework | | | | | | \ No newline at end of file +| SKEXP0110 | Agent Framework | \ No newline at end of file From 69c680065e3e62e04fdd02abd984c22815df1cc0 Mon Sep 17 00:00:00 2001 From: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com> Date: Fri, 5 Jul 2024 09:26:40 -0700 Subject: [PATCH 4/6] Reverted experimental flag for auto function invocation filters --- .../AutoFunctionInvocation/AutoFunctionInvocationContext.cs | 2 ++ .../AutoFunctionInvocation/IAutoFunctionInvocationFilter.cs | 2 ++ dotnet/src/SemanticKernel.Abstractions/Kernel.cs | 1 + 3 files changed, 5 insertions(+) diff --git a/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/AutoFunctionInvocationContext.cs b/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/AutoFunctionInvocationContext.cs index 9a6367b42291..39f2439b9df0 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/AutoFunctionInvocationContext.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/AutoFunctionInvocationContext.cs @@ -1,5 +1,6 @@ // Copyright (c) Microsoft. All rights reserved. +using System.Diagnostics.CodeAnalysis; using System.Threading; using Microsoft.SemanticKernel.ChatCompletion; @@ -8,6 +9,7 @@ namespace Microsoft.SemanticKernel; /// /// Class with data related to automatic function invocation. /// +[Experimental("SKEXP0001")] public class AutoFunctionInvocationContext { /// diff --git a/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/IAutoFunctionInvocationFilter.cs b/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/IAutoFunctionInvocationFilter.cs index 911425e239b1..92d293b7a4b7 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/IAutoFunctionInvocationFilter.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/IAutoFunctionInvocationFilter.cs @@ -1,6 +1,7 @@ // Copyright (c) Microsoft. All rights reserved. using System; +using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; namespace Microsoft.SemanticKernel; @@ -10,6 +11,7 @@ namespace Microsoft.SemanticKernel; /// /// Interface for filtering actions during automatic function invocation. /// +[Experimental("SKEXP0001")] public interface IAutoFunctionInvocationFilter { /// diff --git a/dotnet/src/SemanticKernel.Abstractions/Kernel.cs b/dotnet/src/SemanticKernel.Abstractions/Kernel.cs index 3829682a300e..987766feda4f 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Kernel.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Kernel.cs @@ -148,6 +148,7 @@ public Kernel Clone() => /// /// Gets the collection of auto function invocation filters available through the kernel. /// + [Experimental("SKEXP0001")] public IList AutoFunctionInvocationFilters => this._autoFunctionInvocationFilters ?? Interlocked.CompareExchange(ref this._autoFunctionInvocationFilters, [], null) ?? From d524b3abe72631b96059528dd2aa8f3c8be85d88 Mon Sep 17 00:00:00 2001 From: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com> Date: Fri, 5 Jul 2024 09:30:10 -0700 Subject: [PATCH 5/6] Fixed typos --- docs/decisions/0046-kernel-content-graduation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/decisions/0046-kernel-content-graduation.md b/docs/decisions/0046-kernel-content-graduation.md index 43518ddfa2d3..368c59bd7621 100644 --- a/docs/decisions/0046-kernel-content-graduation.md +++ b/docs/decisions/0046-kernel-content-graduation.md @@ -85,7 +85,7 @@ Pros: - With no deferred content we have simpler API and a single responsibility for contents. - Can be written and read in both `Data` or `DataUri` formats. - Can have a `Uri` reference property, which is common for specialized contexts. -- Fully serializeable. +- Fully serializable. - Data Uri parameters support (serialization included). - Data Uri and Base64 validation checks - Data Uri and Data can be dynamically generated @@ -197,7 +197,7 @@ Pros: - Can be used as a `BinaryContent` type - Can be written and read in both `Data` or `DataUri` formats. - Can have a `Uri` dedicated for referenced location. -- Fully serializeable. +- Fully serializable. - Data Uri parameters support (serialization included). - Data Uri and Base64 validation checks - Can be retrieved @@ -254,7 +254,7 @@ Pros: - Can be used as a `BinaryContent` type - Can be written and read in both `Data` or `DataUri` formats. - Can have a `Uri` dedicated for referenced location. -- Fully serializeable. +- Fully serializable. - Data Uri parameters support (serialization included). - Data Uri and Base64 validation checks - Can be retrieved From cd949b78fbf852709b0dbddc2b604682e5ddedb5 Mon Sep 17 00:00:00 2001 From: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com> Date: Fri, 5 Jul 2024 10:20:27 -0700 Subject: [PATCH 6/6] Small fix --- .../Filters/Function/FunctionInvocationContext.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/dotnet/src/SemanticKernel.Abstractions/Filters/Function/FunctionInvocationContext.cs b/dotnet/src/SemanticKernel.Abstractions/Filters/Function/FunctionInvocationContext.cs index 82bcbf6e47f4..2c7e92166ed0 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Filters/Function/FunctionInvocationContext.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Filters/Function/FunctionInvocationContext.cs @@ -1,6 +1,7 @@ // Copyright (c) Microsoft. All rights reserved. using System.Threading; + namespace Microsoft.SemanticKernel; ///