Soenneker.SemanticKernel.Cache 3.0.78

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