深入解析:AntSK 0.1.7版本的技術革新與多模型管理策略

许泽宇發表於2024-03-12

在資訊科技快速迭代的當下,.Net生態中的AntSK專案憑藉其前沿的AI知識庫和智慧體技術,已經吸引了廣大開發者的關注和參與。今天,我要給大家介紹的主角,AntSK 0.1.7版本,無疑將是這個開源專案中的一次重大進步——多模型管理功能的引入,為使用者帶來了更強大、更靈活的工具。

AntSK簡介

在我們深入探討0.1.7版本的亮點之前,讓我們先進行一個簡單的複習:AntSK是什麼?

AntSK是一個基於.Net平臺和AntDesign Blazor框架開發的AI智慧體與知識庫專案。它依託Semantic Kernel的技術支援,旨在為開發者們提供一個強大、易於使用、可快速開發的AI智慧體環境。透過這個專案,開發者可以更加高效地構建和管理智慧對話系統,豐富應用程式的互動能力。

https://github.com/xuzeyu91/AntSK

多模型管理功能的新增

隨著機器學習和人工智慧的不斷進步,AI模型多樣化已成為一個不可逆轉的趨勢。為了適應這一趨勢,AntSK 0.1.7版本充分利用了Semantic Kernel的強大功能,在系統中加入了模型配置功能。這意味著開發者可以根據需求,輕鬆配置和管理使用不同的模型,例如OpenAI和Azure OpenAI,或是LLamaSharp支援的本地GGUF模型等。這樣的設計,不僅增強了AntSK的靈活性和適應性,也使得開發人員可以在不同應用中測試和比較不同模型的效果。

如何實現多模型管理?

有了新功能的介紹後,我們再來看看具體的實現方法,正是因為有了技術大咖James Yeung的程式碼貢獻,我們才能如此順利地實現這一創新。

在Semantic Kernel中,提供了一個

Services.AddKeyedSingleton<ITextGenerationService>

  

的方法,這是我們實現不同模型連線的關鍵。

我們以TextCompletion類的建立為例,這個類需要繼承自ITextGenerationServiceIAIService介面。在這個類中,我們需要實現兩個關鍵的方法:GetTextContentsAsyncGetStreamingTextContentsAsync。透過這些實現,我們便完成了一個模型的聯結器。

但這只是第一步,下一步我們需要在建立Semantic Kernel例項時,根據不同模型的型別載入對應的聯結器。這一過程透過簡單的switch-case實現:

var builder = Kernel.CreateBuilder();
 switch (chatModel.AIType)
 {
     case Model.Enum.AIType.OpenAI:
         builder.AddOpenAIChatCompletion(
            modelId: chatModel.ModelName,
            apiKey: chatModel.ModelKey,
            httpClient: chatHttpClient);
         break;
     case Model.Enum.AIType.AzureOpenAI:
         builder.AddAzureOpenAIChatCompletion(
             deploymentName: chatModel.ModelName,
             apiKey: chatModel.ModelKey,
             endpoint: chatModel.EndPoint
             );
         break;
     case Model.Enum.AIType.LLamaSharp:
         var (weights, parameters) = LLamaConfig.GetLLamaConfig(chatModel.ModelName);
         var ex = new StatelessExecutor(weights, parameters);
         builder.Services.AddKeyedSingleton<ITextGenerationService>("local-llama", new LLamaSharpTextCompletion(ex));
         break;
     case Model.Enum.AIType.SparkDesk:
         var options = new SparkDeskOptions { AppId = chatModel.EndPoint, ApiSecret = chatModel.ModelKey, ApiKey = chatModel.ModelName, ModelVersion= Sdcb.SparkDesk.ModelVersion.V3_5 };
         builder.Services.AddKeyedSingleton<ITextGenerationService>("spark-desk", new SparkDeskTextCompletion(options, app.Id));
         break;
 }

  

未來展望

透過這些簡潔而強大的程式碼實現,AntSK的使用者現在可以輕鬆切換和管理不同的AI模型了。當然,AI技術日新月異,AntSK的開發者們也必將不斷迭代升級,以適應這一變化。我們可以期待,在不久的將來,AntSK能夠支援更多的AI模型,甚至可以實現AI模型的實時學習與適配。

縱觀如今的技術發展,AntSK成為其中的亮點,不僅證明了.Net社群的活力與創新能力,更預示著來自開源世界的明日之星,必將為我們的生活和工作帶來更多的靈感和便利。

作為一名技術博主,我對AntSK專案的未來充滿信心和期待。而我下一篇文章,可能就是介紹如何將AntSK的這一創新功能應用到一些具體的業務場景中。請期待並關注我的公眾號,我將為你帶來最前沿的技術動態和深入的技術解析。

結語

透過今天的分享,我希望你能對AntSK的最新版本有了更加深刻的理解,也希望可以激發起你的興趣,一起參與到這個充滿潛力的專案中來。記住,無論你是AI領域的專業人員,還是對人工智慧充滿好奇的初學者,AntSK專案都歡迎你的加入,和我們一起推動科技的進步。

記住,技術是為了解決問題而存在的。當你擁有了AntSK這樣的工具時,你的技術夢想,也許就要成為現實了。

同時也歡迎大家加入我們的 .Net/AI應用開發交流群,可以關注我的公眾號<許澤宇的技術分享>,傳送進群

相關文章