
Ollamasharp proporciona enlaces .NET para la API Ollama, simplificando las interacciones con Ollama tanto local como remotamente.
✅ Soporte de Microsoft.Extensions.ai y Microsoft Semantic Kernel
Ollamasharp envuelve cada punto final de la API de Ollama en métodos esperables que admiten plenamente la transmisión de respuesta.
La siguiente lista muestra algunos ejemplos de código simple.
ℹ Pruebe nuestra aplicación de demostración completa que se incluye en este repositorio
// 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 construyó una biblioteca de abstracción para optimizar el uso de diferentes proveedores de IA. Este es un concepto realmente interesante si planea crear aplicaciones que puedan usar diferentes proveedores, como ChatGPT, Claude y modelos locales con Ollama.
Le animo a que lea su contactos presentando Microsoft.Extensions.AI Preview - Bloques de construcción de IA unificados para .NET.
Ollamasharp es la primera implementación completa de su IChatClient e IEmbeddingGenerator que hace posible usar ollama como cualquier otro proveedor de chat.
Para hacer esto, simplemente use el OllamaApiClient como IChatClient en lugar 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
} Nota
IOllamaApiClient proporciona muchos métodos específicos de Ollama que IChatClient e IEmbeddingGenerator faltan. Debido a que estas son abstracciones, IChatClient e IEmbeddingGenerator nunca implementarán la especificación completa de la API Ollama. Sin embargo, OllamaApiClient implementa tres interfaces: el nativo IOllamaApiClient y Microsoft IChatClient e IEmbeddingGenerator<string, Embedding<float>> que le permite lanzarlo a cualquiera de estas dos interfaces que las necesite en cualquier momento.
El icono y el nombre fueron reutilizados del increíble proyecto Ollama.
Me gustaría agradecer a todos los contribuyentes que se toman el tiempo para mejorar Ollamasharp. Primero y principal Mili-Tan, que siempre mantiene a Ollamasharp sincronizado con la API Ollama. ❤