
Ollamasharp liefert .NET -Bindungen für die Ollama -API und vereinfacht die Interaktionen mit Ollama sowohl lokal als auch aus der Ferne.
✅ Unterstützung von Microsoft.Extensions.ai und Microsoft Semantic Kernel
Ollamasharp wickelt jeden Ollama -API -Endpunkt in erwartbaren Methoden, die das Reaktions -Streaming vollständig unterstützen.
Die folgende Liste zeigt einige einfache Codebeispiele.
ℹ Probieren Sie unsere vollständige Demo -Anwendung aus, die in diesem Repository enthalten ist
// 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 " ; var models = await ollama . ListLocalModelsAsync ( ) ; await foreach ( var status in ollama . PullModelAsync ( " llama3.1:405b " ) )
Console . WriteLine ( $" { status . Percent } % { status . Status } " ) ; await foreach ( var stream in ollama . GenerateAsync ( " How are you today? " ) )
Console . Write ( stream . Response ) ; 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 Microsoft erstellte eine Abstraktionsbibliothek, um die Verwendung verschiedener KI -Anbieter zu optimieren. Dies ist ein wirklich interessantes Konzept, wenn Sie Apps erstellen möchten, die verschiedene Anbieter wie Chatgpt, Claude und lokale Modelle mit Ollama verwenden könnten.
Ich ermutige Sie, ihre Rechnungswahlung zu lesen, um Microsoft.EXTENSSSS.AI -Vorschau vorzustellen - Unified AI -Bausteine für .NET.
Ollamasharp ist die erste vollständige Implementierung ihres IChatClient und IEmbeddingGenerator , der es ermöglicht, Ollama genau wie jeder andere Chat -Anbieter zu verwenden.
Verwenden Sie dazu einfach das OllamaApiClient als IChatClient anstelle von IOllamaApiClient .
// install package Microsoft.Extensions.AI.Abstractions
private static IChatClient CreateChatClient ( Arguments arguments )
{
if ( arguments . Provider . Equals ( " ollama " , StringComparison . OrdinalIgnoreCase ) )
return new OllamaApiClient ( arguments . Uri , arguments . Model ) ;
else
return new OpenAIChatClient ( new OpenAI . OpenAIClient ( arguments . ApiKey ) , arguments . Model ) ; // ChatGPT or compatible
} Notiz
IOllamaApiClient liefert viele Ollama -spezifische Methoden, die IChatClient und IEmbeddingGenerator verpassen. Da es sich um Abstraktionen handelt, werden IChatClient und IEmbeddingGenerator niemals die vollständige Ollama -API -Spezifikation implementieren. OllamaApiClient implementiert jedoch drei Schnittstellen: die einheimischen IOllamaApiClient und Microsoft IChatClient und IEmbeddingGenerator<string, Embedding<float>> die es Ihnen ermöglicht, es an diese beiden Schnittstellen zu werfen, so wie Sie sie benötigen.
Die Ikone und der Name wurden aus dem Amazing Ollama -Projekt wiederverwendet.
Ich möchte mich bei allen Mitwirkenden bedanken, die sich die Zeit nehmen, Ollamasharp zu verbessern. In erster Linie Mili-Tan, der Ollamasharp immer synchron mit der Ollama-API hält. ❤