
Ollamasharp предоставляет привязки .NET для API Ollama, упрощая взаимодействие с Ollama как локально, так и удаленно.
✅ Поддержка Microsoft.extensions.ai и Microsoft Semantic ядра
Ollamasharp завершает каждую конечную точку API Ollama в ожидаемые методы, которые полностью поддерживают потоковую передачу ответов.
В следующем списке показаны несколько простых примеров кода.
ℹ Попробуйте наше полное демонстрационное приложение, которое включено в этот репозиторий
// 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 создала библиотеку абстракции, чтобы упростить использование различных поставщиков ИИ. Это действительно интересная концепция, если вы планируете создавать приложения, которые могут использовать разных поставщиков, таких как CHATGPT, Claude и Local Models с Ollama.
Я призываю вас прочитать их бухгалтерский состав, представляющий предварительный просмотр Microsoft.extensions.ai - объединенные строительные блоки искусственного интеллекта для .NET.
Ollamasharp - это первая полная реализация их IChatClient и IEmbeddingGenerator , которая позволяет использовать Ollama, как и любой другой поставщик чата.
Для этого просто используйте OllamaApiClient как IChatClient вместо 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
} Примечание
IOllamaApiClient предоставляет много методов, специфичных для олламы, которые пропускают IChatClient и IEmbeddingGenerator . Поскольку это абстракции, IChatClient и IEmbeddingGenerator никогда не будут реализовать полную спецификацию API Ollama. Тем не менее, OllamaApiClient реализует три интерфейса: нативные IOllamaApiClient и microsoft IChatClient и IEmbeddingGenerator<string, Embedding<float>> что позволяет вам поднять его в любой из этих двух интерфейсов, как вам нужно в любое время.
Значок и название были повторно использованы из удивительного проекта Ollama.
Я хотел бы поблагодарить всех участников, которые тратят время на улучшение Ollamasharp. Прежде всего, Мили-Тан, который всегда держит Олламашарп в синхронизации с API Ollama. ❤