Soenneker.SemanticKernel.Cache 3.0.273

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.273
                    
NuGet\Install-Package Soenneker.SemanticKernel.Cache -Version 3.0.273
                    
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.273" />
                    
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.273" />
                    
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.273
                    
#r "nuget: Soenneker.SemanticKernel.Cache, 3.0.273"
                    
#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.273
                    
Install Soenneker.SemanticKernel.Cache as a Cake Addin
#tool nuget:?package=Soenneker.SemanticKernel.Cache&version=3.0.273
                    
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.374 0 37 minutes ago
3.0.373 0 3 hours ago
3.0.372 0 5 hours ago
3.0.371 0 6 hours ago
3.0.370 0 10 hours ago
3.0.369 0 10 hours ago
3.0.368 34 15 hours ago
3.0.367 28 15 hours ago
3.0.366 28 17 hours ago
3.0.365 28 17 hours ago
3.0.364 26 19 hours ago
3.0.363 30 19 hours ago
3.0.362 28 21 hours ago
3.0.361 29 21 hours ago
3.0.360 40 a day ago
3.0.359 48 a day ago
3.0.358 37 a day ago
3.0.357 63 a day ago
3.0.356 58 a day ago
3.0.355 56 a day ago
3.0.354 55 a day ago
3.0.353 62 a day ago
3.0.352 67 a day ago
3.0.351 61 a day ago
3.0.350 62 a day ago
3.0.349 57 a day ago
3.0.348 68 2 days ago
3.0.347 59 2 days ago
3.0.346 59 2 days ago
3.0.345 65 2 days ago
3.0.344 61 2 days ago
3.0.343 62 2 days ago
3.0.342 67 2 days ago
3.0.341 62 2 days ago
3.0.340 62 2 days ago
3.0.339 64 2 days ago
3.0.338 58 2 days ago
3.0.337 61 2 days ago
3.0.336 67 2 days ago
3.0.335 74 2 days ago
3.0.334 58 2 days ago
3.0.333 55 2 days ago
3.0.332 62 2 days ago
3.0.331 56 2 days ago
3.0.330 67 3 days ago
3.0.329 64 3 days ago
3.0.328 61 3 days ago
3.0.327 67 3 days ago
3.0.326 57 3 days ago
3.0.325 62 3 days ago
3.0.324 68 3 days ago
3.0.323 60 3 days ago
3.0.322 60 3 days ago
3.0.321 58 3 days ago
3.0.320 64 3 days ago
3.0.319 56 3 days ago
3.0.318 68 4 days ago
3.0.317 59 4 days ago
3.0.316 76 4 days ago
3.0.315 74 4 days ago
3.0.314 75 4 days ago
3.0.313 118 5 days ago
3.0.312 124 5 days ago
3.0.311 124 5 days ago
3.0.310 137 5 days ago
3.0.309 125 5 days ago
3.0.308 136 5 days ago
3.0.307 139 5 days ago
3.0.306 129 7 days ago
3.0.305 134 7 days ago
3.0.304 133 7 days ago
3.0.303 132 7 days ago
3.0.302 130 7 days ago
3.0.301 136 7 days ago
3.0.300 126 7 days ago
3.0.299 140 8 days ago
3.0.298 130 8 days ago
3.0.297 131 8 days ago
3.0.296 126 8 days ago
3.0.295 127 8 days ago
3.0.294 139 8 days ago
3.0.293 127 8 days ago
3.0.292 143 8 days ago
3.0.291 138 9 days ago
3.0.290 133 10 days ago
3.0.289 70 10 days ago
3.0.288 67 10 days ago
3.0.287 75 10 days ago
3.0.286 73 10 days ago
3.0.285 81 10 days ago
3.0.284 118 12 days ago
3.0.283 121 13 days ago
3.0.282 119 13 days ago
3.0.281 116 13 days ago
3.0.280 120 13 days ago
3.0.279 453 13 days ago
3.0.278 450 14 days ago
3.0.277 450 14 days ago
3.0.276 450 14 days ago
3.0.275 455 14 days ago
3.0.274 451 14 days ago
3.0.273 461 14 days ago
3.0.272 456 14 days ago
3.0.271 461 14 days ago
3.0.270 472 15 days ago
3.0.269 71 18 days ago
3.0.268 64 18 days ago
3.0.267 75 18 days ago
3.0.266 95 18 days ago
3.0.265 91 18 days ago
3.0.264 117 19 days ago
3.0.263 114 19 days ago
3.0.262 125 19 days ago
3.0.261 127 19 days ago
3.0.260 128 21 days ago
3.0.259 127 21 days ago
3.0.258 127 21 days ago
3.0.257 127 21 days ago
3.0.256 125 21 days ago
3.0.255 129 21 days ago
3.0.254 131 21 days ago
3.0.253 129 21 days ago
3.0.252 126 21 days ago
3.0.251 129 22 days ago
3.0.250 59 24 days ago
3.0.249 57 24 days ago
3.0.248 56 24 days ago
3.0.247 52 24 days ago
3.0.246 54 25 days ago
3.0.245 51 25 days 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 a month ago
3.0.174 80 a month ago
3.0.173 83 a month ago
3.0.172 78 a month ago
3.0.171 82 a month ago
3.0.170 82 a month ago
3.0.169 76 a month 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 93 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