Soenneker.SemanticKernel.Cache 3.0.453

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.453
                    
NuGet\Install-Package Soenneker.SemanticKernel.Cache -Version 3.0.453
                    
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.453" />
                    
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.453" />
                    
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.453
                    
#r "nuget: Soenneker.SemanticKernel.Cache, 3.0.453"
                    
#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.453
                    
Install Soenneker.SemanticKernel.Cache as a Cake Addin
#tool nuget:?package=Soenneker.SemanticKernel.Cache&version=3.0.453
                    
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 74 6/16/2025
3.0.464 40 6/16/2025
3.0.463 342 6/11/2025
3.0.462 311 6/11/2025
3.0.461 331 6/11/2025
3.0.460 351 6/11/2025
3.0.459 267 6/11/2025
3.0.458 273 6/11/2025
3.0.457 267 6/11/2025
3.0.456 303 6/10/2025
3.0.455 379 6/3/2025
3.0.454 161 6/3/2025
3.0.453 298 6/3/2025
3.0.452 184 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 131 5/28/2025
3.0.446 152 5/27/2025
3.0.445 132 5/27/2025
3.0.444 189 5/27/2025
3.0.443 136 5/27/2025
3.0.442 176 5/27/2025
3.0.441 129 5/27/2025
3.0.440 145 5/27/2025
3.0.439 291 5/26/2025
3.0.438 126 5/25/2025
3.0.437 128 5/25/2025
3.0.436 123 5/23/2025
3.0.435 141 5/23/2025
3.0.434 141 5/23/2025
3.0.433 98 5/23/2025
3.0.432 130 5/23/2025
3.0.431 108 5/23/2025
3.0.430 135 5/23/2025
3.0.429 153 5/23/2025
3.0.428 122 5/23/2025
3.0.427 135 5/22/2025
3.0.426 128 5/22/2025
3.0.425 157 5/22/2025
3.0.424 347 5/21/2025
3.0.423 156 5/21/2025
3.0.422 189 5/20/2025
3.0.421 127 5/20/2025
3.0.420 189 5/19/2025
3.0.419 293 5/18/2025
3.0.418 149 5/18/2025
3.0.417 152 5/18/2025
3.0.416 164 5/18/2025
3.0.414 92 5/18/2025
3.0.413 150 5/16/2025
3.0.412 177 5/16/2025
3.0.411 212 5/14/2025
3.0.410 213 5/14/2025
3.0.409 212 5/14/2025
3.0.408 215 5/14/2025
3.0.407 218 5/14/2025
3.0.406 132 5/8/2025
3.0.405 130 5/8/2025
3.0.404 132 5/8/2025
3.0.403 132 5/8/2025
3.0.402 130 5/8/2025
3.0.401 134 5/8/2025
3.0.400 129 5/8/2025
3.0.399 134 5/7/2025
3.0.398 135 5/6/2025
3.0.397 129 5/6/2025
3.0.396 133 5/6/2025
3.0.395 131 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 137 5/5/2025
3.0.390 133 5/5/2025
3.0.389 129 5/5/2025
3.0.388 132 5/5/2025
3.0.387 133 5/5/2025
3.0.386 134 5/5/2025
3.0.385 129 4/29/2025
3.0.384 124 4/27/2025
3.0.383 81 4/27/2025
3.0.382 72 4/26/2025
3.0.381 75 4/26/2025
3.0.380 166 4/18/2025
3.0.379 121 4/11/2025
3.0.378 161 4/9/2025
3.0.377 148 4/9/2025
3.0.376 166 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 151 4/8/2025
3.0.371 160 4/8/2025
3.0.370 159 4/8/2025
3.0.369 148 4/8/2025
3.0.368 157 4/8/2025
3.0.367 152 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 159 4/8/2025
3.0.362 154 4/8/2025
3.0.361 157 4/8/2025
3.0.360 158 4/8/2025
3.0.359 155 4/7/2025
3.0.358 143 4/7/2025
3.0.357 157 4/7/2025
3.0.356 155 4/7/2025
3.0.355 147 4/7/2025
3.0.354 149 4/7/2025
3.0.353 148 4/7/2025
3.0.352 155 4/7/2025
3.0.351 147 4/7/2025
3.0.350 154 4/7/2025
3.0.349 143 4/7/2025
3.0.348 154 4/7/2025
3.0.347 151 4/7/2025
3.0.346 149 4/7/2025
3.0.345 152 4/7/2025
3.0.344 150 4/7/2025
3.0.343 151 4/7/2025
3.0.342 156 4/6/2025
3.0.341 151 4/6/2025
3.0.340 151 4/6/2025
3.0.339 150 4/6/2025
3.0.338 148 4/6/2025
3.0.337 153 4/6/2025
3.0.336 155 4/6/2025
3.0.335 144 4/6/2025
3.0.334 126 4/6/2025
3.0.333 124 4/6/2025
3.0.332 126 4/6/2025
3.0.331 120 4/6/2025
3.0.330 137 4/6/2025
3.0.329 133 4/6/2025
3.0.328 98 4/6/2025
3.0.327 105 4/6/2025
3.0.326 92 4/6/2025
3.0.325 101 4/5/2025
3.0.324 106 4/5/2025
3.0.323 76 4/5/2025
3.0.322 74 4/5/2025
3.0.321 77 4/5/2025
3.0.320 79 4/5/2025
3.0.319 82 4/5/2025
3.0.318 84 4/5/2025
3.0.317 81 4/5/2025
3.0.316 94 4/4/2025
3.0.315 89 4/4/2025
3.0.314 93 4/4/2025
3.0.313 138 4/4/2025
3.0.312 139 4/4/2025
3.0.311 136 4/4/2025
3.0.310 157 4/4/2025
3.0.309 145 4/4/2025
3.0.308 152 4/3/2025
3.0.307 150 4/3/2025
3.0.306 141 4/2/2025
3.0.305 150 4/1/2025
3.0.304 148 4/1/2025
3.0.303 147 4/1/2025
3.0.302 143 4/1/2025
3.0.301 147 4/1/2025
3.0.300 138 4/1/2025
3.0.299 151 4/1/2025
3.0.298 144 4/1/2025
3.0.297 144 4/1/2025
3.0.296 138 4/1/2025
3.0.295 138 3/31/2025
3.0.294 152 3/31/2025
3.0.293 138 3/31/2025
3.0.292 155 3/31/2025
3.0.291 148 3/30/2025
3.0.290 145 3/29/2025
3.0.289 84 3/29/2025
3.0.288 81 3/29/2025
3.0.287 87 3/29/2025
3.0.286 85 3/29/2025
3.0.285 93 3/29/2025
3.0.284 127 3/27/2025
3.0.283 136 3/27/2025
3.0.282 129 3/27/2025
3.0.281 127 3/27/2025
3.0.280 130 3/26/2025
3.0.279 464 3/26/2025
3.0.278 463 3/26/2025
3.0.277 466 3/26/2025
3.0.276 464 3/25/2025
3.0.275 467 3/25/2025
3.0.274 464 3/25/2025
3.0.273 472 3/25/2025
3.0.272 468 3/25/2025
3.0.271 473 3/25/2025
3.0.270 485 3/25/2025
3.0.269 83 3/21/2025
3.0.268 78 3/21/2025
3.0.267 88 3/21/2025
3.0.266 106 3/21/2025
3.0.265 103 3/21/2025
3.0.264 129 3/21/2025
3.0.263 126 3/21/2025
3.0.262 139 3/20/2025
3.0.261 135 3/20/2025
3.0.260 136 3/19/2025
3.0.259 135 3/19/2025
3.0.258 134 3/18/2025
3.0.257 134 3/18/2025
3.0.256 132 3/18/2025
3.0.255 137 3/18/2025
3.0.254 139 3/18/2025
3.0.253 136 3/18/2025
3.0.252 132 3/18/2025
3.0.251 136 3/18/2025
3.0.250 69 3/15/2025
3.0.249 64 3/15/2025
3.0.248 63 3/15/2025
3.0.247 61 3/15/2025
3.0.246 61 3/15/2025
3.0.245 58 3/15/2025
3.0.244 146 3/12/2025
3.0.243 152 3/12/2025
3.0.242 149 3/12/2025
3.0.241 148 3/12/2025
3.0.240 140 3/12/2025
3.0.239 143 3/12/2025
3.0.238 146 3/12/2025
3.0.237 146 3/12/2025
3.0.236 145 3/12/2025
3.0.235 143 3/12/2025
3.0.234 144 3/12/2025
3.0.233 154 3/11/2025
3.0.232 153 3/11/2025
3.0.231 145 3/11/2025
3.0.230 154 3/11/2025
3.0.229 151 3/11/2025
3.0.228 155 3/11/2025
3.0.227 151 3/11/2025
3.0.226 149 3/11/2025
3.0.225 155 3/11/2025
3.0.224 150 3/11/2025
3.0.223 154 3/11/2025
3.0.222 157 3/11/2025
3.0.221 203 3/7/2025
3.0.220 201 3/7/2025
3.0.219 198 3/7/2025
3.0.218 203 3/7/2025
3.0.217 201 3/7/2025
3.0.216 200 3/7/2025
3.0.215 202 3/7/2025
3.0.214 199 3/7/2025
3.0.213 200 3/7/2025
3.0.212 201 3/3/2025
3.0.211 103 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 88 3/2/2025
3.0.206 89 3/2/2025
3.0.205 87 3/2/2025
3.0.204 100 3/2/2025
3.0.203 77 3/2/2025
3.0.202 87 3/2/2025
3.0.201 91 3/2/2025
3.0.200 88 3/2/2025
3.0.199 89 3/2/2025
3.0.198 94 3/1/2025
3.0.197 86 3/1/2025
3.0.196 88 3/1/2025
3.0.195 87 3/1/2025
3.0.194 88 3/1/2025
3.0.193 89 3/1/2025
3.0.192 87 3/1/2025
3.0.191 86 3/1/2025
3.0.190 82 3/1/2025
3.0.189 82 3/1/2025
3.0.188 86 3/1/2025
3.0.187 84 3/1/2025
3.0.186 93 2/28/2025
3.0.185 91 2/26/2025
3.0.184 92 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 90 2/25/2025
3.0.179 89 2/25/2025
3.0.178 95 2/25/2025
3.0.177 91 2/25/2025
3.0.176 99 2/25/2025
3.0.175 92 2/25/2025
3.0.174 88 2/25/2025
3.0.173 90 2/25/2025
3.0.172 85 2/25/2025
3.0.171 90 2/24/2025
3.0.170 90 2/24/2025
3.0.169 84 2/24/2025
3.0.168 119 2/23/2025
3.0.167 79 2/23/2025
3.0.166 89 2/23/2025
3.0.165 86 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 82 2/23/2025
3.0.160 88 2/22/2025
3.0.159 86 2/22/2025
3.0.158 91 2/22/2025
3.0.157 91 2/22/2025
3.0.156 86 2/22/2025
3.0.155 90 2/22/2025
3.0.154 86 2/22/2025
3.0.153 91 2/22/2025
3.0.152 96 2/22/2025
3.0.151 88 2/22/2025
3.0.150 92 2/22/2025
3.0.149 86 2/22/2025
3.0.148 96 2/22/2025
3.0.147 88 2/22/2025
3.0.146 94 2/22/2025
3.0.145 84 2/22/2025
3.0.144 86 2/22/2025
3.0.143 82 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 90 2/21/2025
3.0.138 91 2/21/2025
3.0.137 84 2/21/2025
3.0.136 89 2/21/2025
3.0.135 91 2/21/2025
3.0.134 97 2/20/2025
3.0.133 93 2/19/2025
3.0.132 96 2/19/2025
3.0.131 98 2/19/2025
3.0.130 89 2/19/2025
3.0.129 99 2/19/2025
3.0.128 96 2/19/2025
3.0.127 105 2/19/2025
3.0.126 93 2/19/2025
3.0.125 94 2/19/2025
3.0.124 94 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 104 2/18/2025
3.0.119 95 2/18/2025
3.0.118 99 2/18/2025
3.0.117 100 2/18/2025
3.0.116 115 2/18/2025
3.0.115 96 2/18/2025
3.0.114 99 2/16/2025
3.0.113 95 2/14/2025
3.0.112 90 2/14/2025
3.0.111 91 2/14/2025
3.0.110 95 2/14/2025
3.0.109 101 2/14/2025
3.0.108 104 2/14/2025
3.0.107 99 2/14/2025
3.0.106 110 2/14/2025
3.0.105 97 2/13/2025
3.0.104 91 2/13/2025
3.0.103 107 2/13/2025
3.0.102 88 2/13/2025
3.0.101 108 2/12/2025
3.0.100 93 2/12/2025
3.0.99 99 2/12/2025
3.0.98 104 2/12/2025
3.0.97 101 2/12/2025
3.0.96 102 2/12/2025
3.0.95 97 2/12/2025
3.0.94 94 2/12/2025
3.0.93 98 2/12/2025
3.0.92 102 2/12/2025
3.0.91 99 2/12/2025
3.0.90 101 2/12/2025
3.0.89 95 2/12/2025
3.0.88 95 2/12/2025
3.0.87 103 2/12/2025
3.0.86 93 2/12/2025
3.0.85 105 2/12/2025
3.0.84 100 2/12/2025
3.0.83 93 2/12/2025
3.0.82 95 2/11/2025
3.0.81 94 2/11/2025
3.0.80 102 2/11/2025
3.0.79 99 2/11/2025
3.0.78 106 2/11/2025
3.0.77 99 2/11/2025
3.0.76 96 2/11/2025
3.0.75 102 2/11/2025
3.0.74 99 2/11/2025
3.0.73 113 2/11/2025
3.0.72 101 2/11/2025
3.0.71 102 2/11/2025
3.0.70 101 2/10/2025
3.0.69 103 2/10/2025
3.0.68 108 2/10/2025
3.0.67 102 2/10/2025
3.0.66 96 2/10/2025
3.0.65 98 2/10/2025
3.0.64 101 2/9/2025
3.0.63 105 2/9/2025
3.0.62 88 2/9/2025
3.0.61 90 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 98 2/8/2025
3.0.56 93 2/8/2025
3.0.55 99 2/8/2025
3.0.54 98 2/8/2025
3.0.53 102 2/8/2025
3.0.52 95 2/8/2025
3.0.51 94 2/8/2025
3.0.50 100 2/8/2025
3.0.49 110 2/8/2025
3.0.48 96 2/8/2025
3.0.47 90 2/8/2025
3.0.46 95 2/7/2025
3.0.45 98 2/7/2025
3.0.44 103 2/7/2025
3.0.43 97 2/7/2025
3.0.42 99 2/7/2025
3.0.41 99 2/7/2025
3.0.40 115 2/7/2025
3.0.39 107 2/7/2025
3.0.38 108 2/7/2025
3.0.37 104 2/7/2025
3.0.36 92 2/7/2025
3.0.35 92 2/7/2025
3.0.34 92 2/7/2025
3.0.33 100 2/7/2025
3.0.32 99 2/7/2025
3.0.31 100 2/7/2025
3.0.30 96 2/6/2025
3.0.29 99 2/6/2025
3.0.28 92 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 99 2/5/2025
3.0.23 95 2/5/2025
3.0.22 99 2/5/2025
3.0.21 99 2/5/2025
3.0.20 101 2/5/2025
3.0.19 107 2/5/2025
3.0.18 99 2/5/2025
3.0.17 93 2/5/2025
3.0.16 102 2/5/2025
3.0.15 96 2/5/2025
3.0.14 99 2/5/2025
3.0.13 91 2/5/2025
3.0.12 95 2/5/2025
3.0.11 103 2/5/2025
3.0.10 100 2/5/2025
3.0.9 98 2/5/2025
3.0.8 97 2/5/2025
3.0.7 102 2/3/2025
3.0.6 98 2/3/2025
3.0.5 99 2/3/2025
3.0.4 101 2/3/2025
3.0.3 101 2/3/2025