Codeblaze.SemanticKernel.Connectors.Ollama 1.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Codeblaze.SemanticKernel.Connectors.Ollama --version 1.1.0                
NuGet\Install-Package Codeblaze.SemanticKernel.Connectors.Ollama -Version 1.1.0                
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="Codeblaze.SemanticKernel.Connectors.Ollama" Version="1.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Codeblaze.SemanticKernel.Connectors.Ollama --version 1.1.0                
#r "nuget: Codeblaze.SemanticKernel.Connectors.Ollama, 1.1.0"                
#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.
// Install Codeblaze.SemanticKernel.Connectors.Ollama as a Cake Addin
#addin nuget:?package=Codeblaze.SemanticKernel.Connectors.Ollama&version=1.1.0

// Install Codeblaze.SemanticKernel.Connectors.Ollama as a Cake Tool
#tool nuget:?package=Codeblaze.SemanticKernel.Connectors.Ollama&version=1.1.0                

Ollama Connector

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.Ollama
    
  • Text Generation

    Configure the kernel

    var builder = Kernel.CreateBuilder();
    
    // 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Codeblaze.SemanticKernel.Connectors.Ollama:

Package Downloads
Chaosage.Core.Setup

Chaosage开发平台API配置规范

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.3.1 1,154 6/16/2024
1.3.0 690 2/1/2024
1.2.3 156 1/23/2024
1.2.2 122 1/19/2024
1.2.1 107 1/18/2024
1.2.0 107 1/18/2024
1.1.0 229 12/25/2023