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


            在信息技术快速迭代的当下,.Net生态中的AntSK项目凭借其前沿的AI知识库和智能体技术,已经吸引了广大开发者的关注和参与。今天,我要给大家介绍的主角,AntSK 0.1.7版本,无疑将是这个开源项目中的一次重大进步——多模型管理功能的引入,为使用者带来了更强大、更灵活的工具。

    AntSK简介

            在我们深入探讨0.1.7版本的亮点之前,让我们先进行一个简单的复习:AntSK是什么?

            AntSK是一个基于.Net平台和AntDesign Blazor框架开发的AI智能体与知识库项目。它依托Semantic Kernel的技术支持,旨在为开发者们提供一个强大、易于使用、可快速开发的AI智能体环境。通过这个项目,开发者可以更加高效地构建和管理智能对话系统,丰富应用程序的交互能力。

    1
    https://github.com/xuzeyu91/AntSK

    多模型管理功能的新增

            随着机器学习和人工智能的不断进步,AI模型多样化已成为一个不可逆转的趋势。为了适应这一趋势,AntSK 0.1.7版本充分利用了Semantic Kernel的强大功能,在系统中加入了模型配置功能。这意味着开发者可以根据需求,轻松配置和管理使用不同的模型,例如OpenAI和Azure OpenAI,或是LLamaSharp支持的本地GGUF模型等。这样的设计,不仅增强了AntSK的灵活性和适应性,也使得开发人员可以在不同应用中测试和比较不同模型的效果。

     

    如何实现多模型管理?

            有了新功能的介绍后,我们再来看看具体的实现方法,正是因为有了技术大咖James Yeung的代码贡献,我们才能如此顺利地实现这一创新。

            在Semantic Kernel中,提供了一个

     

    1
    Services.AddKeyedSingleton

      

    的方法,这是我们实现不同模型连接的关键。

    我们以TextCompletion类的创建为例,这个类需要继承自ITextGenerationServiceIAIService接口。在这个类中,我们需要实现两个关键的方法:GetTextContentsAsyncGetStreamingTextContentsAsync。通过这些实现,我们便完成了一个模型的连接器。

    但这只是第一步,下一步我们需要在创建Semantic Kernel实例时,根据不同模型的类型加载对应的连接器。这一过程通过简单的switch-case实现:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    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("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("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应用开发交流群,可以关注我的公众号<许泽宇的技术分享>,发送进群

     

  • 相关阅读:
    数据库主键设计
    Vue2的12种组件通信
    语言基础篇16——Python中的函数式编程
    使用Cisco进行模拟配置OSPF路由协议
    项目经理的软技能实践分享︱京东科技研发项目经理王玥
    My shell
    Mathematica求解方程——Solve、Reduce、NSolve等函数
    C语言第五章第1-2节用while语句实现循环学习导案
    买卖股票的最佳时机含冷冻期
    Spring之bean对象
  • 原文地址:https://www.cnblogs.com/xuzeyu/p/18068091