
Ollamasharpは、Ollama APIに.NETバインディングを提供し、局所的およびリモートでオラマとの相互作用を簡素化します。
microsoft.extensions.aiおよびMicrosoftセマンティックカーネルのサポート
Ollamasharpは、各Ollama APIエンドポイントを、応答ストリーミングを完全にサポートするお気に入りの方法でラップします。
次のリストには、いくつかの簡単なコード例が示されています。
opsionこのリポジトリに含まれる完全な特集デモアプリケーションを試してください
// 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は、さまざまなAIプロバイダーの使用を合理化するための抽象化ライブラリを構築しました。 OllamaのChatGpt、Claude、Local Modelsなど、さまざまなプロバイダーを使用する可能性のあるアプリを作成する予定がある場合、これは非常に興味深い概念です。
Microsoft.extensions.aiプレビューを紹介する概念を読むことをお勧めします。
Ollamasharpは、他のすべてのチャットプロバイダーと同じようにOllamaを使用することを可能にするIChatClientとIEmbeddingGeneratorの最初の完全な実装です。
これを行うには、 IOllamaApiClientの代わりにOllamaApiClientをIChatClientとして使用するだけです。
// 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 Missを使用する多くのオラマ固有の方法を提供します。これらは抽象的であるため、 IChatClientとIEmbeddingGenerator完全なOllama API仕様を実装することはありません。ただし、 OllamaApiClient 3つのインターフェイスを実装します。ネイティブのIOllamaApiClientおよびMicrosoft IChatClientおよびIEmbeddingGenerator<string, Embedding<float>>これにより、これら2つのインターフェイスのいずれかにキャストできます。
アイコンと名前は、驚くべきオラマプロジェクトから再利用されました。
Ollamasharpを改善するために時間をかけるすべての貢献者に感謝したいと思います。 OllamaPiと常にOllama APIと同期しているままになっているMili-Tanは何よりもまずです。 ❤