Soenneker.SemanticKernel.Cache 3.0.442

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.442
                    
NuGet\Install-Package Soenneker.SemanticKernel.Cache -Version 3.0.442
                    
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.442" />
                    
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.442" />
                    
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.442
                    
#r "nuget: Soenneker.SemanticKernel.Cache, 3.0.442"
                    
#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.442
                    
Install Soenneker.SemanticKernel.Cache as a Cake Addin
#tool nuget:?package=Soenneker.SemanticKernel.Cache&version=3.0.442
                    
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 important to centralize and reuse kernel setup logic rather than repeating configuration for each consumer or request. This avoids the overhead of reinitializing connectors and plugins. SemanticKernelCache supports this by providing a thread-safe, per-key singleton cache that lazily creates Kernel instances using customizable options. Kernels are disposed at 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 (1)

Showing the top 1 NuGet packages that depend on Soenneker.SemanticKernel.Cache:

Package Downloads
Soenneker.SemanticKernel.Pool

Manages a pool of Semantic Kernel instances with per-entry rate limiting.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.0.465 227 6/16/2025
3.0.464 114 6/16/2025
3.0.463 355 6/11/2025
3.0.462 316 6/11/2025
3.0.461 337 6/11/2025
3.0.460 353 6/11/2025
3.0.459 268 6/11/2025
3.0.458 273 6/11/2025
3.0.457 268 6/11/2025
3.0.456 303 6/10/2025
3.0.455 389 6/3/2025
3.0.454 162 6/3/2025
3.0.453 300 6/3/2025
3.0.452 186 6/2/2025
3.0.451 180 6/2/2025
3.0.450 243 5/28/2025
3.0.449 184 5/28/2025
3.0.448 187 5/28/2025
3.0.447 133 5/28/2025
3.0.446 152 5/27/2025
3.0.445 132 5/27/2025
3.0.444 191 5/27/2025
3.0.443 136 5/27/2025
3.0.442 177 5/27/2025
3.0.441 129 5/27/2025
3.0.440 146 5/27/2025
3.0.439 292 5/26/2025
3.0.438 127 5/25/2025
3.0.437 129 5/25/2025
3.0.436 124 5/23/2025
3.0.435 142 5/23/2025
3.0.434 142 5/23/2025
3.0.433 101 5/23/2025
3.0.432 132 5/23/2025
3.0.431 109 5/23/2025
3.0.430 136 5/23/2025
3.0.429 153 5/23/2025
3.0.428 122 5/23/2025
3.0.427 137 5/22/2025
3.0.426 128 5/22/2025
3.0.425 159 5/22/2025
3.0.424 348 5/21/2025
3.0.423 157 5/21/2025
3.0.422 190 5/20/2025
3.0.421 128 5/20/2025
3.0.420 190 5/19/2025
3.0.419 297 5/18/2025
3.0.418 150 5/18/2025
3.0.417 153 5/18/2025
3.0.416 165 5/18/2025
3.0.414 93 5/18/2025
3.0.413 150 5/16/2025
3.0.412 178 5/16/2025
3.0.411 214 5/14/2025
3.0.410 214 5/14/2025
3.0.409 213 5/14/2025
3.0.408 216 5/14/2025
3.0.407 219 5/14/2025
3.0.406 133 5/8/2025
3.0.405 130 5/8/2025
3.0.404 135 5/8/2025
3.0.403 133 5/8/2025
3.0.402 130 5/8/2025
3.0.401 138 5/8/2025
3.0.400 130 5/8/2025
3.0.399 134 5/7/2025
3.0.398 135 5/6/2025
3.0.397 131 5/6/2025
3.0.396 133 5/6/2025
3.0.395 132 5/5/2025
3.0.394 137 5/5/2025
3.0.393 132 5/5/2025
3.0.392 135 5/5/2025
3.0.391 141 5/5/2025
3.0.390 134 5/5/2025
3.0.389 129 5/5/2025
3.0.388 132 5/5/2025
3.0.387 134 5/5/2025
3.0.386 134 5/5/2025
3.0.385 130 4/29/2025
3.0.384 125 4/27/2025
3.0.383 81 4/27/2025
3.0.382 73 4/26/2025
3.0.381 76 4/26/2025
3.0.380 167 4/18/2025
3.0.379 123 4/11/2025
3.0.378 162 4/9/2025
3.0.377 148 4/9/2025
3.0.376 167 4/9/2025
3.0.375 163 4/9/2025
3.0.374 159 4/8/2025
3.0.373 158 4/8/2025
3.0.372 152 4/8/2025
3.0.371 160 4/8/2025
3.0.370 160 4/8/2025
3.0.369 150 4/8/2025
3.0.368 158 4/8/2025
3.0.367 154 4/8/2025
3.0.366 151 4/8/2025
3.0.365 148 4/8/2025
3.0.364 151 4/8/2025
3.0.363 160 4/8/2025
3.0.362 155 4/8/2025
3.0.361 157 4/8/2025
3.0.360 159 4/8/2025
3.0.359 157 4/7/2025
3.0.358 144 4/7/2025
3.0.357 157 4/7/2025
3.0.356 155 4/7/2025
3.0.355 148 4/7/2025
3.0.354 150 4/7/2025
3.0.353 148 4/7/2025
3.0.352 156 4/7/2025
3.0.351 149 4/7/2025
3.0.350 155 4/7/2025
3.0.349 144 4/7/2025
3.0.348 155 4/7/2025
3.0.347 152 4/7/2025
3.0.346 151 4/7/2025
3.0.345 153 4/7/2025
3.0.344 151 4/7/2025
3.0.343 151 4/7/2025
3.0.342 157 4/6/2025
3.0.341 152 4/6/2025
3.0.340 153 4/6/2025
3.0.339 151 4/6/2025
3.0.338 149 4/6/2025
3.0.337 154 4/6/2025
3.0.336 157 4/6/2025
3.0.335 149 4/6/2025
3.0.334 127 4/6/2025
3.0.333 124 4/6/2025
3.0.332 127 4/6/2025
3.0.331 121 4/6/2025
3.0.330 137 4/6/2025
3.0.329 134 4/6/2025
3.0.328 100 4/6/2025
3.0.327 106 4/6/2025
3.0.326 94 4/6/2025
3.0.325 102 4/5/2025
3.0.324 108 4/5/2025
3.0.323 76 4/5/2025
3.0.322 75 4/5/2025
3.0.321 77 4/5/2025
3.0.320 79 4/5/2025
3.0.319 83 4/5/2025
3.0.318 85 4/5/2025
3.0.317 82 4/5/2025
3.0.316 95 4/4/2025
3.0.315 90 4/4/2025
3.0.314 93 4/4/2025
3.0.313 139 4/4/2025
3.0.312 140 4/4/2025
3.0.311 139 4/4/2025
3.0.310 158 4/4/2025
3.0.309 145 4/4/2025
3.0.308 154 4/3/2025
3.0.307 152 4/3/2025
3.0.306 142 4/2/2025
3.0.305 151 4/1/2025
3.0.304 150 4/1/2025
3.0.303 147 4/1/2025
3.0.302 143 4/1/2025
3.0.301 149 4/1/2025
3.0.300 139 4/1/2025
3.0.299 153 4/1/2025
3.0.298 146 4/1/2025
3.0.297 144 4/1/2025
3.0.296 139 4/1/2025
3.0.295 140 3/31/2025
3.0.294 152 3/31/2025
3.0.293 138 3/31/2025
3.0.292 157 3/31/2025
3.0.291 148 3/30/2025
3.0.290 146 3/29/2025
3.0.289 84 3/29/2025
3.0.288 83 3/29/2025
3.0.287 90 3/29/2025
3.0.286 85 3/29/2025
3.0.285 93 3/29/2025
3.0.284 128 3/27/2025
3.0.283 137 3/27/2025
3.0.282 129 3/27/2025
3.0.281 129 3/27/2025
3.0.280 133 3/26/2025
3.0.279 465 3/26/2025
3.0.278 465 3/26/2025
3.0.277 467 3/26/2025
3.0.276 466 3/25/2025
3.0.275 468 3/25/2025
3.0.274 465 3/25/2025
3.0.273 472 3/25/2025
3.0.272 470 3/25/2025
3.0.271 473 3/25/2025
3.0.270 485 3/25/2025
3.0.269 84 3/21/2025
3.0.268 78 3/21/2025
3.0.267 89 3/21/2025
3.0.266 106 3/21/2025
3.0.265 103 3/21/2025
3.0.264 130 3/21/2025
3.0.263 127 3/21/2025
3.0.262 140 3/20/2025
3.0.261 137 3/20/2025
3.0.260 136 3/19/2025
3.0.259 136 3/19/2025
3.0.258 135 3/18/2025
3.0.257 134 3/18/2025
3.0.256 133 3/18/2025
3.0.255 138 3/18/2025
3.0.254 141 3/18/2025
3.0.253 136 3/18/2025
3.0.252 133 3/18/2025
3.0.251 138 3/18/2025
3.0.250 72 3/15/2025
3.0.249 64 3/15/2025
3.0.248 65 3/15/2025
3.0.247 62 3/15/2025
3.0.246 62 3/15/2025
3.0.245 59 3/15/2025
3.0.244 147 3/12/2025
3.0.243 153 3/12/2025
3.0.242 152 3/12/2025
3.0.241 149 3/12/2025
3.0.240 141 3/12/2025
3.0.239 144 3/12/2025
3.0.238 147 3/12/2025
3.0.237 148 3/12/2025
3.0.236 147 3/12/2025
3.0.235 145 3/12/2025
3.0.234 144 3/12/2025
3.0.233 155 3/11/2025
3.0.232 154 3/11/2025
3.0.231 148 3/11/2025
3.0.230 154 3/11/2025
3.0.229 152 3/11/2025
3.0.228 155 3/11/2025
3.0.227 151 3/11/2025
3.0.226 150 3/11/2025
3.0.225 157 3/11/2025
3.0.224 151 3/11/2025
3.0.223 157 3/11/2025
3.0.222 157 3/11/2025
3.0.221 206 3/7/2025
3.0.220 202 3/7/2025
3.0.219 198 3/7/2025
3.0.218 205 3/7/2025
3.0.217 204 3/7/2025
3.0.216 201 3/7/2025
3.0.215 203 3/7/2025
3.0.214 200 3/7/2025
3.0.213 201 3/7/2025
3.0.212 203 3/3/2025
3.0.211 104 3/2/2025
3.0.210 107 3/2/2025
3.0.209 89 3/2/2025
3.0.208 88 3/2/2025
3.0.207 89 3/2/2025
3.0.206 90 3/2/2025
3.0.205 87 3/2/2025
3.0.204 101 3/2/2025
3.0.203 77 3/2/2025
3.0.202 88 3/2/2025
3.0.201 91 3/2/2025
3.0.200 89 3/2/2025
3.0.199 89 3/2/2025
3.0.198 94 3/1/2025
3.0.197 87 3/1/2025
3.0.196 90 3/1/2025
3.0.195 88 3/1/2025
3.0.194 88 3/1/2025
3.0.193 90 3/1/2025
3.0.192 87 3/1/2025
3.0.191 87 3/1/2025
3.0.190 82 3/1/2025
3.0.189 82 3/1/2025
3.0.188 88 3/1/2025
3.0.187 85 3/1/2025
3.0.186 94 2/28/2025
3.0.185 92 2/26/2025
3.0.184 93 2/26/2025
3.0.183 91 2/26/2025
3.0.182 95 2/26/2025
3.0.181 91 2/26/2025
3.0.180 91 2/25/2025
3.0.179 91 2/25/2025
3.0.178 96 2/25/2025
3.0.177 91 2/25/2025
3.0.176 100 2/25/2025
3.0.175 94 2/25/2025
3.0.174 89 2/25/2025
3.0.173 91 2/25/2025
3.0.172 88 2/25/2025
3.0.171 91 2/24/2025
3.0.170 92 2/24/2025
3.0.169 86 2/24/2025
3.0.168 123 2/23/2025
3.0.167 79 2/23/2025
3.0.166 90 2/23/2025
3.0.165 87 2/23/2025
3.0.164 87 2/23/2025
3.0.163 85 2/23/2025
3.0.162 91 2/23/2025
3.0.161 84 2/23/2025
3.0.160 90 2/22/2025
3.0.159 86 2/22/2025
3.0.158 91 2/22/2025
3.0.157 92 2/22/2025
3.0.156 86 2/22/2025
3.0.155 91 2/22/2025
3.0.154 86 2/22/2025
3.0.153 91 2/22/2025
3.0.152 97 2/22/2025
3.0.151 88 2/22/2025
3.0.150 92 2/22/2025
3.0.149 88 2/22/2025
3.0.148 97 2/22/2025
3.0.147 89 2/22/2025
3.0.146 94 2/22/2025
3.0.145 84 2/22/2025
3.0.144 87 2/22/2025
3.0.143 83 2/22/2025
3.0.142 90 2/22/2025
3.0.141 89 2/21/2025
3.0.140 90 2/21/2025
3.0.139 91 2/21/2025
3.0.138 92 2/21/2025
3.0.137 84 2/21/2025
3.0.136 90 2/21/2025
3.0.135 91 2/21/2025
3.0.134 97 2/20/2025
3.0.133 94 2/19/2025
3.0.132 98 2/19/2025
3.0.131 99 2/19/2025
3.0.130 92 2/19/2025
3.0.129 102 2/19/2025
3.0.128 100 2/19/2025
3.0.127 106 2/19/2025
3.0.126 93 2/19/2025
3.0.125 95 2/19/2025
3.0.124 95 2/19/2025
3.0.123 100 2/19/2025
3.0.122 95 2/18/2025
3.0.121 93 2/18/2025
3.0.120 105 2/18/2025
3.0.119 96 2/18/2025
3.0.118 99 2/18/2025
3.0.117 100 2/18/2025
3.0.116 116 2/18/2025
3.0.115 97 2/18/2025
3.0.114 100 2/16/2025
3.0.113 95 2/14/2025
3.0.112 91 2/14/2025
3.0.111 91 2/14/2025
3.0.110 95 2/14/2025
3.0.109 102 2/14/2025
3.0.108 107 2/14/2025
3.0.107 101 2/14/2025
3.0.106 113 2/14/2025
3.0.105 98 2/13/2025
3.0.104 92 2/13/2025
3.0.103 109 2/13/2025
3.0.102 88 2/13/2025
3.0.101 109 2/12/2025
3.0.100 95 2/12/2025
3.0.99 99 2/12/2025
3.0.98 107 2/12/2025
3.0.97 101 2/12/2025
3.0.96 103 2/12/2025
3.0.95 98 2/12/2025
3.0.94 95 2/12/2025
3.0.93 99 2/12/2025
3.0.92 103 2/12/2025
3.0.91 99 2/12/2025
3.0.90 101 2/12/2025
3.0.89 96 2/12/2025
3.0.88 98 2/12/2025
3.0.87 105 2/12/2025
3.0.86 95 2/12/2025
3.0.85 107 2/12/2025
3.0.84 102 2/12/2025
3.0.83 94 2/12/2025
3.0.82 95 2/11/2025
3.0.81 95 2/11/2025
3.0.80 103 2/11/2025
3.0.79 99 2/11/2025
3.0.78 107 2/11/2025
3.0.77 102 2/11/2025
3.0.76 96 2/11/2025
3.0.75 103 2/11/2025
3.0.74 101 2/11/2025
3.0.73 114 2/11/2025
3.0.72 101 2/11/2025
3.0.71 103 2/11/2025
3.0.70 102 2/10/2025
3.0.69 105 2/10/2025
3.0.68 108 2/10/2025
3.0.67 104 2/10/2025
3.0.66 98 2/10/2025
3.0.65 99 2/10/2025
3.0.64 102 2/9/2025
3.0.63 106 2/9/2025
3.0.62 89 2/9/2025
3.0.61 91 2/9/2025
3.0.60 97 2/9/2025
3.0.59 87 2/9/2025
3.0.58 100 2/8/2025
3.0.57 101 2/8/2025
3.0.56 93 2/8/2025
3.0.55 104 2/8/2025
3.0.54 98 2/8/2025
3.0.53 103 2/8/2025
3.0.52 97 2/8/2025
3.0.51 95 2/8/2025
3.0.50 100 2/8/2025
3.0.49 111 2/8/2025
3.0.48 99 2/8/2025
3.0.47 90 2/8/2025
3.0.46 96 2/7/2025
3.0.45 100 2/7/2025
3.0.44 105 2/7/2025
3.0.43 100 2/7/2025
3.0.42 100 2/7/2025
3.0.41 101 2/7/2025
3.0.40 116 2/7/2025
3.0.39 109 2/7/2025
3.0.38 110 2/7/2025
3.0.37 105 2/7/2025
3.0.36 94 2/7/2025
3.0.35 94 2/7/2025
3.0.34 93 2/7/2025
3.0.33 104 2/7/2025
3.0.32 101 2/7/2025
3.0.31 102 2/7/2025
3.0.30 99 2/6/2025
3.0.29 101 2/6/2025
3.0.28 93 2/6/2025
3.0.27 85 2/6/2025
3.0.26 104 2/6/2025
3.0.25 97 2/5/2025
3.0.24 101 2/5/2025
3.0.23 96 2/5/2025
3.0.22 102 2/5/2025
3.0.21 100 2/5/2025
3.0.20 101 2/5/2025
3.0.19 107 2/5/2025
3.0.18 100 2/5/2025
3.0.17 93 2/5/2025
3.0.16 103 2/5/2025
3.0.15 97 2/5/2025
3.0.14 102 2/5/2025
3.0.13 92 2/5/2025
3.0.12 96 2/5/2025
3.0.11 103 2/5/2025
3.0.10 102 2/5/2025
3.0.9 98 2/5/2025
3.0.8 97 2/5/2025
3.0.7 105 2/3/2025
3.0.6 99 2/3/2025
3.0.5 99 2/3/2025
3.0.4 101 2/3/2025
3.0.3 101 2/3/2025