AugusteVN.Ollama.Client 1.2.0

dotnet add package AugusteVN.Ollama.Client --version 1.2.0
                    
NuGet\Install-Package AugusteVN.Ollama.Client -Version 1.2.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="AugusteVN.Ollama.Client" Version="1.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AugusteVN.Ollama.Client" Version="1.2.0" />
                    
Directory.Packages.props
<PackageReference Include="AugusteVN.Ollama.Client" />
                    
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 AugusteVN.Ollama.Client --version 1.2.0
                    
#r "nuget: AugusteVN.Ollama.Client, 1.2.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.
#:package AugusteVN.Ollama.Client@1.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=AugusteVN.Ollama.Client&version=1.2.0
                    
Install as a Cake Addin
#tool nuget:?package=AugusteVN.Ollama.Client&version=1.2.0
                    
Install as a Cake Tool

Ollama Client

A C# client library for interacting with your Ollama API setup. This package provides simple and easy-to-use APIs for generating model responses, listing local models, ...

Interact with your own Ollama API setup by passing an accessible host URL.


Some links to get you started:


Configuration

Program.cs

builder.Services.AddOllamaHttpClient(builder.Configuration);

// --- Or --- //

builder.Services
    .AddOptions<OllamaClientConfig>()
    .BindConfiguration(nameof(OllamaClientConfig));

builder.Services.AddHttpClient(); // Registers the IHttpClientFactory
builder.Services.AddScoped<IOllamaHttpClient, OllamaHttpClient>();

// Or
builder.Services.AddHttpClient<IOllamaHttpClient, OllamaHttpClient>(); // Registers the IHttpClientFactory

// Or
var ollamaClient = new OllamaHttpClient(
    new HttpClient(),
    new OllamaClientConfig { HostUrl = "<optionally-set-here-or-pass-as-param-in-method>" }
);

List Models

class Example(OllamaHttpClient ollamaClient)
{
    public async Task ListModelsAsync()
    {
        var result = await ollamaClient.ListLocalModelsAsync(hostUrl: "http://localhost:11434");
        if (!result.IsFailure && result.Value.Models?.Any() == true)
        {
            Console.WriteLine(result.Value.Models.Select(model => model.Name));
        }
    }
});

Generate Embedding

class Example(OllamaHttpClient ollamaClient)
{
    public async Task EmbedAsync()
    {
        var result = await OllamaHttpClient.EmbedAsync(
            new OllamaEmbedRequest
            {
                Model = "llama3.1",
                Input = [
                    "Document this C# method as XML comment format: ```csharp ...```",
                    "More text to embed"
                ]
            }, hostUrl: "http://localhost:11434"));
        
        Console.WriteLine(result.Embeddings);
    }
}

Generate Model Response

class Example(OllamaHttpClient ollamaClient)
{
    public async Task GenerateAsync()
    {
        await foreach (var stream in OllamaHttpClient.GenerateAsync(
            new OllamaGenerateRequest
            {
                Model = "llama3.1",
                Stream = false,
                Prompt = "Document this C# method as XML comment format: ```csharp ...```"
            }, hostUrl: "http://localhost:11434"))
        {
            Console.WriteLine(stream.Response);
        }
    }
}

Chat with Model

class Example(OllamaHttpClient ollamaClient)
{
    public async Task ChatAsync()
    {
        await foreach (var stream in OllamaHttpClient.ChatAsync(
            new OllamaChatRequest
            {
                Messages = new []{ new OllamaChatMessageRequest {
                    Content = "C# pass Http completion option to PostAsJsonAsync" }
                },
                Model = "llama3.1",
                Stream = true
            }, hostUrl: "http://localhost:11434"))
        {
            Console.WriteLine(stream.Message.Content);
        }
    }
}

Find a more complete client package: OllamaSharp


Get the original code of my package, here:

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.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 AugusteVN.Ollama.Client:

Package Downloads
AugusteVN.Modules.VirtualAssistant._Shared.Spa

Blazor chat interface for Ollama LLM integration

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2.0 152 7/9/2026
1.1.1 146 3/5/2026
1.1.0 128 3/4/2026
1.0.9 253 10/21/2025
1.0.8 264 11/29/2024
1.0.7 246 7/7/2024
1.0.6 723 7/7/2024

Upgraded to .NET 10.