
Ollamasharp fornece ligações .NET para a API Ollama, simplificando as interações com Ollama, local e remotamente.
✅ Suporte a Microsoft.Extensions.ai e Kernel Semântico da Microsoft
O Ollamasharp envolve cada endpoint da API Ollama em métodos aguardáveis que suportam totalmente o streaming de resposta.
A lista a seguir mostra alguns exemplos de código simples.
ℹ Experimente nosso aplicativo de demonstração completo que está incluído neste repositório
// 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 A Microsoft construiu uma biblioteca de abstração para otimizar o uso de diferentes fornecedores de IA. Este é um conceito realmente interessante se você planeja criar aplicativos que possam usar fornecedores diferentes, como chatgpt, Claude e modelos locais com Ollama.
Encorajo você a ler os acréscimos da apresentação de Microsoft.Extensions.Ai Preview - Unified AI Building Blocks for .Net.
Ollamasharp é a primeira implementação completa de seu IChatClient e IEmbeddingGenerator que possibilita o uso da Ollama como qualquer outro provedor de bate -papo.
Para fazer isso, basta usar o OllamaApiClient como IChatClient em vez de 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
} Observação
IOllamaApiClient fornece muitos métodos específicos de Ollama que IChatClient e IEmbeddingGenerator Miss. Como essas são abstrações, IChatClient e IEmbeddingGenerator nunca implementarão a especificação completa da API Ollama. No entanto, OllamaApiClient implementa três interfaces: o IOllamaApiClient nativo e o Microsoft IChatClient e IEmbeddingGenerator<string, Embedding<float>> o que permite que você o lançasse em qualquer uma dessas duas interfaces que você precisa a qualquer momento.
O ícone e o nome foram reutilizados do incrível projeto Ollama.
Gostaria de agradecer a todos os colaboradores que dedicam tempo para melhorar o Ollamasharp. Em primeiro lugar, Mili-Tan, que sempre mantém Ollamasharp em sincronia com a API Ollama. ❤