Soenneker.SemanticKernel.Cache 3.0.53

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.53
                    
NuGet\Install-Package Soenneker.SemanticKernel.Cache -Version 3.0.53
                    
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.53" />
                    
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.53" />
                    
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.53
                    
#r "nuget: Soenneker.SemanticKernel.Cache, 3.0.53"
                    
#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.53
                    
Install Soenneker.SemanticKernel.Cache as a Cake Addin
#tool nuget:?package=Soenneker.SemanticKernel.Cache&version=3.0.53
                    
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 132 4 days ago
3.0.379 113 10 days ago
3.0.378 152 12 days ago
3.0.377 141 12 days ago
3.0.376 155 12 days ago
3.0.375 156 13 days ago
3.0.374 151 13 days ago
3.0.373 149 13 days ago
3.0.372 144 13 days ago
3.0.371 153 13 days ago
3.0.370 151 13 days ago
3.0.369 141 13 days ago
3.0.368 148 14 days ago
3.0.367 144 14 days ago
3.0.366 143 14 days ago
3.0.365 141 14 days ago
3.0.364 141 14 days ago
3.0.363 151 14 days ago
3.0.362 147 14 days ago
3.0.361 150 14 days ago
3.0.360 151 14 days ago
3.0.359 147 14 days ago
3.0.358 135 14 days ago
3.0.357 150 14 days ago
3.0.356 147 14 days ago
3.0.355 140 14 days ago
3.0.354 142 14 days ago
3.0.353 140 14 days ago
3.0.352 147 14 days ago
3.0.351 140 14 days ago
3.0.350 147 14 days ago
3.0.349 136 14 days ago
3.0.348 147 14 days ago
3.0.347 143 15 days ago
3.0.346 141 15 days ago
3.0.345 145 15 days ago
3.0.344 143 15 days ago
3.0.343 144 15 days ago
3.0.342 148 15 days ago
3.0.341 143 15 days ago
3.0.340 143 15 days ago
3.0.339 142 15 days ago
3.0.338 136 15 days ago
3.0.337 142 15 days ago
3.0.336 146 15 days ago
3.0.335 136 15 days ago
3.0.334 119 15 days ago
3.0.333 117 15 days ago
3.0.332 116 15 days ago
3.0.331 111 15 days ago
3.0.330 130 16 days ago
3.0.329 124 16 days ago
3.0.328 90 16 days ago
3.0.327 96 16 days ago
3.0.326 85 16 days ago
3.0.325 91 16 days ago
3.0.324 96 16 days ago
3.0.323 68 16 days ago
3.0.322 66 16 days ago
3.0.321 65 16 days ago
3.0.320 70 16 days ago
3.0.319 69 16 days ago
3.0.318 76 16 days ago
3.0.317 73 17 days ago
3.0.316 85 17 days ago
3.0.315 81 17 days ago
3.0.314 86 17 days ago
3.0.313 127 17 days ago
3.0.312 130 18 days ago
3.0.311 128 18 days ago
3.0.310 146 18 days ago
3.0.309 137 18 days ago
3.0.308 142 18 days ago
3.0.307 143 18 days ago
3.0.306 134 20 days ago
3.0.305 139 20 days ago
3.0.304 141 20 days ago
3.0.303 140 20 days ago
3.0.302 136 20 days ago
3.0.301 140 20 days ago
3.0.300 130 20 days ago
3.0.299 144 21 days ago
3.0.298 134 21 days ago
3.0.297 135 21 days ago
3.0.296 131 21 days ago
3.0.295 131 21 days ago
3.0.294 144 21 days ago
3.0.293 130 21 days ago
3.0.292 146 21 days ago
3.0.291 141 22 days ago
3.0.290 136 23 days ago
3.0.289 74 23 days ago
3.0.288 71 23 days ago
3.0.287 79 23 days ago
3.0.286 77 23 days ago
3.0.285 85 23 days ago
3.0.284 119 25 days ago
3.0.283 124 a month ago
3.0.282 121 a month ago
3.0.281 119 a month ago
3.0.280 122 a month ago
3.0.279 455 a month ago
3.0.278 452 a month ago
3.0.277 452 a month ago
3.0.276 452 a month ago
3.0.275 457 a month ago
3.0.274 454 a month ago
3.0.273 462 a month ago
3.0.272 457 a month ago
3.0.271 463 a month ago
3.0.270 474 a month 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 2 months 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 84 2 months ago
3.0.140 85 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 93 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 91 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 94 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 105 2 months ago
3.0.72 95 2 months ago
3.0.71 96 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 82 2 months ago
3.0.61 84 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 97 2 months ago
3.0.43 91 2 months ago
3.0.42 93 2 months ago
3.0.41 94 2 months ago
3.0.40 103 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 3 months ago
3.0.25 91 3 months ago
3.0.24 94 3 months ago
3.0.23 89 3 months ago
3.0.22 93 3 months ago
3.0.21 93 3 months ago
3.0.20 95 3 months ago
3.0.19 102 3 months ago
3.0.18 93 3 months ago
3.0.17 88 3 months ago
3.0.16 97 3 months ago
3.0.15 91 3 months ago
3.0.14 93 3 months ago
3.0.13 86 3 months ago
3.0.12 90 3 months ago
3.0.11 91 3 months ago
3.0.10 94 3 months ago
3.0.9 93 3 months ago
3.0.8 91 3 months ago
3.0.7 96 3 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