深入解析:AntSK 0.1.7版本的技术革新与多模型管理策略
在信息技术快速迭代的当下,.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类的创建为例,这个类需要继承自ITextGenerationService和IAIService接口。在这个类中,我们需要实现两个关键的方法:GetTextContentsAsync和GetStreamingTextContentsAsync。通过这些实现,我们便完成了一个模型的连接器。
但这只是第一步,下一步我们需要在创建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应用开发交流群,可以关注我的公众号<许泽宇的技术分享>,发送进群

深入解析:AntSK 0.1.7版本的技术革新与多模型管理策略的更多相关文章
- 微信小程序0.11.122100版本新功能解析
微信小程序0.11.122100版本新功能解析 新版本就不再吐槽了,整的自己跟个愤青似的.人老了,喷不动了,把机会留给年轻人吧.下午随着新版本开放,微信居然破天荒的开放了开发者论坛.我很是担心官方 ...
- Java容器--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本
Java容器--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本 前言 序言 再高大上的框架,也需要扎实的基础才能玩转,高频面试问题更是基础中的高频实战要点. 适合阅读人群 J ...
- [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器 --(1)
[源码解析] NVIDIA HugeCTR,GPU版本参数服务器 --(1) 目录 [源码解析] NVIDIA HugeCTR,GPU版本参数服务器 --(1) 0x00 摘要 0x01 背景 1.1 ...
- [源码解析] NVIDIA HugeCTR,GPU版本参数服务器--- (2)
[源码解析] NVIDIA HugeCTR,GPU版本参数服务器--- (2) 目录 [源码解析] NVIDIA HugeCTR,GPU版本参数服务器--- (2) 0x00 摘要 0x01 总体流程 ...
- [源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3)
[源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3) 目录 [源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3) 0x00 摘要 0x01 回顾 0x0 ...
- [源码解析] NVIDIA HugeCTR,GPU版本参数服务器--- (4)
[源码解析] NVIDIA HugeCTR,GPU版本参数服务器--- (4) 目录 [源码解析] NVIDIA HugeCTR,GPU版本参数服务器--- (4) 0x00 摘要 0x01 总体流程 ...
- [源码解析] NVIDIA HugeCTR,GPU版本参数服务器--- (5) 嵌入式hash表
[源码解析] NVIDIA HugeCTR,GPU版本参数服务器--- (5) 嵌入式hash表 目录 [源码解析] NVIDIA HugeCTR,GPU版本参数服务器--- (5) 嵌入式hash表 ...
- [源码解析] NVIDIA HugeCTR,GPU版本参数服务器--- (6) --- Distributed hash表
[源码解析] NVIDIA HugeCTR,GPU版本参数服务器--- (6) --- Distributed hash表 目录 [源码解析] NVIDIA HugeCTR,GPU版本参数服务器--- ...
- [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器---(7) ---Distributed Hash之前向传播
[源码解析] NVIDIA HugeCTR,GPU 版本参数服务器---(7) ---Distributed Hash之前向传播 目录 [源码解析] NVIDIA HugeCTR,GPU 版本参数服务 ...
- [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器---(8) ---Distributed Hash之后向传播
[源码解析] NVIDIA HugeCTR,GPU 版本参数服务器---(8) ---Distributed Hash之后向传播 目录 [源码解析] NVIDIA HugeCTR,GPU 版本参数服务 ...
随机推荐
- 设计模式学习-使用go实现中介者模式
中介模式 定义 优点 缺点 适用范围 代码实现 参考 中介模式 定义 中介模式(Mediator):用一个中介对象来封装一系列的对象交互.中介者使个各对象不需要显示的相互引用,从而使其藕合松散,而且可 ...
- win10 局域网共享文件创建方法
win10 局域网共享文件创建方法 1.先在桌面文件夹,我命名为"xxxx",然后将文件放在该文件里. 2.右击共享文件夹,找到属性选项,点击"属性".再点击& ...
- Hello,World! 6.28
代码 public class Hello{ public static void main(String[] args){ System.out.print("Hello,World!&q ...
- 一句话总结Docker与K8S的关系
一句话总结:Docker只是容器的一种,它面向的是单体,K8S可以管理多种容器,它面向的是集群,Docker可以作为一种容器方案被K8S管理.下文继续具体介绍. 1.容器的核心概念 介绍这几个核心概念 ...
- 【题解】U388218 数数
数数 题目描述 给定 n 个不超过 1.5×10⁹ 的自然数.求这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果. 输入格式 输入的第 1 行是整数 n ,表示自然数的个数. 第 2 ...
- Exadata健康检查工具EXAchk
本文根据MOS文章:Oracle Exadata Database Machine EXAchk (Doc ID 1070954.1)整理关键步骤. 注:通常都会要求使用当前最新可用的EXAchk版本 ...
- 解决npm 下载速度慢的问题
更换源,这个是最直接方便 有保障的方法了,不要去安装cnpm,因为你无法确定 他是否做了后门.!! 1. 如果不想安装cnpm 又想使用淘宝服务器来下载扩展插件:(这种方法 每次都得带 废弃) npm ...
- Pandas字符串离散化处理
字符串离散化处理 import pandas as pd import numpy as np from matplotlib import pyplot as plt # 读取csv文件 file_ ...
- Java并发编程-CompletableFuture(上)
大家好,我是小高先生,这篇文章我将和大家一起学习Java并发编程中很重要的一个类-CompletableFuture. 在Java的并发编程领域,Future接口一直扮演着关键的角色,它定义了一组与异 ...
- Mysql 8.0 Navicat连接Mysql报错Authentication plugin ‘caching_sha2_password‘ cannot be loaded
1.终端登陆MySQL$ mysql -u root -ppassword #登入mysql 2.修改账户密码加密规则并更新用户密码ALTER USER 'root'@'localhost' IDEN ...