
Ollamasharp는 Ollama API에 대한 .NET 바인딩을 제공하여 Ollama와의 상호 작용을 로컬 및 원격으로 단순화합니다.
microsoft.extensions.ai 및 Microsoft 시맨틱 커널 지원
Ollamasharp는 각 Ollama API 엔드 포인트를 응답 스트리밍을 완벽하게 지원하는 차단 가능한 방법으로 감습니다.
다음 목록은 몇 가지 간단한 코드 예제를 보여줍니다.
ℹ 이 저장소에 포함 된 전체 주요 데모 애플리케이션을 시도해보십시오.
// 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 제공 업체의 사용을 간소화하기 위해 추상화 라이브러리를 구축했습니다. 이것은 Chatgpt, Claude 및 Ollama와 같은 다른 제공 업체를 사용할 수있는 앱을 구축하려는 경우 정말 흥미로운 개념입니다.
Microsoft.extensions.ai 미리보기 - .NET 용 Unified AI 빌딩 블록을 소개하는 회계를 읽어 보시기 바랍니다.
Ollamasharp는 다른 모든 채팅 제공 업체와 마찬가지로 Ollama를 사용할 수 있도록 IChatClient 및 IEmbeddingGenerator 의 최초의 전체 구현입니다.
이렇게하려면 OllamaApiClient IOllamaApiClient 대신 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 놓친 많은 Ollama 특정 방법을 제공합니다. 이들은 추상화이기 때문에, IChatClient 및 IEmbeddingGenerator 전체 Ollama API 사양을 구현하지 않습니다. 그러나 OllamaApiClient 세 가지 인터페이스를 구현합니다. 네이티브 IOllamaApiClient 및 Microsoft IChatClient 및 IEmbeddingGenerator<string, Embedding<float>> 시켜 언제든지 필요한 경우이 두 인터페이스에 캐스트 할 수 있습니다.
아이콘과 이름은 놀라운 Ollama 프로젝트에서 재사용되었습니다.
Ollamasharp를 개선하기 위해 시간을내는 모든 기고자들에게 감사하고 싶습니다. Ollamasharp가 Ollama API와 동기화하는 첫 번째 Mili-Tan. ❤