From be00558662f71eff680809cacab2d6fc4c453682 Mon Sep 17 00:00:00 2001 From: markwallace-microsoft <127216156+markwallace-microsoft@users.noreply.github.com> Date: Wed, 2 Apr 2025 21:33:47 +0100 Subject: [PATCH 1/2] Remove experimental flags for stable items --- .../Settings/OpenAIPromptExecutionSettings.cs | 6 ------ .../AI/ChatCompletion/ChatHistoryExtensions.cs | 2 -- .../AI/ChatCompletion/IChatHistoryReducer.cs | 2 -- .../AI/PromptExecutionSettings.cs | 2 -- .../Data/TextSearch/ITextSearch.cs | 2 -- .../Data/TextSearch/ITextSearchResultMapper.cs | 3 --- .../Data/TextSearch/ITextSearchStringMapper.cs | 3 --- .../Data/TextSearch/KernelSearchResults.cs | 2 -- .../Data/TextSearch/TextSearchOptions.cs | 3 --- .../Data/TextSearch/TextSearchResult.cs | 3 --- .../Data/TextSearch/TextSearchResultLinkAttribute.cs | 2 -- .../Data/TextSearch/TextSearchResultNameAttribute.cs | 2 -- .../Data/TextSearch/TextSearchResultValueAttribute.cs | 2 -- .../AutoFunctionInvocationContext.cs | 2 -- .../Filters/Prompt/PromptRenderContext.cs | 2 -- .../Functions/KernelFunction.cs | 1 - .../Functions/KernelParameterMetadata.cs | 2 -- .../Functions/KernelPlugin.cs | 1 - .../Functions/KernelReturnParameterMetadata.cs | 2 -- .../Functions/RestApiOperationResponse.cs | 2 -- .../ChatCompletion/ChatHistorySummarizationReducer.cs | 2 -- .../AI/ChatCompletion/ChatHistoryTruncationReducer.cs | 2 -- .../Data/TextSearch/TextSearchExtensions.cs | 6 ------ .../TextSearch/TextSearchKernelBuilderExtensions.cs | 1 - .../TextSearchServiceCollectionExtensions.cs | 1 - .../Functions/KernelFunctionFactory.cs | 8 -------- .../Functions/KernelFunctionFromMethod.cs | 6 ------ .../Functions/KernelFunctionFromPrompt.cs | 3 --- .../Functions/KernelFunctionMetadataFactory.cs | 2 -- .../Functions/KernelPluginFactory.cs | 4 ---- dotnet/src/SemanticKernel.Core/KernelExtensions.cs | 11 ----------- 31 files changed, 92 deletions(-) diff --git a/dotnet/src/Connectors/Connectors.OpenAI/Settings/OpenAIPromptExecutionSettings.cs b/dotnet/src/Connectors/Connectors.OpenAI/Settings/OpenAIPromptExecutionSettings.cs index fb82f86609b8..1ac2b895d4f1 100644 --- a/dotnet/src/Connectors/Connectors.OpenAI/Settings/OpenAIPromptExecutionSettings.cs +++ b/dotnet/src/Connectors/Connectors.OpenAI/Settings/OpenAIPromptExecutionSettings.cs @@ -28,7 +28,6 @@ public class OpenAIPromptExecutionSettings : PromptExecutionSettings /// - values: "low", "medium", "high"; /// - object; /// - [Experimental("SKEXP0010")] [JsonPropertyName("reasoning_effort")] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public object? ReasoningEffort @@ -175,7 +174,6 @@ public long? Seed /// - object; /// - object, which will be used to automatically create a JSON schema. /// - [Experimental("SKEXP0010")] [JsonPropertyName("response_format")] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public object? ResponseFormat @@ -299,7 +297,6 @@ public string? User /// Whether to return log probabilities of the output tokens or not. /// If true, returns the log probabilities of each output token returned in the `content` of `message`. /// - [Experimental("SKEXP0010")] [JsonPropertyName("logprobs")] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public bool? Logprobs @@ -316,7 +313,6 @@ public bool? Logprobs /// /// An integer specifying the number of most likely tokens to return at each token position, each with an associated log probability. /// - [Experimental("SKEXP0010")] [JsonPropertyName("top_logprobs")] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public int? TopLogprobs @@ -333,7 +329,6 @@ public int? TopLogprobs /// /// Developer-defined tags and values used for filtering completions in the OpenAI dashboard. /// - [Experimental("SKEXP0010")] [JsonPropertyName("metadata")] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public IDictionary? Metadata @@ -350,7 +345,6 @@ public IDictionary? Metadata /// /// Whether or not to store the output of this chat completion request for use in the OpenAI model distillation or evals products. /// - [Experimental("SKEXP0010")] [JsonPropertyName("store")] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public bool? Store diff --git a/dotnet/src/SemanticKernel.Abstractions/AI/ChatCompletion/ChatHistoryExtensions.cs b/dotnet/src/SemanticKernel.Abstractions/AI/ChatCompletion/ChatHistoryExtensions.cs index faf11b2fe450..7095c2dfacc4 100644 --- a/dotnet/src/SemanticKernel.Abstractions/AI/ChatCompletion/ChatHistoryExtensions.cs +++ b/dotnet/src/SemanticKernel.Abstractions/AI/ChatCompletion/ChatHistoryExtensions.cs @@ -1,7 +1,6 @@ // Copyright (c) Microsoft. All rights reserved. using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -11,7 +10,6 @@ namespace Microsoft.SemanticKernel.ChatCompletion; /// /// Extension methods for chat history. /// -[Experimental("SKEXP0001")] public static class ChatHistoryExtensions { /// diff --git a/dotnet/src/SemanticKernel.Abstractions/AI/ChatCompletion/IChatHistoryReducer.cs b/dotnet/src/SemanticKernel.Abstractions/AI/ChatCompletion/IChatHistoryReducer.cs index 7efc5a9ab515..f3612188759c 100644 --- a/dotnet/src/SemanticKernel.Abstractions/AI/ChatCompletion/IChatHistoryReducer.cs +++ b/dotnet/src/SemanticKernel.Abstractions/AI/ChatCompletion/IChatHistoryReducer.cs @@ -1,7 +1,6 @@ // Copyright (c) Microsoft. All rights reserved. using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; @@ -10,7 +9,6 @@ namespace Microsoft.SemanticKernel.ChatCompletion; /// /// Interface for reducing the chat history. /// -[Experimental("SKEXP0001")] public interface IChatHistoryReducer { /// diff --git a/dotnet/src/SemanticKernel.Abstractions/AI/PromptExecutionSettings.cs b/dotnet/src/SemanticKernel.Abstractions/AI/PromptExecutionSettings.cs index c42baa962d7e..b767c478b1bc 100644 --- a/dotnet/src/SemanticKernel.Abstractions/AI/PromptExecutionSettings.cs +++ b/dotnet/src/SemanticKernel.Abstractions/AI/PromptExecutionSettings.cs @@ -3,7 +3,6 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; -using System.Diagnostics.CodeAnalysis; using System.Text.Json.Serialization; using Microsoft.SemanticKernel.ChatCompletion; using Microsoft.SemanticKernel.TextGeneration; @@ -36,7 +35,6 @@ public class PromptExecutionSettings /// When provided, this service identifier will be the key in a dictionary collection of execution settings for both and . /// If not provided the service identifier will be the default value in . /// - [Experimental("SKEXP0001")] [JsonPropertyName("service_id")] public string? ServiceId { diff --git a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/ITextSearch.cs b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/ITextSearch.cs index 095c6d9a78d5..bb348a158c79 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/ITextSearch.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/ITextSearch.cs @@ -1,6 +1,5 @@ // Copyright (c) Microsoft. All rights reserved. -using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; @@ -9,7 +8,6 @@ namespace Microsoft.SemanticKernel.Data; /// /// Interface for text based search queries for use with Semantic Kernel prompts and automatic function calling. /// -[Experimental("SKEXP0001")] public interface ITextSearch { /// diff --git a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/ITextSearchResultMapper.cs b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/ITextSearchResultMapper.cs index 1446bada632d..b5b278ec089e 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/ITextSearchResultMapper.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/ITextSearchResultMapper.cs @@ -1,13 +1,10 @@ // Copyright (c) Microsoft. All rights reserved. -using System.Diagnostics.CodeAnalysis; - namespace Microsoft.SemanticKernel.Data; /// /// Interface for mapping between a implementation result value, and a instance. /// -[Experimental("SKEXP0001")] public interface ITextSearchResultMapper { /// diff --git a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/ITextSearchStringMapper.cs b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/ITextSearchStringMapper.cs index a6f859314f00..03c408b33c3a 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/ITextSearchStringMapper.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/ITextSearchStringMapper.cs @@ -1,13 +1,10 @@ // Copyright (c) Microsoft. All rights reserved. -using System.Diagnostics.CodeAnalysis; - namespace Microsoft.SemanticKernel.Data; /// /// Interface for mapping between a implementation result value, and a instance. /// -[Experimental("SKEXP0001")] public interface ITextSearchStringMapper { /// diff --git a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/KernelSearchResults.cs b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/KernelSearchResults.cs index e9516ce3fecc..f1a2ed341352 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/KernelSearchResults.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/KernelSearchResults.cs @@ -1,6 +1,5 @@ // Copyright (c) Microsoft. All rights reserved. using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; namespace Microsoft.SemanticKernel.Data; @@ -13,7 +12,6 @@ namespace Microsoft.SemanticKernel.Data; /// The search results. /// The total count of results found by the search operation, or null if the count was not requested. /// Metadata associated with the search results. -[Experimental("SKEXP0001")] public sealed class KernelSearchResults(IAsyncEnumerable results, long? totalCount = null, IReadOnlyDictionary? metadata = null) { /// diff --git a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchOptions.cs b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchOptions.cs index a3c6ec8303ac..cc995af02e8d 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchOptions.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchOptions.cs @@ -1,12 +1,9 @@ // Copyright (c) Microsoft. All rights reserved. -using System.Diagnostics.CodeAnalysis; - namespace Microsoft.SemanticKernel.Data; /// /// Options which can be applied when using . /// -[Experimental("SKEXP0001")] public sealed class TextSearchOptions { /// diff --git a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchResult.cs b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchResult.cs index 8a71bfe76c99..fc4c46dd00e2 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchResult.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchResult.cs @@ -1,7 +1,5 @@ // Copyright (c) Microsoft. All rights reserved. -using System.Diagnostics.CodeAnalysis; - namespace Microsoft.SemanticKernel.Data; /// @@ -14,7 +12,6 @@ namespace Microsoft.SemanticKernel.Data; /// - Link reference associated with the search result /// /// The text search result value. -[Experimental("SKEXP0001")] public sealed class TextSearchResult(string value) { /// diff --git a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchResultLinkAttribute.cs b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchResultLinkAttribute.cs index 50619e9949db..23b065079a4b 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchResultLinkAttribute.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchResultLinkAttribute.cs @@ -1,6 +1,5 @@ // Copyright (c) Microsoft. All rights reserved. using System; -using System.Diagnostics.CodeAnalysis; namespace Microsoft.SemanticKernel.Data; @@ -10,7 +9,6 @@ namespace Microsoft.SemanticKernel.Data; /// /// The characteristics defined here will influence how the property is treated when converting a record to a . /// -[Experimental("SKEXP0001")] [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)] public sealed class TextSearchResultLinkAttribute : Attribute { diff --git a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchResultNameAttribute.cs b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchResultNameAttribute.cs index aeee8c740b8d..6e87bb659ca7 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchResultNameAttribute.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchResultNameAttribute.cs @@ -1,7 +1,6 @@ // Copyright (c) Microsoft. All rights reserved. using System; -using System.Diagnostics.CodeAnalysis; namespace Microsoft.SemanticKernel.Data; @@ -11,7 +10,6 @@ namespace Microsoft.SemanticKernel.Data; /// /// The characteristics defined here will influence how the property is treated when converting a record to a . /// -[Experimental("SKEXP0001")] [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)] public sealed class TextSearchResultNameAttribute : Attribute { diff --git a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchResultValueAttribute.cs b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchResultValueAttribute.cs index 3d24264beb68..09755ea2bbdd 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchResultValueAttribute.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Data/TextSearch/TextSearchResultValueAttribute.cs @@ -1,6 +1,5 @@ // Copyright (c) Microsoft. All rights reserved. using System; -using System.Diagnostics.CodeAnalysis; namespace Microsoft.SemanticKernel.Data; @@ -10,7 +9,6 @@ namespace Microsoft.SemanticKernel.Data; /// /// The characteristics defined here will influence how the property is treated when converting a record to a . /// -[Experimental("SKEXP0001")] [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)] public sealed class TextSearchResultValueAttribute : Attribute { diff --git a/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/AutoFunctionInvocationContext.cs b/dotnet/src/SemanticKernel.Abstractions/Filters/AutoFunctionInvocation/AutoFunctionInvocationContext.cs index d13d5519b652..0f18be8df8e0 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 System.Threading; using Microsoft.SemanticKernel.ChatCompletion; @@ -83,7 +82,6 @@ public AutoFunctionInvocationContext( /// /// The execution settings associated with the operation. /// - [Experimental("SKEXP0001")] public PromptExecutionSettings? ExecutionSettings { get; init; } /// diff --git a/dotnet/src/SemanticKernel.Abstractions/Filters/Prompt/PromptRenderContext.cs b/dotnet/src/SemanticKernel.Abstractions/Filters/Prompt/PromptRenderContext.cs index 3ac7507101f2..d2638be5c667 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Filters/Prompt/PromptRenderContext.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Filters/Prompt/PromptRenderContext.cs @@ -1,6 +1,5 @@ // Copyright (c) Microsoft. All rights reserved. -using System.Diagnostics.CodeAnalysis; using System.Threading; namespace Microsoft.SemanticKernel; @@ -58,7 +57,6 @@ internal PromptRenderContext(Kernel kernel, KernelFunction function, KernelArgum /// /// The execution settings associated with the operation. /// - [Experimental("SKEXP0001")] public PromptExecutionSettings? ExecutionSettings { get; init; } /// diff --git a/dotnet/src/SemanticKernel.Abstractions/Functions/KernelFunction.cs b/dotnet/src/SemanticKernel.Abstractions/Functions/KernelFunction.cs index a0a425aca1ec..249b2efd0b44 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Functions/KernelFunction.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Functions/KernelFunction.cs @@ -509,7 +509,6 @@ private void LogFunctionResult(ILogger logger, string? pluginName, string functi /// The instance to pass to the when it's invoked as part of the 's invocation. /// /// An instance of that, when invoked, will in turn invoke the current . - [Experimental("SKEXP0001")] public AIFunction AsAIFunction(Kernel? kernel = null) { return new KernelAIFunction(this, kernel); diff --git a/dotnet/src/SemanticKernel.Abstractions/Functions/KernelParameterMetadata.cs b/dotnet/src/SemanticKernel.Abstractions/Functions/KernelParameterMetadata.cs index 893111cbfba6..c91c6657d149 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Functions/KernelParameterMetadata.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Functions/KernelParameterMetadata.cs @@ -37,7 +37,6 @@ public sealed class KernelParameterMetadata /// The to generate JSON schema. /// The was null. /// The was empty or composed entirely of whitespace. - [Experimental("SKEXP0120")] public KernelParameterMetadata(string name, JsonSerializerOptions jsonSerializerOptions) { this.Name = name; @@ -66,7 +65,6 @@ public KernelParameterMetadata(KernelParameterMetadata metadata) /// The metadata to copy. /// The to generate JSON schema. /// This creates a shallow clone of . - [Experimental("SKEXP0120")] public KernelParameterMetadata(KernelParameterMetadata metadata, JsonSerializerOptions jsonSerializerOptions) { Verify.NotNull(metadata); diff --git a/dotnet/src/SemanticKernel.Abstractions/Functions/KernelPlugin.cs b/dotnet/src/SemanticKernel.Abstractions/Functions/KernelPlugin.cs index c86faaf03065..172c7cabb875 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Functions/KernelPlugin.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Functions/KernelPlugin.cs @@ -98,7 +98,6 @@ public IList GetFunctionsMetadata() /// The instance to pass to the s when invoked as part of the 's invocation. /// /// An enumerable of instances, one for each in this plugin. - [Experimental("SKEXP0001")] public IEnumerable AsAIFunctions(Kernel? kernel = null) { foreach (KernelFunction function in this) diff --git a/dotnet/src/SemanticKernel.Abstractions/Functions/KernelReturnParameterMetadata.cs b/dotnet/src/SemanticKernel.Abstractions/Functions/KernelReturnParameterMetadata.cs index 559e3e39dc02..75e02c467f88 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Functions/KernelReturnParameterMetadata.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Functions/KernelReturnParameterMetadata.cs @@ -40,7 +40,6 @@ public KernelReturnParameterMetadata() { } /// Initializes the . /// The to generate JSON schema. - [Experimental("SKEXP0120")] public KernelReturnParameterMetadata(JsonSerializerOptions jsonSerializerOptions) { this._jsonSerializerOptions = jsonSerializerOptions; @@ -60,7 +59,6 @@ public KernelReturnParameterMetadata(KernelReturnParameterMetadata metadata) /// Initializes a as a copy of another . /// The metadata to copy. /// The to generate JSON schema. - [Experimental("SKEXP0120")] public KernelReturnParameterMetadata(KernelReturnParameterMetadata metadata, JsonSerializerOptions jsonSerializerOptions) { this._description = metadata._description; diff --git a/dotnet/src/SemanticKernel.Abstractions/Functions/RestApiOperationResponse.cs b/dotnet/src/SemanticKernel.Abstractions/Functions/RestApiOperationResponse.cs index d5f74e3d9a1d..a4b09b48c975 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Functions/RestApiOperationResponse.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Functions/RestApiOperationResponse.cs @@ -3,7 +3,6 @@ using System; using System.Collections.Generic; using System.ComponentModel; -using System.Diagnostics.CodeAnalysis; using System.Text.Json.Serialization; namespace Microsoft.SemanticKernel; @@ -53,7 +52,6 @@ public sealed class RestApiOperationResponse /// /// Gets a dictionary for ambient data associated with the response. /// - [Experimental("SKEXP0040")] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public IDictionary? Data { get; set; } diff --git a/dotnet/src/SemanticKernel.Core/AI/ChatCompletion/ChatHistorySummarizationReducer.cs b/dotnet/src/SemanticKernel.Core/AI/ChatCompletion/ChatHistorySummarizationReducer.cs index 23d7e4286015..4eab25a56365 100644 --- a/dotnet/src/SemanticKernel.Core/AI/ChatCompletion/ChatHistorySummarizationReducer.cs +++ b/dotnet/src/SemanticKernel.Core/AI/ChatCompletion/ChatHistorySummarizationReducer.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -18,7 +17,6 @@ namespace Microsoft.SemanticKernel.ChatCompletion; /// is provided (recommended), reduction will scan within the threshold window in an attempt to /// avoid orphaning a user message from an assistant response. /// -[Experimental("SKEXP0001")] public class ChatHistorySummarizationReducer : IChatHistoryReducer { /// diff --git a/dotnet/src/SemanticKernel.Core/AI/ChatCompletion/ChatHistoryTruncationReducer.cs b/dotnet/src/SemanticKernel.Core/AI/ChatCompletion/ChatHistoryTruncationReducer.cs index de9ea8037b32..f26fdd9d64e3 100644 --- a/dotnet/src/SemanticKernel.Core/AI/ChatCompletion/ChatHistoryTruncationReducer.cs +++ b/dotnet/src/SemanticKernel.Core/AI/ChatCompletion/ChatHistoryTruncationReducer.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -18,7 +17,6 @@ namespace Microsoft.SemanticKernel.ChatCompletion; /// is provided (recommended), reduction will scan within the threshold window in an attempt to /// avoid orphaning a user message from an assistant response. /// -[Experimental("SKEXP0001")] public class ChatHistoryTruncationReducer : IChatHistoryReducer { /// diff --git a/dotnet/src/SemanticKernel.Core/Data/TextSearch/TextSearchExtensions.cs b/dotnet/src/SemanticKernel.Core/Data/TextSearch/TextSearchExtensions.cs index 91c282e9b0ef..bfb829c44759 100644 --- a/dotnet/src/SemanticKernel.Core/Data/TextSearch/TextSearchExtensions.cs +++ b/dotnet/src/SemanticKernel.Core/Data/TextSearch/TextSearchExtensions.cs @@ -49,7 +49,6 @@ public static KernelPlugin CreateWithSearch(this ITextSearch textSearch, string /// The to use for serialization and deserialization of various aspects of the function. /// A description of the plugin. /// A instance with a Search operation that calls the provided . - [Experimental("SKEXP0120")] public static KernelPlugin CreateWithSearch(this ITextSearch textSearch, string pluginName, JsonSerializerOptions jsonSerializerOptions, string? description = null) { Verify.NotNull(textSearch); @@ -91,7 +90,6 @@ public static KernelPlugin CreateWithGetTextSearchResults(this ITextSearch textS /// The to use for serialization and deserialization of various aspects of the function. /// A description of the plugin. /// A instance with a GetTextSearchResults operation that calls the provided . - [Experimental("SKEXP0120")] public static KernelPlugin CreateWithGetTextSearchResults(this ITextSearch textSearch, string pluginName, JsonSerializerOptions jsonSerializerOptions, string? description = null) { Verify.NotNull(textSearch); @@ -133,7 +131,6 @@ public static KernelPlugin CreateWithGetSearchResults(this ITextSearch textSearc /// The to use for serialization and deserialization of various aspects of the function. /// A description of the plugin. /// A instance with a GetSearchResults operation that calls the provided . - [Experimental("SKEXP0120")] public static KernelPlugin CreateWithGetSearchResults(this ITextSearch textSearch, string pluginName, JsonSerializerOptions jsonSerializerOptions, string? description = null) { Verify.NotNull(textSearch); @@ -191,7 +188,6 @@ async Task> SearchAsync(Kernel kernel, KernelFunction functi /// Optional KernelFunctionFromMethodOptions which allow the KernelFunction metadata to be specified. /// Optional TextSearchOptions which override the options provided when the function is invoked. /// A instance with a Search operation that calls the provided . - [Experimental("SKEXP0120")] public static KernelFunction CreateSearch(this ITextSearch textSearch, JsonSerializerOptions jsonSerializerOptions, KernelFunctionFromMethodOptions? options = null, TextSearchOptions? searchOptions = null) { async Task> SearchAsync(Kernel kernel, KernelFunction function, KernelArguments arguments, CancellationToken cancellationToken, int count = 2, int skip = 0) @@ -269,7 +265,6 @@ async Task> GetTextSearchResultAsync(Kernel kernel /// Optional KernelFunctionFromMethodOptions which allow the KernelFunction metadata to be specified. /// Optional TextSearchOptions which override the options provided when the function is invoked. /// A instance with a Search operation that calls the provided . - [Experimental("SKEXP0120")] public static KernelFunction CreateGetTextSearchResults(this ITextSearch textSearch, JsonSerializerOptions jsonSerializerOptions, KernelFunctionFromMethodOptions? options = null, TextSearchOptions? searchOptions = null) { async Task> GetTextSearchResultAsync(Kernel kernel, KernelFunction function, KernelArguments arguments, CancellationToken cancellationToken, int count = 2, int skip = 0) @@ -346,7 +341,6 @@ async Task> GetSearchResultAsync(Kernel kernel, KernelFuncti /// Optional KernelFunctionFromMethodOptions which allow the KernelFunction metadata to be specified. /// Optional TextSearchOptions which override the options provided when the function is invoked. /// A instance with a Search operation that calls the provided . - [Experimental("SKEXP0120")] public static KernelFunction CreateGetSearchResults(this ITextSearch textSearch, JsonSerializerOptions jsonSerializerOptions, KernelFunctionFromMethodOptions? options = null, TextSearchOptions? searchOptions = null) { async Task> GetSearchResultAsync(Kernel kernel, KernelFunction function, KernelArguments arguments, CancellationToken cancellationToken, int count = 2, int skip = 0) diff --git a/dotnet/src/SemanticKernel.Core/Data/TextSearch/TextSearchKernelBuilderExtensions.cs b/dotnet/src/SemanticKernel.Core/Data/TextSearch/TextSearchKernelBuilderExtensions.cs index b3943a5621ae..84909b8229c9 100644 --- a/dotnet/src/SemanticKernel.Core/Data/TextSearch/TextSearchKernelBuilderExtensions.cs +++ b/dotnet/src/SemanticKernel.Core/Data/TextSearch/TextSearchKernelBuilderExtensions.cs @@ -8,7 +8,6 @@ namespace Microsoft.SemanticKernel; /// /// Extension methods to register for use with . /// -[Experimental("SKEXP0001")] public static class TextSearchKernelBuilderExtensions { /// diff --git a/dotnet/src/SemanticKernel.Core/Data/TextSearch/TextSearchServiceCollectionExtensions.cs b/dotnet/src/SemanticKernel.Core/Data/TextSearch/TextSearchServiceCollectionExtensions.cs index bf8c4c9b34b2..c36c50bafa10 100644 --- a/dotnet/src/SemanticKernel.Core/Data/TextSearch/TextSearchServiceCollectionExtensions.cs +++ b/dotnet/src/SemanticKernel.Core/Data/TextSearch/TextSearchServiceCollectionExtensions.cs @@ -12,7 +12,6 @@ namespace Microsoft.SemanticKernel; /// /// Extension methods to register for use with . /// -[Experimental("SKEXP0001")] public static class TextSearchServiceCollectionExtensions { /// diff --git a/dotnet/src/SemanticKernel.Core/Functions/KernelFunctionFactory.cs b/dotnet/src/SemanticKernel.Core/Functions/KernelFunctionFactory.cs index 6d606f9d3739..ec1dcf00844b 100644 --- a/dotnet/src/SemanticKernel.Core/Functions/KernelFunctionFactory.cs +++ b/dotnet/src/SemanticKernel.Core/Functions/KernelFunctionFactory.cs @@ -50,7 +50,6 @@ public static KernelFunction CreateFromMethod( /// Optional return parameter description. If null, it will default to one derived from the method represented by . /// The to use for logging. If null, no logging will be performed. /// The created for invoking . - [Experimental("SKEXP0120")] public static KernelFunction CreateFromMethod( Delegate method, JsonSerializerOptions jsonSerializerOptions, @@ -81,7 +80,6 @@ public static KernelFunction CreateFromMethod( /// The to use for serialization and deserialization of various aspects of the function. /// Optional function creation options. /// The created for invoking . - [Experimental("SKEXP0120")] public static KernelFunction CreateFromMethod( Delegate method, JsonSerializerOptions jsonSerializerOptions, @@ -125,7 +123,6 @@ public static KernelFunction CreateFromMethod( /// Optional return parameter description. If null, it will default to one derived from the method represented by . /// The to use for logging. If null, no logging will be performed. /// The created for invoking . - [Experimental("SKEXP0120")] public static KernelFunction CreateFromMethod( MethodInfo method, JsonSerializerOptions jsonSerializerOptions, @@ -162,7 +159,6 @@ public static KernelFunction CreateFromMethod( /// The target object for the if it represents an instance method. This should be null if and only if is a static method. /// Optional function creation options. /// The created for invoking . - [Experimental("SKEXP0120")] public static KernelFunction CreateFromMethod( MethodInfo method, JsonSerializerOptions jsonSerializerOptions, @@ -221,7 +217,6 @@ public static KernelFunction CreateFromPrompt( /// /// The to use for logging. If null, no logging will be performed. /// The created for invoking the prompt. - [Experimental("SKEXP0120")] public static KernelFunction CreateFromPrompt( string promptTemplate, JsonSerializerOptions jsonSerializerOptions, @@ -282,7 +277,6 @@ public static KernelFunction CreateFromPrompt( /// /// The to use for logging. If null, no logging will be performed. /// The created for invoking the prompt. - [Experimental("SKEXP0120")] public static KernelFunction CreateFromPrompt( string promptTemplate, JsonSerializerOptions jsonSerializerOptions, @@ -322,7 +316,6 @@ public static KernelFunction CreateFromPrompt( /// /// The to use for logging. If null, no logging will be performed. /// The created for invoking the prompt. - [Experimental("SKEXP0120")] public static KernelFunction CreateFromPrompt( PromptTemplateConfig promptConfig, JsonSerializerOptions jsonSerializerOptions, @@ -351,7 +344,6 @@ public static KernelFunction CreateFromPrompt( /// The to use for serialization and deserialization of various aspects of the function. /// The to use for logging. If null, no logging will be performed. /// The created for invoking the prompt. - [Experimental("SKEXP0120")] public static KernelFunction CreateFromPrompt( IPromptTemplate promptTemplate, PromptTemplateConfig promptConfig, diff --git a/dotnet/src/SemanticKernel.Core/Functions/KernelFunctionFromMethod.cs b/dotnet/src/SemanticKernel.Core/Functions/KernelFunctionFromMethod.cs index 80e9652519b6..6a8594b3ff0c 100644 --- a/dotnet/src/SemanticKernel.Core/Functions/KernelFunctionFromMethod.cs +++ b/dotnet/src/SemanticKernel.Core/Functions/KernelFunctionFromMethod.cs @@ -94,7 +94,6 @@ public static KernelFunction Create( /// Optional return parameter description. If null, it will default to one derived from the method represented by . /// The to use for logging. If null, no logging will be performed. /// The created wrapper for . - [Experimental("SKEXP0120")] public static KernelFunction Create( MethodInfo method, JsonSerializerOptions jsonSerializerOptions, @@ -167,7 +166,6 @@ public static KernelFunction Create( /// The target object for the if it represents an instance method. This should be null if and only if is a static method. /// Optional function creation options. /// The created wrapper for . - [Experimental("SKEXP0120")] public static KernelFunction Create( MethodInfo method, JsonSerializerOptions jsonSerializerOptions, @@ -210,7 +208,6 @@ public static KernelFunction Create( /// Optional return parameter description. If null, it will default to one derived from the method represented by . /// The to use for logging. If null, no logging will be performed. /// The created wrapper for . - [Experimental("SKEXP0001")] [RequiresUnreferencedCode("Uses reflection to handle various aspects of the function creation and invocation, making it incompatible with AOT scenarios.")] [RequiresDynamicCode("Uses reflection to handle various aspects of the function creation and invocation, making it incompatible with AOT scenarios.")] public static KernelFunctionMetadata CreateMetadata( @@ -242,7 +239,6 @@ public static KernelFunctionMetadata CreateMetadata( /// Optional return parameter description. If null, it will default to one derived from the method represented by . /// The to use for logging. If null, no logging will be performed. /// The created wrapper for . - [Experimental("SKEXP0120")] public static KernelFunctionMetadata CreateMetadata( MethodInfo method, JsonSerializerOptions jsonSerializerOptions, @@ -269,7 +265,6 @@ public static KernelFunctionMetadata CreateMetadata( /// The method to be represented via the created . /// Optional function creation options. /// The created wrapper for . - [Experimental("SKEXP0001")] [RequiresUnreferencedCode("Uses reflection to handle various aspects of the function creation and invocation, making it incompatible with AOT scenarios.")] [RequiresDynamicCode("Uses reflection to handle various aspects of the function creation and invocation, making it incompatible with AOT scenarios.")] public static KernelFunctionMetadata CreateMetadata( @@ -303,7 +298,6 @@ public static KernelFunctionMetadata CreateMetadata( /// The to use for serialization and deserialization of various aspects of the function. /// Optional function creation options. /// The created wrapper for . - [Experimental("SKEXP0120")] public static KernelFunctionMetadata CreateMetadata( MethodInfo method, JsonSerializerOptions jsonSerializerOptions, diff --git a/dotnet/src/SemanticKernel.Core/Functions/KernelFunctionFromPrompt.cs b/dotnet/src/SemanticKernel.Core/Functions/KernelFunctionFromPrompt.cs index babf4dedb8fc..3cb4a2557c7b 100644 --- a/dotnet/src/SemanticKernel.Core/Functions/KernelFunctionFromPrompt.cs +++ b/dotnet/src/SemanticKernel.Core/Functions/KernelFunctionFromPrompt.cs @@ -89,7 +89,6 @@ public static KernelFunction Create( /// Optional: Prompt template factory /// Logger factory /// A function ready to use - [Experimental("SKEXP0120")] public static KernelFunction Create( string promptTemplate, JsonSerializerOptions jsonSerializerOptions, @@ -162,7 +161,6 @@ public static KernelFunction Create( /// Optional: Prompt template factory /// Logger factory /// A function ready to use - [Experimental("SKEXP0120")] public static KernelFunction Create( PromptTemplateConfig promptConfig, JsonSerializerOptions jsonSerializerOptions, @@ -209,7 +207,6 @@ public static KernelFunction Create( /// The to use for serialization and deserialization of various aspects of the function. /// Logger factory /// A function ready to use - [Experimental("SKEXP0120")] public static KernelFunction Create( IPromptTemplate promptTemplate, PromptTemplateConfig promptConfig, diff --git a/dotnet/src/SemanticKernel.Core/Functions/KernelFunctionMetadataFactory.cs b/dotnet/src/SemanticKernel.Core/Functions/KernelFunctionMetadataFactory.cs index 774bd49fdc02..a22b679372e4 100644 --- a/dotnet/src/SemanticKernel.Core/Functions/KernelFunctionMetadataFactory.cs +++ b/dotnet/src/SemanticKernel.Core/Functions/KernelFunctionMetadataFactory.cs @@ -13,7 +13,6 @@ namespace Microsoft.SemanticKernel; /// Provides factory methods for creating collections of , such as /// those backed by a prompt to be submitted to an LLM or those backed by a .NET method. /// -[Experimental("SKEXP0001")] public static class KernelFunctionMetadataFactory { /// @@ -63,7 +62,6 @@ public static IEnumerable CreateFromType(Type instanceTy /// Methods decorated with will be included in the plugin. /// Attributed methods must all have different names; overloads are not supported. /// - [Experimental("SKEXP0120")] public static IEnumerable CreateFromType([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods)] Type instanceType, JsonSerializerOptions jsonSerializerOptions, ILoggerFactory? loggerFactory = null) { Verify.NotNull(instanceType); diff --git a/dotnet/src/SemanticKernel.Core/Functions/KernelPluginFactory.cs b/dotnet/src/SemanticKernel.Core/Functions/KernelPluginFactory.cs index ce3262130ddb..c1d9180479b6 100644 --- a/dotnet/src/SemanticKernel.Core/Functions/KernelPluginFactory.cs +++ b/dotnet/src/SemanticKernel.Core/Functions/KernelPluginFactory.cs @@ -55,7 +55,6 @@ public static KernelPlugin CreateFromType(string? pluginName = null, IService /// Methods decorated with will be included in the plugin. /// Attributed methods must all have different names; overloads are not supported. /// - [Experimental("SKEXP0120")] public static KernelPlugin CreateFromType<[DynamicallyAccessedMembers( DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicMethods | @@ -81,7 +80,6 @@ public static KernelPlugin CreateFromType(string? pluginName = null, IService /// Methods decorated with will be included in the plugin. /// Attributed methods must all have different names; overloads are not supported. /// - [Experimental("SKEXP0001")] [RequiresUnreferencedCode("Uses reflection to handle various aspects of the function creation and invocation, making it incompatible with AOT scenarios.")] [RequiresDynamicCode("Uses reflection to handle various aspects of the function creation and invocation, making it incompatible with AOT scenarios.")] public static KernelPlugin CreateFromType(Type instanceType, string? pluginName = null, IServiceProvider? serviceProvider = null) @@ -109,7 +107,6 @@ public static KernelPlugin CreateFromType(Type instanceType, string? pluginName /// Methods decorated with will be included in the plugin. /// Attributed methods must all have different names; overloads are not supported. /// - [Experimental("SKEXP0120")] public static KernelPlugin CreateFromType([DynamicallyAccessedMembers( DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicMethods | @@ -151,7 +148,6 @@ public static KernelPlugin CreateFromObject(object target, string? pluginName = /// [UnconditionalSuppressMessage("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute' require dynamic access otherwise can break functionality when trimming application code", Justification = "This method is AOT save.")] [UnconditionalSuppressMessage("AOT", "IL3050:Calling members annotated with 'RequiresDynamicCodeAttribute' may break functionality when AOT compiling.", Justification = "This method is AOT safe.")] - [Experimental("SKEXP0120")] public static KernelPlugin CreateFromObject<[DynamicallyAccessedMembersAttribute(DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods)] T>(T target, JsonSerializerOptions jsonSerializerOptions, string? pluginName = null, ILoggerFactory? loggerFactory = null) { Verify.NotNull(jsonSerializerOptions); diff --git a/dotnet/src/SemanticKernel.Core/KernelExtensions.cs b/dotnet/src/SemanticKernel.Core/KernelExtensions.cs index 5f4f490dfb60..1ec85631fc5a 100644 --- a/dotnet/src/SemanticKernel.Core/KernelExtensions.cs +++ b/dotnet/src/SemanticKernel.Core/KernelExtensions.cs @@ -57,7 +57,6 @@ public static KernelFunction CreateFunctionFromMethod( /// Optional parameter descriptions. If null, it will default to one derived from the method represented by . /// Optional return parameter description. If null, it will default to one derived from the method represented by . /// The created for invoking . - [Experimental("SKEXP0120")] public static KernelFunction CreateFunctionFromMethod( this Kernel kernel, Delegate method, @@ -115,7 +114,6 @@ public static KernelFunction CreateFunctionFromMethod( /// Optional parameter descriptions. If null, it will default to one derived from the method represented by . /// Optional return parameter description. If null, it will default to one derived from the method represented by . /// The created for invoking . - [Experimental("SKEXP0120")] public static KernelFunction CreateFunctionFromMethod( this Kernel kernel, MethodInfo method, @@ -189,7 +187,6 @@ public static KernelFunction CreateFunctionFromPrompt( /// If null, a default factory will be used. /// /// The created for invoking the prompt. - [Experimental("SKEXP0120")] public static KernelFunction CreateFunctionFromPrompt( this Kernel kernel, string promptTemplate, @@ -267,7 +264,6 @@ public static KernelFunction CreateFunctionFromPrompt( /// If null, a default factory will be used. /// /// The created for invoking the prompt. - [Experimental("SKEXP0120")] public static KernelFunction CreateFunctionFromPrompt( this Kernel kernel, string promptTemplate, @@ -326,7 +322,6 @@ public static KernelFunction CreateFunctionFromPrompt( /// If null, a default factory will be used. /// /// The created for invoking the prompt. - [Experimental("SKEXP0120")] public static KernelFunction CreateFunctionFromPrompt( this Kernel kernel, PromptTemplateConfig promptConfig, @@ -373,7 +368,6 @@ public static KernelPlugin CreatePluginFromType(this Kernel kernel, string? p /// Methods that have the attribute will be included in the plugin. /// See attribute for details. /// - [Experimental("SKEXP0120")] public static KernelPlugin CreatePluginFromType<[DynamicallyAccessedMembers( DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicMethods | @@ -418,7 +412,6 @@ public static KernelPlugin CreatePluginFromObject(this Kernel kernel, object tar /// Methods that have the attribute will be included in the plugin. /// See attribute for details. /// - [Experimental("SKEXP0120")] public static KernelPlugin CreatePluginFromObject<[DynamicallyAccessedMembersAttribute(DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods)] T>(this Kernel kernel, T target, JsonSerializerOptions jsonSerializerOptions, string? pluginName = null) { Verify.NotNull(kernel); @@ -491,7 +484,6 @@ public static KernelPlugin ImportPluginFromType(this Kernel kernel, string? p /// Methods that have the attribute will be included in the plugin. /// See attribute for details. /// - [Experimental("SKEXP0120")] public static KernelPlugin ImportPluginFromType<[DynamicallyAccessedMembers( DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicMethods | @@ -538,7 +530,6 @@ public static KernelPlugin AddFromType(this ICollection plugins /// Methods that have the attribute will be included in the plugin. /// See attribute for details. /// - [Experimental("SKEXP0120")] public static KernelPlugin AddFromType<[DynamicallyAccessedMembers( DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicMethods | @@ -585,7 +576,6 @@ public static IKernelBuilderPlugins AddFromType(this IKernelBuilderPlugins pl /// Methods that have the attribute will be included in the plugin. /// See attribute for details. /// - [Experimental("SKEXP0120")] public static IKernelBuilderPlugins AddFromType<[DynamicallyAccessedMembers( DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.PublicMethods | @@ -646,7 +636,6 @@ public static KernelPlugin ImportPluginFromObject(this Kernel kernel, object tar /// Methods that have the attribute will be included in the plugin. /// See attribute for details. /// - [Experimental("SKEXP0120")] public static KernelPlugin ImportPluginFromObject<[DynamicallyAccessedMembersAttribute(DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods)] T>(this Kernel kernel, T target, JsonSerializerOptions jsonSerializerOptions, string? pluginName = null) { KernelPlugin plugin = CreatePluginFromObject(kernel, target, jsonSerializerOptions, pluginName); From 78255c0e189b811f8319c8306e693eb83867b0be Mon Sep 17 00:00:00 2001 From: markwallace-microsoft <127216156+markwallace-microsoft@users.noreply.github.com> Date: Fri, 4 Apr 2025 10:31:01 +0100 Subject: [PATCH 2/2] Address code review feedback --- .../Extensions/OpenAIKernelBuilderExtensions.cs | 1 - .../Extensions/OpenAIServiceCollectionExtensions.cs | 1 - .../src/SemanticKernel.Abstractions/Functions/KernelFunction.cs | 1 + dotnet/src/SemanticKernel.Abstractions/Functions/KernelPlugin.cs | 1 + 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dotnet/src/Connectors/Connectors.OpenAI/Extensions/OpenAIKernelBuilderExtensions.cs b/dotnet/src/Connectors/Connectors.OpenAI/Extensions/OpenAIKernelBuilderExtensions.cs index c322ead2b671..a07a81fdb5b3 100644 --- a/dotnet/src/Connectors/Connectors.OpenAI/Extensions/OpenAIKernelBuilderExtensions.cs +++ b/dotnet/src/Connectors/Connectors.OpenAI/Extensions/OpenAIKernelBuilderExtensions.cs @@ -340,7 +340,6 @@ OpenAIChatCompletionService Factory(IServiceProvider serviceProvider, object? _) /// A local identifier for the given AI service /// The HttpClient to use with this service. /// The same instance as . - [Experimental("SKEXP0010")] public static IKernelBuilder AddOpenAIChatCompletion( this IKernelBuilder builder, string modelId, diff --git a/dotnet/src/Connectors/Connectors.OpenAI/Extensions/OpenAIServiceCollectionExtensions.cs b/dotnet/src/Connectors/Connectors.OpenAI/Extensions/OpenAIServiceCollectionExtensions.cs index ed191d3dda0f..306c211fbfb4 100644 --- a/dotnet/src/Connectors/Connectors.OpenAI/Extensions/OpenAIServiceCollectionExtensions.cs +++ b/dotnet/src/Connectors/Connectors.OpenAI/Extensions/OpenAIServiceCollectionExtensions.cs @@ -315,7 +315,6 @@ OpenAIChatCompletionService Factory(IServiceProvider serviceProvider, object? _) /// OpenAI organization id. This is usually optional unless your account belongs to multiple organizations. /// A local identifier for the given AI service /// The same instance as . - [Experimental("SKEXP0010")] public static IServiceCollection AddOpenAIChatCompletion( this IServiceCollection services, string modelId, diff --git a/dotnet/src/SemanticKernel.Abstractions/Functions/KernelFunction.cs b/dotnet/src/SemanticKernel.Abstractions/Functions/KernelFunction.cs index 249b2efd0b44..a0a425aca1ec 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Functions/KernelFunction.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Functions/KernelFunction.cs @@ -509,6 +509,7 @@ private void LogFunctionResult(ILogger logger, string? pluginName, string functi /// The instance to pass to the when it's invoked as part of the 's invocation. /// /// An instance of that, when invoked, will in turn invoke the current . + [Experimental("SKEXP0001")] public AIFunction AsAIFunction(Kernel? kernel = null) { return new KernelAIFunction(this, kernel); diff --git a/dotnet/src/SemanticKernel.Abstractions/Functions/KernelPlugin.cs b/dotnet/src/SemanticKernel.Abstractions/Functions/KernelPlugin.cs index 172c7cabb875..c86faaf03065 100644 --- a/dotnet/src/SemanticKernel.Abstractions/Functions/KernelPlugin.cs +++ b/dotnet/src/SemanticKernel.Abstractions/Functions/KernelPlugin.cs @@ -98,6 +98,7 @@ public IList GetFunctionsMetadata() /// The instance to pass to the s when invoked as part of the 's invocation. /// /// An enumerable of instances, one for each in this plugin. + [Experimental("SKEXP0001")] public IEnumerable AsAIFunctions(Kernel? kernel = null) { foreach (KernelFunction function in this)