Soenneker.SemanticKernel.Cache 3.0.426

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.426
                    
NuGet\Install-Package Soenneker.SemanticKernel.Cache -Version 3.0.426
                    
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.426" />
                    
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.426" />
                    
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.426
                    
#r "nuget: Soenneker.SemanticKernel.Cache, 3.0.426"
                    
#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.426
                    
Install Soenneker.SemanticKernel.Cache as a Cake Addin
#tool nuget:?package=Soenneker.SemanticKernel.Cache&version=3.0.426
                    
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.452 0 6/2/2025
3.0.451 0 6/2/2025
3.0.450 179 5/28/2025
3.0.449 151 5/28/2025
3.0.448 147 5/28/2025
3.0.447 109 5/28/2025
3.0.446 131 5/27/2025
3.0.445 112 5/27/2025
3.0.444 151 5/27/2025
3.0.443 115 5/27/2025
3.0.442 148 5/27/2025
3.0.441 109 5/27/2025
3.0.440 124 5/27/2025
3.0.439 249 5/26/2025
3.0.438 123 5/25/2025
3.0.437 124 5/25/2025
3.0.436 120 5/23/2025
3.0.435 137 5/23/2025
3.0.434 138 5/23/2025
3.0.433 95 5/23/2025
3.0.432 127 5/23/2025
3.0.431 105 5/23/2025
3.0.430 132 5/23/2025
3.0.429 149 5/23/2025
3.0.428 117 5/23/2025
3.0.427 132 5/22/2025
3.0.426 125 5/22/2025
3.0.425 153 5/22/2025
3.0.424 343 5/21/2025
3.0.423 152 5/21/2025
3.0.422 184 5/20/2025
3.0.421 124 5/20/2025
3.0.420 185 5/19/2025
3.0.419 291 5/18/2025
3.0.418 146 5/18/2025
3.0.417 150 5/18/2025
3.0.416 162 5/18/2025
3.0.414 89 5/18/2025
3.0.413 149 5/16/2025
3.0.412 175 5/16/2025
3.0.411 211 5/14/2025
3.0.410 212 5/14/2025
3.0.409 210 5/14/2025
3.0.408 214 5/14/2025
3.0.407 216 5/14/2025
3.0.406 131 5/8/2025
3.0.405 128 5/8/2025
3.0.404 131 5/8/2025
3.0.403 131 5/8/2025
3.0.402 128 5/8/2025
3.0.401 133 5/8/2025
3.0.400 128 5/8/2025
3.0.399 133 5/7/2025
3.0.398 134 5/6/2025
3.0.397 128 5/6/2025
3.0.396 132 5/6/2025
3.0.395 130 5/5/2025
3.0.394 133 5/5/2025
3.0.393 130 5/5/2025
3.0.392 133 5/5/2025
3.0.391 136 5/5/2025
3.0.390 131 5/5/2025
3.0.389 128 5/5/2025
3.0.388 131 5/5/2025
3.0.387 132 5/5/2025
3.0.386 133 5/5/2025
3.0.385 128 4/29/2025
3.0.384 123 4/27/2025
3.0.383 80 4/27/2025
3.0.382 71 4/26/2025
3.0.381 74 4/26/2025
3.0.380 165 4/18/2025
3.0.379 120 4/11/2025
3.0.378 160 4/9/2025
3.0.377 147 4/9/2025
3.0.376 162 4/9/2025
3.0.375 162 4/9/2025
3.0.374 158 4/8/2025
3.0.373 157 4/8/2025
3.0.372 150 4/8/2025
3.0.371 159 4/8/2025
3.0.370 157 4/8/2025
3.0.369 147 4/8/2025
3.0.368 156 4/8/2025
3.0.367 151 4/8/2025
3.0.366 150 4/8/2025
3.0.365 147 4/8/2025
3.0.364 150 4/8/2025
3.0.363 158 4/8/2025
3.0.362 153 4/8/2025
3.0.361 156 4/8/2025
3.0.360 157 4/8/2025
3.0.359 154 4/7/2025
3.0.358 142 4/7/2025
3.0.357 156 4/7/2025
3.0.356 154 4/7/2025
3.0.355 146 4/7/2025
3.0.354 148 4/7/2025
3.0.353 147 4/7/2025
3.0.352 154 4/7/2025
3.0.351 146 4/7/2025
3.0.350 153 4/7/2025
3.0.349 142 4/7/2025
3.0.348 153 4/7/2025
3.0.347 150 4/7/2025
3.0.346 148 4/7/2025
3.0.345 151 4/7/2025
3.0.344 149 4/7/2025
3.0.343 150 4/7/2025
3.0.342 155 4/6/2025
3.0.341 150 4/6/2025
3.0.340 150 4/6/2025
3.0.339 149 4/6/2025
3.0.338 147 4/6/2025
3.0.337 152 4/6/2025
3.0.336 154 4/6/2025
3.0.335 142 4/6/2025
3.0.334 125 4/6/2025
3.0.333 123 4/6/2025
3.0.332 124 4/6/2025
3.0.331 118 4/6/2025
3.0.330 136 4/6/2025
3.0.329 132 4/6/2025
3.0.328 97 4/6/2025
3.0.327 104 4/6/2025
3.0.326 91 4/6/2025
3.0.325 100 4/5/2025
3.0.324 104 4/5/2025
3.0.323 75 4/5/2025
3.0.322 73 4/5/2025
3.0.321 76 4/5/2025
3.0.320 76 4/5/2025
3.0.319 81 4/5/2025
3.0.318 83 4/5/2025
3.0.317 80 4/5/2025
3.0.316 93 4/4/2025
3.0.315 88 4/4/2025
3.0.314 92 4/4/2025
3.0.313 137 4/4/2025
3.0.312 138 4/4/2025
3.0.311 135 4/4/2025
3.0.310 153 4/4/2025
3.0.309 144 4/4/2025
3.0.308 149 4/3/2025
3.0.307 149 4/3/2025
3.0.306 140 4/2/2025
3.0.305 149 4/1/2025
3.0.304 147 4/1/2025
3.0.303 146 4/1/2025
3.0.302 142 4/1/2025
3.0.301 146 4/1/2025
3.0.300 137 4/1/2025
3.0.299 150 4/1/2025
3.0.298 141 4/1/2025
3.0.297 141 4/1/2025
3.0.296 137 4/1/2025
3.0.295 137 3/31/2025
3.0.294 151 3/31/2025
3.0.293 137 3/31/2025
3.0.292 152 3/31/2025
3.0.291 147 3/30/2025
3.0.290 144 3/29/2025
3.0.289 82 3/29/2025
3.0.288 80 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 132 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 463 3/26/2025
3.0.278 463 3/26/2025
3.0.277 466 3/26/2025
3.0.276 463 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 467 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 66 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 149 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 200 3/7/2025
3.0.217 201 3/7/2025
3.0.216 199 3/7/2025
3.0.215 202 3/7/2025
3.0.214 198 3/7/2025
3.0.213 200 3/7/2025
3.0.212 199 3/3/2025
3.0.211 103 3/2/2025
3.0.210 107 3/2/2025
3.0.209 88 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 99 3/2/2025
3.0.203 77 3/2/2025
3.0.202 87 3/2/2025
3.0.201 90 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 87 3/1/2025
3.0.193 89 3/1/2025
3.0.192 86 3/1/2025
3.0.191 86 3/1/2025
3.0.190 82 3/1/2025
3.0.189 81 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 88 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 98 2/25/2025
3.0.175 91 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 81 2/23/2025
3.0.160 87 2/22/2025
3.0.159 86 2/22/2025
3.0.158 91 2/22/2025
3.0.157 90 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 87 2/22/2025
3.0.150 92 2/22/2025
3.0.149 84 2/22/2025
3.0.148 95 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 89 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 92 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 97 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 93 2/14/2025
3.0.109 101 2/14/2025
3.0.108 100 2/14/2025
3.0.107 96 2/14/2025
3.0.106 104 2/14/2025
3.0.105 96 2/13/2025
3.0.104 90 2/13/2025
3.0.103 106 2/13/2025
3.0.102 87 2/13/2025
3.0.101 108 2/12/2025
3.0.100 92 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 98 2/12/2025
3.0.95 97 2/12/2025
3.0.94 93 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 100 2/12/2025
3.0.89 95 2/12/2025
3.0.88 95 2/12/2025
3.0.87 102 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 93 2/11/2025
3.0.81 93 2/11/2025
3.0.80 100 2/11/2025
3.0.79 98 2/11/2025
3.0.78 105 2/11/2025
3.0.77 94 2/11/2025
3.0.76 95 2/11/2025
3.0.75 101 2/11/2025
3.0.74 97 2/11/2025
3.0.73 111 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 97 2/8/2025
3.0.54 98 2/8/2025
3.0.53 101 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 89 2/8/2025
3.0.46 95 2/7/2025
3.0.45 97 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 108 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 97 2/7/2025
3.0.32 99 2/7/2025
3.0.31 100 2/7/2025
3.0.30 94 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 96 2/5/2025
3.0.24 99 2/5/2025
3.0.23 95 2/5/2025
3.0.22 98 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 102 2/5/2025
3.0.10 99 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