Codeblaze.SemanticKernel.Connectors.AI.Ollama
1.0.6
See the version list below for details.
dotnet add package Codeblaze.SemanticKernel.Connectors.AI.Ollama --version 1.0.6
NuGet\Install-Package Codeblaze.SemanticKernel.Connectors.AI.Ollama -Version 1.0.6
<PackageReference Include="Codeblaze.SemanticKernel.Connectors.AI.Ollama" Version="1.0.6" />
paket add Codeblaze.SemanticKernel.Connectors.AI.Ollama --version 1.0.6
#r "nuget: Codeblaze.SemanticKernel.Connectors.AI.Ollama, 1.0.6"
// Install Codeblaze.SemanticKernel.Connectors.AI.Ollama as a Cake Addin #addin nuget:?package=Codeblaze.SemanticKernel.Connectors.AI.Ollama&version=1.0.6 // Install Codeblaze.SemanticKernel.Connectors.AI.Ollama as a Cake Tool #tool nuget:?package=Codeblaze.SemanticKernel.Connectors.AI.Ollama&version=1.0.6
Ollama Connector
<p align="center"> <a href="https://www.nuget.org/packages/Codeblaze.SemanticKernel.Connectors.AI.Ollama"> <img alt="Nuget" src="https://img.shields.io/nuget/v/Codeblaze.SemanticKernel.Connectors.AI.Ollama?label=ollama"> </a> <a href="https://github.com/BLaZeKiLL/Codeblaze.SemanticKernel/actions/workflows/build.yml"> <img alt="GitHub Workflow Status (with event)" src="https://img.shields.io/github/actions/workflow/status/BLaZeKiLL/Codeblaze.SemanticKernel/build.yml"> </a> <a href="https://github.com/BLaZeKiLL/Codeblaze.SemanticKernel/blob/main/LICENSE.md"> <img alt="GitHub" src="https://img.shields.io/github/license/BLaZeKiLL/Codeblaze.SemanticKernel"> </a> <a href="https://www.youtube.com/c/CodeBlazeX"> <img alt="YouTube Channel Subscribers" src="https://img.shields.io/youtube/channel/subscribers/UC_qfPIYfXOvg0SDAc8Z68WA?label=CodeBlaze&style=social"> </a> </p>
Supports
- text generation
- chat completion
- embedding generation
⚠️ Embedding generation: Is experimental in the semantic kernel.
Quick Start
Install from nuget
dotnet add package Codeblaze.SemanticKernel.Connectors.AI.Ollama
Text Generation
Configure the kernel
var builder = new KernelBuilder(); // provide the HTTP client used to interact with Ollama API builder.Services.AddTransient<HttpClient>(); builder.AddOllamaTextGeneration( config["Ollama:Model"], // Ollama model Id config["Ollama:BaseUrlGeneration"] // Ollama endpoint ); var kernel = builder.Build();
Usage
const string prompt = """ Bot: How can I help you? User: {{$input}} --------------------------------------------- The intent of the user in 5 words or less: """; var result = await kernel.InvokePromptAsync(prompt, new KernelArguments { {"input", input} }); System.Console.WriteLine(result.GetValue<string>());
Chat Completion
Configure the kernel
var builder = new KernelBuilder(); // provide the HTTP client used to interact with Ollama API builder.Services.AddTransient<HttpClient>(); builder.AddOllamaChatCompletion( config["Ollama:Model"], // Ollama model Id config["Ollama:BaseUrlGeneration"] // Ollama endpoint ); var kernel = builder.Build();
Usage
var chat = _Kernel.GetRequiredService<IChatCompletionService>(); var history = new ChatHistory(); // add messages to current chat history as required history.AddSystemMessage("..."); history.AddAssistantMessage("..."); history.AddUserMessage(input); // result is a list of all chat messages // including the output of current prompt var result = await chat.GetChatMessageContentsAsync(history); // Print the last message System.Console.WriteLine(result[^1].Content);
Embedding Generation (Experimental)
Configure the kernel
var builder = new KernelBuilder(); // provide the HTTP client used to interact with Ollama API builder.Services.AddTransient<HttpClient>(); builder.AddOllamaTextEmbeddingGeneration( config["Ollama:Model"], // Ollama model Id config["Ollama:BaseUrlGeneration"] // Ollama endpoint ); // Configure memory backend (e.g Azure Cognitive Search) var kernel = builder.Build();
Usage
var memory = _Kernel.GetRequiredService<ISemanticTextMemory>(); // This will internally call Ollama embedding service to generate embeddings memory.SaveReferenceAsync( collection: "collection", externalSourceName: "ext-collection", externalId: id, // reference id (database entity id) description: input, text: input );
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. 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. |
-
net8.0
- Microsoft.SemanticKernel (>= 1.0.0-rc3)
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 | |
---|---|---|---|
1.0.7 | 297 | 12/10/2023 | |
1.0.6 | 136 | 12/10/2023 | |
1.0.5 | 134 | 12/10/2023 | |
1.0.2-alpha.0.3 | 68 | 12/10/2023 |