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;
///