
Ollamasharp ให้การผูก. NET สำหรับ Ollama API ทำให้การโต้ตอบกับ Ollama ง่ายขึ้นทั้งในระดับท้องถิ่นและจากระยะไกล
✅รองรับ Microsoft.extensions.ai และ Microsoft Semantic Kernel
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 Preview - Unified AI Building Blocks สำหรับ. 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 ให้วิธีการเฉพาะของ Ollama หลายวิธีที่ IChatClient และ IEmbeddingGenerator Miss เนื่องจากสิ่งเหล่านี้เป็น abstractions, IChatClient และ IEmbeddingGenerator จะไม่ใช้ข้อกำหนด Ollama API เต็มรูปแบบ อย่างไรก็ตาม OllamaApiClient ใช้สามอินเตอร์เฟส: IOllamaApiClient และ Microsoft IChatClient และ IEmbeddingGenerator<string, Embedding<float>> ซึ่งช่วยให้คุณสามารถส่งไปยังอินเทอร์เฟซทั้งสองนี้ตามที่คุณต้องการได้ตลอดเวลา
ไอคอนและชื่อถูกนำกลับมาใช้ใหม่จากโครงการ Ollama ที่น่าทึ่ง
ฉันขอขอบคุณผู้สนับสนุนทุกคนที่ใช้เวลาในการปรับปรุง Ollamasharp Mili-Tan คนแรกและสำคัญที่สุดซึ่งมักจะทำให้ Ollamasharp ซิงค์กับ Ollama API