Soenneker.SemanticKernel.Cache 3.0.151

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Soenneker.SemanticKernel.Cache --version 3.0.151
                    
NuGet\Install-Package Soenneker.SemanticKernel.Cache -Version 3.0.151
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Soenneker.SemanticKernel.Cache" Version="3.0.151" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Soenneker.SemanticKernel.Cache" Version="3.0.151" />
                    
Directory.Packages.props
<PackageReference Include="Soenneker.SemanticKernel.Cache" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Soenneker.SemanticKernel.Cache --version 3.0.151
                    
#r "nuget: Soenneker.SemanticKernel.Cache, 3.0.151"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=Soenneker.SemanticKernel.Cache&version=3.0.151
                    
Install Soenneker.SemanticKernel.Cache as a Cake Addin
#tool nuget:?package=Soenneker.SemanticKernel.Cache&version=3.0.151
                    
Install Soenneker.SemanticKernel.Cache as a Cake Tool

alternate text is missing from this package README image alternate text is missing from this package README image alternate text is missing from this package README image

alternate text is missing from this package README image Soenneker.SemanticKernel.Cache

Providing async thread-safe singleton Semantic Kernel instances

Why?

When using Microsoft.SemanticKernel, it's recommended to maintain long-lived kernel instances rather than re-creating them for each consumer or request. This avoids the overhead of reconfiguring connectors or plugins every time you need to perform a semantic operation. The SemanticKernelCache provides a thread-safe singleton cache per key via dependency injection. Kernel instances are created lazily using customizable options and disposed on application shutdown (or manually if needed).

Installation

Install the package via the .NET CLI:

dotnet add package Soenneker.SemanticKernel.Cache

Usage

1. Register the Cache in Dependency Injection

In your Program.cs (or equivalent startup file), register the cache with the DI container:

using Soenneker.SemanticKernel.Cache;

public static async Task Main(string[] args)
{
    var builder = WebApplication.CreateBuilder(args);

    // Register SemanticKernelCache as a singleton service.
    builder.Services.AddSemanticKernelCacheAsSingleton();

    // Other configuration...
}

2. Inject and Retrieve a Kernel Instance

Inject ISemanticKernelCache into your classes and retrieve a Microsoft.SemanticKernel.Kernel instance by providing the required options.

using System.Threading;
using System.Threading.Tasks;
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.Chat;
using Soenneker.SemanticKernel.Cache;

public class TestClass
{
    private readonly ISemanticKernelCache _semanticKernelCache;
    private readonly SemanticKernelOptions _options;

    public TestClass(ISemanticKernelCache semanticKernelCache)
    {
        _semanticKernelCache = semanticKernelCache;
        
        // Create the options object once. Replace these with your actual values.
        var options = new SemanticKernelOptions
        {
            ModelId = "deepseek-r1:32b",
            Endpoint = "http://localhost:11434",
            KernelFactory = (opts, ct) =>
            {
                IKernelBuilder builder = Kernel.CreateBuilder().AddOllamaChatCompletion(opts.ModelId, new Uri(opts.Endpoint));

                return ValueTask.FromResult(builder);
            }
        };
    }

    public async async ValueTask<string> GetKernelResponse(string input, CancellationToken cancellationToken = default)
    {
        // Retrieve (or create) the kernel instance using a key (here, nameof(TestClass)).
        Kernel kernel = await _semanticKernelCache.Get(nameof(TestClass), _options, cancellationToken);

        // Retrieve the chat completion service from the kernel.
        var chatCompletionService = kernel.GetRequiredService<IChatCompletionService>();

        // Create a chat history and add the user's message.
        var history = new ChatHistory();
        history.AddUserMessage(input);

        // Request a chat completion using the chat service.
        var chatResult = await chatCompletionService.GetChatMessageContentAsync(history, kernel: kernel);

        // Return the chat result (or process it further as needed).
        return chatResult.ToString();
    }
}

Extending for Different Connectors/Plugins

The SemanticKernelOptions class includes an optional KernelFactory delegate. This allows you to override the default behavior (which uses the Azure Text Completion service) and create the kernel using a different connector or plugin. For example:

var openAiOptions = new SemanticKernelOptions
{
    ModelId = "openai-model-id",
    Endpoint = "https://api.openai.com/v1/",
    ApiKey = "your-openai-api-key",
    KernelFactory = (opts, ct) =>
    {
        Kernel kernel = new KernelBuilder().AddOpenAITextCompletionService(opts.ModelId, opts.Endpoint, opts.ApiKey);

        return ValueTask.FromResult(kernel);
    },
    ConfigureKernelAsync = async kernel =>
    {
        // Optionally, import skills or perform additional configuration.
        await ValueTask.CompletedTask;
    }
};

Kernel openAiKernel = await semanticKernelCache.Get("openaiKernel", openAiOptions);

This design makes it straightforward to support multiple types of Semantic Kernel configurations using the same caching mechanism.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.0.413 24 5/16/2025
3.0.412 58 5/16/2025
3.0.411 98 5/14/2025
3.0.410 99 5/14/2025
3.0.409 97 5/14/2025
3.0.408 100 5/14/2025
3.0.407 102 5/14/2025
3.0.406 121 5/8/2025
3.0.405 121 5/8/2025
3.0.404 123 5/8/2025
3.0.403 123 5/8/2025
3.0.402 120 5/8/2025
3.0.401 126 5/8/2025
3.0.400 121 5/8/2025
3.0.399 126 5/7/2025
3.0.398 128 5/6/2025
3.0.397 121 5/6/2025
3.0.396 126 5/6/2025
3.0.395 124 5/5/2025
3.0.394 127 5/5/2025
3.0.393 124 5/5/2025
3.0.392 126 5/5/2025
3.0.391 130 5/5/2025
3.0.390 125 5/5/2025
3.0.389 122 5/5/2025
3.0.388 125 5/5/2025
3.0.387 125 5/5/2025
3.0.386 126 5/5/2025
3.0.385 124 4/29/2025
3.0.384 119 4/27/2025
3.0.383 76 4/27/2025
3.0.382 67 4/26/2025
3.0.381 70 4/26/2025
3.0.380 162 4/18/2025
3.0.379 116 4/11/2025
3.0.378 157 4/9/2025
3.0.377 144 4/9/2025
3.0.376 159 4/9/2025
3.0.375 159 4/9/2025
3.0.374 155 4/8/2025
3.0.373 154 4/8/2025
3.0.372 147 4/8/2025
3.0.371 156 4/8/2025
3.0.370 154 4/8/2025
3.0.369 144 4/8/2025
3.0.368 152 4/8/2025
3.0.367 147 4/8/2025
3.0.366 147 4/8/2025
3.0.365 144 4/8/2025
3.0.364 147 4/8/2025
3.0.363 155 4/8/2025
3.0.362 150 4/8/2025
3.0.361 153 4/8/2025
3.0.360 154 4/8/2025
3.0.359 151 4/7/2025
3.0.358 138 4/7/2025
3.0.357 153 4/7/2025
3.0.356 151 4/7/2025
3.0.355 143 4/7/2025
3.0.354 145 4/7/2025
3.0.353 144 4/7/2025
3.0.352 151 4/7/2025
3.0.351 143 4/7/2025
3.0.350 150 4/7/2025
3.0.349 139 4/7/2025
3.0.348 150 4/7/2025
3.0.347 146 4/7/2025
3.0.346 145 4/7/2025
3.0.345 148 4/7/2025
3.0.344 146 4/7/2025
3.0.343 147 4/7/2025
3.0.342 151 4/6/2025
3.0.341 147 4/6/2025
3.0.340 146 4/6/2025
3.0.339 146 4/6/2025
3.0.338 143 4/6/2025
3.0.337 149 4/6/2025
3.0.336 150 4/6/2025
3.0.335 139 4/6/2025
3.0.334 122 4/6/2025
3.0.333 120 4/6/2025
3.0.332 119 4/6/2025
3.0.331 115 4/6/2025
3.0.330 133 4/6/2025
3.0.329 128 4/6/2025
3.0.328 94 4/6/2025
3.0.327 100 4/6/2025
3.0.326 88 4/6/2025
3.0.325 97 4/5/2025
3.0.324 100 4/5/2025
3.0.323 71 4/5/2025
3.0.322 70 4/5/2025
3.0.321 73 4/5/2025
3.0.320 73 4/5/2025
3.0.319 78 4/5/2025
3.0.318 80 4/5/2025
3.0.317 76 4/5/2025
3.0.316 89 4/4/2025
3.0.315 85 4/4/2025
3.0.314 89 4/4/2025
3.0.313 134 4/4/2025
3.0.312 133 4/4/2025
3.0.311 132 4/4/2025
3.0.310 150 4/4/2025
3.0.309 141 4/4/2025
3.0.308 145 4/3/2025
3.0.307 146 4/3/2025
3.0.306 137 4/2/2025
3.0.305 146 4/1/2025
3.0.304 144 4/1/2025
3.0.303 143 4/1/2025
3.0.302 139 4/1/2025
3.0.301 143 4/1/2025
3.0.300 134 4/1/2025
3.0.299 147 4/1/2025
3.0.298 138 4/1/2025
3.0.297 138 4/1/2025
3.0.296 134 4/1/2025
3.0.295 134 3/31/2025
3.0.294 147 3/31/2025
3.0.293 134 3/31/2025
3.0.292 149 3/31/2025
3.0.291 144 3/30/2025
3.0.290 141 3/29/2025
3.0.289 79 3/29/2025
3.0.288 77 3/29/2025
3.0.287 84 3/29/2025
3.0.286 82 3/29/2025
3.0.285 90 3/29/2025
3.0.284 124 3/27/2025
3.0.283 129 3/27/2025
3.0.282 126 3/27/2025
3.0.281 124 3/27/2025
3.0.280 127 3/26/2025
3.0.279 460 3/26/2025
3.0.278 460 3/26/2025
3.0.277 463 3/26/2025
3.0.276 459 3/25/2025
3.0.275 464 3/25/2025
3.0.274 461 3/25/2025
3.0.273 469 3/25/2025
3.0.272 464 3/25/2025
3.0.271 470 3/25/2025
3.0.270 481 3/25/2025
3.0.269 80 3/21/2025
3.0.268 74 3/21/2025
3.0.267 85 3/21/2025
3.0.266 103 3/21/2025
3.0.265 100 3/21/2025
3.0.264 126 3/21/2025
3.0.263 123 3/21/2025
3.0.262 136 3/20/2025
3.0.261 132 3/20/2025
3.0.260 133 3/19/2025
3.0.259 132 3/19/2025
3.0.258 131 3/18/2025
3.0.257 131 3/18/2025
3.0.256 129 3/18/2025
3.0.255 134 3/18/2025
3.0.254 136 3/18/2025
3.0.253 133 3/18/2025
3.0.252 129 3/18/2025
3.0.251 133 3/18/2025
3.0.250 63 3/15/2025
3.0.249 61 3/15/2025
3.0.248 60 3/15/2025
3.0.247 57 3/15/2025
3.0.246 58 3/15/2025
3.0.245 55 3/15/2025
3.0.244 141 3/12/2025
3.0.243 148 3/12/2025
3.0.242 146 3/12/2025
3.0.241 145 3/12/2025
3.0.240 137 3/12/2025
3.0.239 140 3/12/2025
3.0.238 143 3/12/2025
3.0.237 143 3/12/2025
3.0.236 142 3/12/2025
3.0.235 140 3/12/2025
3.0.234 141 3/12/2025
3.0.233 145 3/11/2025
3.0.232 150 3/11/2025
3.0.231 142 3/11/2025
3.0.230 151 3/11/2025
3.0.229 148 3/11/2025
3.0.228 152 3/11/2025
3.0.227 148 3/11/2025
3.0.226 146 3/11/2025
3.0.225 152 3/11/2025
3.0.224 147 3/11/2025
3.0.223 151 3/11/2025
3.0.222 148 3/11/2025
3.0.221 200 3/7/2025
3.0.220 197 3/7/2025
3.0.219 195 3/7/2025
3.0.218 197 3/7/2025
3.0.217 198 3/7/2025
3.0.216 196 3/7/2025
3.0.215 199 3/7/2025
3.0.214 195 3/7/2025
3.0.213 197 3/7/2025
3.0.212 196 3/3/2025
3.0.211 100 3/2/2025
3.0.210 104 3/2/2025
3.0.209 85 3/2/2025
3.0.208 85 3/2/2025
3.0.207 85 3/2/2025
3.0.206 86 3/2/2025
3.0.205 84 3/2/2025
3.0.204 96 3/2/2025
3.0.203 74 3/2/2025
3.0.202 84 3/2/2025
3.0.201 87 3/2/2025
3.0.200 85 3/2/2025
3.0.199 86 3/2/2025
3.0.198 91 3/1/2025
3.0.197 83 3/1/2025
3.0.196 85 3/1/2025
3.0.195 84 3/1/2025
3.0.194 84 3/1/2025
3.0.193 86 3/1/2025
3.0.192 83 3/1/2025
3.0.191 83 3/1/2025
3.0.190 79 3/1/2025
3.0.189 78 3/1/2025
3.0.188 82 3/1/2025
3.0.187 81 3/1/2025
3.0.186 89 2/28/2025
3.0.185 88 2/26/2025
3.0.184 89 2/26/2025
3.0.183 88 2/26/2025
3.0.182 92 2/26/2025
3.0.181 88 2/26/2025
3.0.180 85 2/25/2025
3.0.179 86 2/25/2025
3.0.178 91 2/25/2025
3.0.177 88 2/25/2025
3.0.176 95 2/25/2025
3.0.175 88 2/25/2025
3.0.174 85 2/25/2025
3.0.173 87 2/25/2025
3.0.172 82 2/25/2025
3.0.171 86 2/24/2025
3.0.170 87 2/24/2025
3.0.169 81 2/24/2025
3.0.168 116 2/23/2025
3.0.167 75 2/23/2025
3.0.166 86 2/23/2025
3.0.165 83 2/23/2025
3.0.164 84 2/23/2025
3.0.163 82 2/23/2025
3.0.162 88 2/23/2025
3.0.161 78 2/23/2025
3.0.160 84 2/22/2025
3.0.159 81 2/22/2025
3.0.158 88 2/22/2025
3.0.157 87 2/22/2025
3.0.156 83 2/22/2025
3.0.155 87 2/22/2025
3.0.154 83 2/22/2025
3.0.153 88 2/22/2025
3.0.152 93 2/22/2025
3.0.151 84 2/22/2025
3.0.150 89 2/22/2025
3.0.149 81 2/22/2025
3.0.148 92 2/22/2025
3.0.147 85 2/22/2025
3.0.146 91 2/22/2025
3.0.145 81 2/22/2025
3.0.144 83 2/22/2025
3.0.143 79 2/22/2025
3.0.142 86 2/22/2025
3.0.141 86 2/21/2025
3.0.140 87 2/21/2025
3.0.139 87 2/21/2025
3.0.138 88 2/21/2025
3.0.137 81 2/21/2025
3.0.136 86 2/21/2025
3.0.135 88 2/21/2025
3.0.134 94 2/20/2025
3.0.133 89 2/19/2025
3.0.132 93 2/19/2025
3.0.131 95 2/19/2025
3.0.130 86 2/19/2025
3.0.129 96 2/19/2025
3.0.128 93 2/19/2025
3.0.127 102 2/19/2025
3.0.126 90 2/19/2025
3.0.125 90 2/19/2025
3.0.124 89 2/19/2025
3.0.123 97 2/19/2025
3.0.122 92 2/18/2025
3.0.121 90 2/18/2025
3.0.120 101 2/18/2025
3.0.119 92 2/18/2025
3.0.118 95 2/18/2025
3.0.117 97 2/18/2025
3.0.116 110 2/18/2025
3.0.115 93 2/18/2025
3.0.114 94 2/16/2025
3.0.113 92 2/14/2025
3.0.112 87 2/14/2025
3.0.111 88 2/14/2025
3.0.110 90 2/14/2025
3.0.109 98 2/14/2025
3.0.108 97 2/14/2025
3.0.107 93 2/14/2025
3.0.106 101 2/14/2025
3.0.105 93 2/13/2025
3.0.104 87 2/13/2025
3.0.103 102 2/13/2025
3.0.102 83 2/13/2025
3.0.101 105 2/12/2025
3.0.100 89 2/12/2025
3.0.99 96 2/12/2025
3.0.98 101 2/12/2025
3.0.97 98 2/12/2025
3.0.96 95 2/12/2025
3.0.95 94 2/12/2025
3.0.94 90 2/12/2025
3.0.93 95 2/12/2025
3.0.92 99 2/12/2025
3.0.91 96 2/12/2025
3.0.90 97 2/12/2025
3.0.89 92 2/12/2025
3.0.88 92 2/12/2025
3.0.87 98 2/12/2025
3.0.86 90 2/12/2025
3.0.85 102 2/12/2025
3.0.84 97 2/12/2025
3.0.83 90 2/12/2025
3.0.82 90 2/11/2025
3.0.81 90 2/11/2025
3.0.80 97 2/11/2025
3.0.79 95 2/11/2025
3.0.78 101 2/11/2025
3.0.77 91 2/11/2025
3.0.76 92 2/11/2025
3.0.75 97 2/11/2025
3.0.74 94 2/11/2025
3.0.73 108 2/11/2025
3.0.72 97 2/11/2025
3.0.71 98 2/11/2025
3.0.70 96 2/10/2025
3.0.69 97 2/10/2025
3.0.68 103 2/10/2025
3.0.67 98 2/10/2025
3.0.66 92 2/10/2025
3.0.65 94 2/10/2025
3.0.64 98 2/9/2025
3.0.63 101 2/9/2025
3.0.62 85 2/9/2025
3.0.61 87 2/9/2025
3.0.60 93 2/9/2025
3.0.59 84 2/9/2025
3.0.58 97 2/8/2025
3.0.57 95 2/8/2025
3.0.56 89 2/8/2025
3.0.55 94 2/8/2025
3.0.54 95 2/8/2025
3.0.53 98 2/8/2025
3.0.52 92 2/8/2025
3.0.51 90 2/8/2025
3.0.50 96 2/8/2025
3.0.49 106 2/8/2025
3.0.48 92 2/8/2025
3.0.47 85 2/8/2025
3.0.46 92 2/7/2025
3.0.45 94 2/7/2025
3.0.44 100 2/7/2025
3.0.43 94 2/7/2025
3.0.42 96 2/7/2025
3.0.41 96 2/7/2025
3.0.40 105 2/7/2025
3.0.39 104 2/7/2025
3.0.38 105 2/7/2025
3.0.37 101 2/7/2025
3.0.36 88 2/7/2025
3.0.35 89 2/7/2025
3.0.34 89 2/7/2025
3.0.33 94 2/7/2025
3.0.32 96 2/7/2025
3.0.31 96 2/7/2025
3.0.30 91 2/6/2025
3.0.29 96 2/6/2025
3.0.28 89 2/6/2025
3.0.27 81 2/6/2025
3.0.26 100 2/6/2025
3.0.25 93 2/5/2025
3.0.24 96 2/5/2025
3.0.23 92 2/5/2025
3.0.22 95 2/5/2025
3.0.21 96 2/5/2025
3.0.20 98 2/5/2025
3.0.19 104 2/5/2025
3.0.18 96 2/5/2025
3.0.17 90 2/5/2025
3.0.16 99 2/5/2025
3.0.15 93 2/5/2025
3.0.14 96 2/5/2025
3.0.13 88 2/5/2025
3.0.12 92 2/5/2025
3.0.11 93 2/5/2025
3.0.10 96 2/5/2025
3.0.9 95 2/5/2025
3.0.8 94 2/5/2025
3.0.7 98 2/3/2025
3.0.6 95 2/3/2025
3.0.5 96 2/3/2025
3.0.4 97 2/3/2025
3.0.3 98 2/3/2025