Soenneker.SemanticKernel.Cache 3.0.64

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.64
                    
NuGet\Install-Package Soenneker.SemanticKernel.Cache -Version 3.0.64
                    
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.64" />
                    
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.64" />
                    
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.64
                    
#r "nuget: Soenneker.SemanticKernel.Cache, 3.0.64"
                    
#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.64
                    
Install Soenneker.SemanticKernel.Cache as a Cake Addin
#tool nuget:?package=Soenneker.SemanticKernel.Cache&version=3.0.64
                    
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. 
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.378 0 an hour ago
3.0.377 0 4 hours ago
3.0.376 0 7 hours ago
3.0.375 0 14 hours ago
3.0.374 2 17 hours ago
3.0.373 25 20 hours ago
3.0.372 27 21 hours ago
3.0.371 28 a day ago
3.0.370 34 a day ago
3.0.369 23 a day ago
3.0.368 42 a day ago
3.0.367 33 a day ago
3.0.366 34 a day ago
3.0.365 36 a day ago
3.0.364 33 a day ago
3.0.363 37 a day ago
3.0.362 36 2 days ago
3.0.361 36 2 days ago
3.0.360 51 2 days ago
3.0.359 55 2 days ago
3.0.358 42 2 days ago
3.0.357 71 2 days ago
3.0.356 65 2 days ago
3.0.355 61 2 days ago
3.0.354 60 2 days ago
3.0.353 63 2 days ago
3.0.352 68 2 days ago
3.0.351 63 2 days ago
3.0.350 64 2 days ago
3.0.349 59 2 days ago
3.0.348 72 2 days ago
3.0.347 62 2 days ago
3.0.346 62 2 days ago
3.0.345 66 2 days ago
3.0.344 63 2 days ago
3.0.343 64 2 days ago
3.0.342 68 3 days ago
3.0.341 63 3 days ago
3.0.340 65 3 days ago
3.0.339 65 3 days ago
3.0.338 60 3 days ago
3.0.337 64 3 days ago
3.0.336 68 3 days ago
3.0.335 78 3 days ago
3.0.334 60 3 days ago
3.0.333 56 3 days ago
3.0.332 63 3 days ago
3.0.331 57 3 days ago
3.0.330 70 3 days ago
3.0.329 66 3 days ago
3.0.328 64 4 days ago
3.0.327 70 4 days ago
3.0.326 59 4 days ago
3.0.325 65 4 days ago
3.0.324 68 4 days ago
3.0.323 63 4 days ago
3.0.322 61 4 days ago
3.0.321 60 4 days ago
3.0.320 64 4 days ago
3.0.319 58 4 days ago
3.0.318 69 4 days ago
3.0.317 64 5 days ago
3.0.316 77 5 days ago
3.0.315 74 5 days ago
3.0.314 79 5 days ago
3.0.313 119 5 days ago
3.0.312 125 5 days ago
3.0.311 125 5 days ago
3.0.310 143 5 days ago
3.0.309 130 6 days ago
3.0.308 137 6 days ago
3.0.307 140 6 days ago
3.0.306 130 8 days ago
3.0.305 135 8 days ago
3.0.304 137 8 days ago
3.0.303 134 8 days ago
3.0.302 131 8 days ago
3.0.301 137 8 days ago
3.0.300 127 8 days ago
3.0.299 140 8 days ago
3.0.298 130 9 days ago
3.0.297 131 9 days ago
3.0.296 126 9 days ago
3.0.295 127 9 days ago
3.0.294 139 9 days ago
3.0.293 127 9 days ago
3.0.292 143 9 days ago
3.0.291 138 10 days ago
3.0.290 133 11 days ago
3.0.289 70 11 days ago
3.0.288 67 11 days ago
3.0.287 75 11 days ago
3.0.286 73 11 days ago
3.0.285 81 11 days ago
3.0.284 118 13 days ago
3.0.283 121 13 days ago
3.0.282 119 13 days ago
3.0.281 116 14 days ago
3.0.280 120 14 days ago
3.0.279 453 14 days ago
3.0.278 450 14 days ago
3.0.277 450 15 days ago
3.0.276 450 15 days ago
3.0.275 455 15 days ago
3.0.274 451 15 days ago
3.0.273 461 15 days ago
3.0.272 456 15 days ago
3.0.271 461 15 days ago
3.0.270 472 15 days ago
3.0.269 71 19 days ago
3.0.268 64 19 days ago
3.0.267 75 19 days ago
3.0.266 95 19 days ago
3.0.265 91 19 days ago
3.0.264 117 19 days ago
3.0.263 114 19 days ago
3.0.262 125 20 days ago
3.0.261 127 20 days ago
3.0.260 128 22 days ago
3.0.259 127 22 days ago
3.0.258 127 22 days ago
3.0.257 127 22 days ago
3.0.256 125 22 days ago
3.0.255 129 22 days ago
3.0.254 131 22 days ago
3.0.253 129 22 days ago
3.0.252 126 22 days ago
3.0.251 129 22 days ago
3.0.250 59 25 days ago
3.0.249 57 25 days ago
3.0.248 56 25 days ago
3.0.247 52 25 days ago
3.0.246 54 25 days ago
3.0.245 51 a month ago
3.0.244 137 a month ago
3.0.243 143 a month ago
3.0.242 143 a month ago
3.0.241 140 a month ago
3.0.240 133 a month ago
3.0.239 136 a month ago
3.0.238 138 a month ago
3.0.237 140 a month ago
3.0.236 138 a month ago
3.0.235 135 a month ago
3.0.234 137 a month ago
3.0.233 140 a month ago
3.0.232 145 a month ago
3.0.231 137 a month ago
3.0.230 143 a month ago
3.0.229 144 a month ago
3.0.228 149 a month ago
3.0.227 139 a month ago
3.0.226 141 a month ago
3.0.225 148 a month ago
3.0.224 142 a month ago
3.0.223 146 a month ago
3.0.222 144 a month ago
3.0.221 196 a month ago
3.0.220 193 a month ago
3.0.219 191 a month ago
3.0.218 193 a month ago
3.0.217 194 a month ago
3.0.216 189 a month ago
3.0.215 195 a month ago
3.0.214 190 a month ago
3.0.213 193 a month ago
3.0.212 192 a month ago
3.0.211 92 a month ago
3.0.210 100 a month ago
3.0.209 80 a month ago
3.0.208 81 a month ago
3.0.207 80 a month ago
3.0.206 82 a month ago
3.0.205 80 a month ago
3.0.204 92 a month ago
3.0.203 70 a month ago
3.0.202 78 a month ago
3.0.201 83 a month ago
3.0.200 81 a month ago
3.0.199 82 a month ago
3.0.198 88 a month ago
3.0.197 80 a month ago
3.0.196 81 a month ago
3.0.195 80 a month ago
3.0.194 80 a month ago
3.0.193 81 a month ago
3.0.192 79 a month ago
3.0.191 79 a month ago
3.0.190 75 a month ago
3.0.189 73 a month ago
3.0.188 78 a month ago
3.0.187 77 a month ago
3.0.186 85 a month ago
3.0.185 83 a month ago
3.0.184 84 a month ago
3.0.183 83 a month ago
3.0.182 88 a month ago
3.0.181 83 a month ago
3.0.180 80 a month ago
3.0.179 82 a month ago
3.0.178 87 a month ago
3.0.177 84 a month ago
3.0.176 91 a month ago
3.0.175 84 2 months ago
3.0.174 80 2 months ago
3.0.173 83 2 months ago
3.0.172 78 2 months ago
3.0.171 82 2 months ago
3.0.170 82 2 months ago
3.0.169 76 2 months ago
3.0.168 112 2 months ago
3.0.167 71 2 months ago
3.0.166 82 2 months ago
3.0.165 79 2 months ago
3.0.164 80 2 months ago
3.0.163 78 2 months ago
3.0.162 84 2 months ago
3.0.161 75 2 months ago
3.0.160 81 2 months ago
3.0.159 77 2 months ago
3.0.158 83 2 months ago
3.0.157 83 2 months ago
3.0.156 79 2 months ago
3.0.155 83 2 months ago
3.0.154 80 2 months ago
3.0.153 83 2 months ago
3.0.152 89 2 months ago
3.0.151 80 2 months ago
3.0.150 85 2 months ago
3.0.149 76 2 months ago
3.0.148 88 2 months ago
3.0.147 81 2 months ago
3.0.146 87 2 months ago
3.0.145 77 2 months ago
3.0.144 78 2 months ago
3.0.143 75 2 months ago
3.0.142 82 2 months ago
3.0.141 79 2 months ago
3.0.140 80 2 months ago
3.0.139 83 2 months ago
3.0.138 84 2 months ago
3.0.137 77 2 months ago
3.0.136 82 2 months ago
3.0.135 83 2 months ago
3.0.134 90 2 months ago
3.0.133 85 2 months ago
3.0.132 89 2 months ago
3.0.131 91 2 months ago
3.0.130 82 2 months ago
3.0.129 92 2 months ago
3.0.128 88 2 months ago
3.0.127 98 2 months ago
3.0.126 87 2 months ago
3.0.125 86 2 months ago
3.0.124 85 2 months ago
3.0.123 92 2 months ago
3.0.122 88 2 months ago
3.0.121 86 2 months ago
3.0.120 97 2 months ago
3.0.119 89 2 months ago
3.0.118 88 2 months ago
3.0.117 93 2 months ago
3.0.116 105 2 months ago
3.0.115 89 2 months ago
3.0.114 90 2 months ago
3.0.113 88 2 months ago
3.0.112 83 2 months ago
3.0.111 84 2 months ago
3.0.110 86 2 months ago
3.0.109 94 2 months ago
3.0.108 93 2 months ago
3.0.107 88 2 months ago
3.0.106 97 2 months ago
3.0.105 85 2 months ago
3.0.104 83 2 months ago
3.0.103 98 2 months ago
3.0.102 79 2 months ago
3.0.101 102 2 months ago
3.0.100 85 2 months ago
3.0.99 89 2 months ago
3.0.98 97 2 months ago
3.0.97 94 2 months ago
3.0.96 91 2 months ago
3.0.95 89 2 months ago
3.0.94 85 2 months ago
3.0.93 91 2 months ago
3.0.92 94 2 months ago
3.0.91 92 2 months ago
3.0.90 93 2 months ago
3.0.89 89 2 months ago
3.0.88 88 2 months ago
3.0.87 94 2 months ago
3.0.86 86 2 months ago
3.0.85 98 2 months ago
3.0.84 93 2 months ago
3.0.83 85 2 months ago
3.0.82 86 2 months ago
3.0.81 86 2 months ago
3.0.80 93 2 months ago
3.0.79 91 2 months ago
3.0.78 97 2 months ago
3.0.77 86 2 months ago
3.0.76 88 2 months ago
3.0.75 94 2 months ago
3.0.74 90 2 months ago
3.0.73 100 2 months ago
3.0.72 90 2 months ago
3.0.71 90 2 months ago
3.0.70 92 2 months ago
3.0.69 93 2 months ago
3.0.68 98 2 months ago
3.0.67 92 2 months ago
3.0.66 86 2 months ago
3.0.65 89 2 months ago
3.0.64 93 2 months ago
3.0.63 96 2 months ago
3.0.62 76 2 months ago
3.0.61 79 2 months ago
3.0.60 88 2 months ago
3.0.59 78 2 months ago
3.0.58 92 2 months ago
3.0.57 90 2 months ago
3.0.56 83 2 months ago
3.0.55 87 2 months ago
3.0.54 90 2 months ago
3.0.53 93 2 months ago
3.0.52 87 2 months ago
3.0.51 85 2 months ago
3.0.50 91 2 months ago
3.0.49 100 2 months ago
3.0.48 87 2 months ago
3.0.47 80 2 months ago
3.0.46 85 2 months ago
3.0.45 87 2 months ago
3.0.44 90 2 months ago
3.0.43 86 2 months ago
3.0.42 87 2 months ago
3.0.41 87 2 months ago
3.0.40 97 2 months ago
3.0.39 99 2 months ago
3.0.38 100 2 months ago
3.0.37 96 2 months ago
3.0.36 83 2 months ago
3.0.35 85 2 months ago
3.0.34 85 2 months ago
3.0.33 90 2 months ago
3.0.32 93 2 months ago
3.0.31 91 2 months ago
3.0.30 87 2 months ago
3.0.29 91 2 months ago
3.0.28 84 2 months ago
3.0.27 77 2 months ago
3.0.26 96 2 months ago
3.0.25 89 2 months ago
3.0.24 92 2 months ago
3.0.23 87 2 months ago
3.0.22 92 2 months ago
3.0.21 91 2 months ago
3.0.20 93 2 months ago
3.0.19 100 2 months ago
3.0.18 91 2 months ago
3.0.17 86 2 months ago
3.0.16 95 2 months ago
3.0.15 89 2 months ago
3.0.14 91 2 months ago
3.0.13 84 2 months ago
3.0.12 88 2 months ago
3.0.11 89 2 months ago
3.0.10 92 2 months ago
3.0.9 91 2 months ago
3.0.8 89 2 months ago
3.0.7 94 2 months ago
3.0.6 91 2 months ago
3.0.5 92 2 months ago
3.0.4 92 2 months ago
3.0.3 94 2 months ago