OllamaSharp 4.0.0-preview.9

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

// Install OllamaSharp as a Cake Tool
#tool nuget:?package=OllamaSharp&version=4.0.0-preview.9&prerelease                

<p align="center">  <img alt="ollama" height="200px" src="https://github.com/awaescher/OllamaSharp/blob/main/Ollama.png"> </p>

OllamaSharp 🦙

OllamaSharp provides .NET bindings for the Ollama API, simplifying interactions with Ollama both locally and remotely.

Features

  • Ease of use: Interact with Ollama in just a few lines of code.
  • API endpoint coverage: Support for all the Ollama API endpoints, including chats, embeddings, listing models, pulling and creating new models, and more.
  • Real-time streaming: Stream responses directly to your application.
  • Progress reporting: Get real-time progress feedback on tasks like model pulling.
  • Support for vision models and tools (function calling).

Usage

OllamaSharp wraps each Ollama API endpoint in awaitable methods that fully support response streaming.

The following list shows a few simple code examples.

Try our full-featured Ollama API client app OllamaSharpConsole to interact with your Ollama instance.

Initializing

// set up the client
var uri = new Uri("http://localhost:11434");
var ollama = new OllamaApiClient(uri);

// select a model which should be used for further operations
ollama.SelectedModel = "llama3.1:8b";

Listing all models that are available locally

var models = await ollama.ListLocalModelsAsync();

Pulling a model and reporting progress

await foreach (var status in ollama.PullModelAsync("llama3.1:405b"))
    Console.WriteLine($"{status.Percent}% {status.Status}");

Generating a completion directly into the console

await foreach (var stream in ollama.GenerateAsync("How are you today?"))
    Console.Write(stream.Response);

Building interactive chats

var chat = new Chat(ollama);
while (true)
{
    var message = Console.ReadLine();
    await foreach (var answerToken in chat.SendAsync(message))
        Console.Write(answerToken);
}
// messages including their roles and tool calls will automatically be tracked within the chat object
// and are accessible via the Messages property

Credits

The icon and name were reused from the amazing Ollama project.

I would like to thank all the contributors who take the time to improve OllamaSharp. First and foremost mili-tan, who always keeps OllamaSharp in sync with the Ollama API. ❤

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (9)

Showing the top 5 NuGet packages that depend on OllamaSharp:

Package Downloads
Microsoft.KernelMemory.AI.Ollama

Provide access to Ollama LLM models in Kernel Memory to generate embeddings and text

Microsoft.SemanticKernel.Connectors.Ollama

Semantic Kernel connector for Ollama. Contains services for text generation, chat completion and text embeddings.

CommunityToolkit.Aspire.Hosting.Ollama

An Aspire integration leveraging the Ollama container with support for downloading a model on startup.

CommunityToolkit.Aspire.OllamaSharp

A .NET Aspire client integration for the OllamaSharp library.

Atc.SemanticKernel.Connectors.Ollama

Atc.SemanticKernel.Connectors.Ollama contains a connector for integrating with local llms through Ollama.

GitHub repositories (5)

Showing the top 5 popular GitHub repositories that depend on OllamaSharp:

Repository Stars
microsoft/kernel-memory
RAG architecture: index and query any data using LLM and natural language, track sources, show citations, asynchronous memory patterns.
dotnet/ai-samples
platformplatform/PlatformPlatform
Alpha state. A platform designed for building enterprise-grade, multi-tenant products using Azure, .NET, React, TypeScript, Infrastructure as Code, etc.
CommunityToolkit/Aspire
A community project with additional components and extensions for .NET Aspire
lindexi/lindexi_gd
博客用到的代码
Version Downloads Last updated
4.0.8 527 11/22/2024
4.0.7 2,710 11/13/2024
4.0.6 6,447 11/7/2024
4.0.5 1,277 11/5/2024
4.0.4 285 11/4/2024
4.0.3 2,683 10/30/2024
4.0.2 247 10/29/2024
4.0.1 2,039 10/26/2024
4.0.0-preview.10 70 10/23/2024
4.0.0-preview.9 46 10/21/2024
4.0.0-preview.8 69 10/17/2024
3.0.15 2,734 10/21/2024
3.0.14 5,442 10/16/2024
3.0.13 76 10/16/2024
3.0.12 11,711 10/14/2024
3.0.11 1,292 10/9/2024
3.0.10 8,289 10/4/2024
3.0.9 91 10/4/2024
3.0.8 11,240 9/26/2024
3.0.7 15,020 9/12/2024
3.0.6 1,145 9/11/2024
3.0.5 782 9/11/2024
3.0.4 24,409 9/6/2024
3.0.3 106 9/6/2024
3.0.2 350 9/5/2024
3.0.1 15,732 9/2/2024
3.0.0 1,914 8/26/2024
2.1.3 2,502 8/23/2024
2.1.2 2,089 8/19/2024
2.1.1 4,095 8/5/2024
2.0.15 116 8/5/2024
2.0.14 95 8/3/2024
2.0.13 1,663 7/29/2024
2.0.12 98 7/28/2024
2.0.11 108 7/28/2024
2.0.10 3,636 7/12/2024
2.0.9 93 7/12/2024
2.0.8 125 7/12/2024
2.0.7 1,488 7/10/2024
2.0.6 3,073 6/25/2024
2.0.5 99 6/25/2024
2.0.4 566 6/24/2024
2.0.3 100 6/24/2024
2.0.2 139 6/24/2024
2.0.1 3,653 6/5/2024
1.1.13 175 6/5/2024
1.1.12 395 6/4/2024
1.1.11 288 6/2/2024
1.1.10 899 5/31/2024
1.1.9 6,592 5/15/2024
1.1.8 1,355 5/10/2024
1.1.7 113 5/10/2024
1.1.5 107 5/10/2024
1.1.4 159 5/10/2024
1.1.3 107 5/10/2024
1.1.2 110 5/10/2024
1.1.1 3,030 3/27/2024
1.1.0 1,784 1/8/2024
1.0.4 289 12/27/2023
1.0.3 332 11/30/2023
1.0.2 303 11/5/2023
1.0.1 185 10/16/2023
1.0.0 1,419 10/16/2023