
Ollamasharp fournit des liaisons .NET pour l'API Olllama, simplifiant les interactions avec Olllama à la fois localement et à distance.
✅ Prise en charge du noyau Microsoft.Extensions.ai et Microsoft Semantic
OLLAMASHARP enveloppe chaque point de terminaison de l'API Ollama dans des méthodes attendables qui soutiennent pleinement le streaming de réponse.
La liste suivante montre quelques exemples de code simples.
ℹ Essayez notre application de démonstration complète qui est incluse dans ce référentiel
// 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 a construit une bibliothèque d'abstraction pour rationaliser l'utilisation de différents fournisseurs d'IA. C'est un concept vraiment intéressant si vous prévoyez de créer des applications qui pourraient utiliser différents fournisseurs, comme Chatgpt, Claude et des modèles locaux avec Olllama.
Je vous encourage à lire leur comptabilité en présentant Microsoft.Extensions.ai Aperçu - Blocs de construction unifiés AI pour .NET.
Ollamasharp est la première implémentation complète de leur IChatClient et IEmbeddingGenerator qui permet d'utiliser Olllama comme tous les autres fournisseurs de chat.
Pour ce faire, utilisez simplement l' OllamaApiClient comme IChatClient au lieu d' 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
} Note
IOllamaApiClient fournit de nombreuses méthodes spécifiques à l'ollama que IChatClient et IEmbeddingGenerator manquent. Parce que ce sont des abstractions, IChatClient et IEmbeddingGenerator ne mettra jamais en œuvre la spécification complète de l'API Olllama. Cependant, OllamaApiClient implémente trois interfaces: l' IOllamaApiClient natif et Microsoft IChatClient et IEmbeddingGenerator<string, Embedding<float>> qui vous permet de le lancer à l'une de ces deux interfaces comme vous en avez besoin à tout moment.
L'icône et le nom ont été réutilisés à partir de l'incroyable projet Olllama.
Je tiens à remercier tous les contributeurs qui prennent le temps d'améliorer Ollamasharp. D'abord et avant tout, Mili-Tan, qui maintient toujours Ollamasharp en synchronisation avec l'API Ollama. ❤