AntSK是什么?
AntSK是一个基于最新的.NET8技能栈以及AntBlazor和Semantic Kernel开拓的开源项目,为开拓者供应了构建AI知识库和智能体的强大工具。项目源码开放在GitHub平台,让每位对AI和.NET感兴趣的开拓者都能参与进来,探索智能体的无限可能。
https://github.com/xuzeyu91/AntSK
AntSK:打造你确当地AI知识库——离线运行详细教程
基于AntSK与LLamaSharp打造私人定制的离线AI知识库
如何用1分钟将AI智能运用与AI知识库快速融入您的业务系统?
AntSK:打造.Net全能AI智能知识库,共启智能化管理新时期!
AntSK的联网功能
在AntSK的智能体中嵌入网络操作,听起来是不是觉得非常“黑科技”?别急,这并没有我们想象的那么繁芜。Semantic Kernel作为AntSK中的一大核心SDK,已经为我们供应了便捷的自动调用功能,让联网操作变得触手可及。
配置API通道
首先,我们先来配置通向外界的API通道。这一步相较于编码来说大略得多,仅须要布局一个配置API的页面。在这个页面中,我们可以设定要调用的详细接口信息,比如要求头、要求办法、参数等。
然后同时,我们也须要在运用中选择对应的API插件
智能体如何自动调用API
在AntSK中,运用的配置完成,你是否期待智能体能自若地调用API呢?正是如此,通过下面的代码配置,我们的智能体可以在谈天时动态地注入API插件,并且根据不同的场景去调用指定的API接口,比如景象查询:
OpenAIPromptExecutionSettings settings = new() { ToolCallBehavior = ToolCallBehavior.AutoInvokeKernelFunctions };
动态注入API插件
我们还须要编写一些代码来让智能体在实际谈天过程中注入我们预设的API插件。以下是示例代码,详细地展现了如何按照不同的方法类型(GET或POST),创建函数并将其注入到Semantic Kernel插件中:
public void ImportFunctionsByApp(Apps app, Kernel _kernel)
{
//开启自动插件调用
var apiIdList = app.ApiFunctionList.Split(\"大众,\"大众);
var apiList = _apis_Repositories.GetList(p => apiIdList.Contains(p.Id));
List<KernelFunction> functions = new List<KernelFunction>();
var plugin = _kernel.Plugins.FirstOrDefault(p => p.Name == \"大众ApiFunctions\公众);
{
foreach (var api in apiList)
{
switch (api.Method)
{
case HttpMethodType.Get:
functions.Add(_kernel.CreateFunctionFromMethod((string msg) =>
{
try
{
Console.WriteLine(msg);
RestClient client = new RestClient();
RestRequest request = new RestRequest(api.Url, Method.Get);
foreach (var header in api.Header.Split(\"大众\n\"大众))
{
var headerArray = header.Split(\"大众:\公众);
if (headerArray.Length == 2)
{
request.AddHeader(headerArray[0], headerArray[1]);
}
}
//这里该当还要处理一次参数提取,等后面再迭代
foreach (var query in api.Query.Split(\公众\n\公众))
{
var queryArray = query.Split(\"大众=\"大众);
if (queryArray.Length == 2)
{
request.AddQueryParameter(queryArray[0], queryArray[1]);
}
}
var result = client.Execute(request);
return result.Content;
}
catch (System.Exception ex)
{
return \"大众调用失落败:\"大众 + ex.Message;
}
}, api.Name, $\"大众{api.Describe}\公众));
break;
case HttpMethodType.Post:
functions.Add(_kernel.CreateFunctionFromMethod((string msg) =>
{
try
{
Console.WriteLine(msg);
RestClient client = new RestClient();
RestRequest request = new RestRequest(api.Url, Method.Post);
foreach (var header in api.Header.Split(\"大众\n\公众))
{
var headerArray = header.Split(\"大众:\"大众);
if (headerArray.Length == 2)
{
request.AddHeader(headerArray[0], headerArray[1]);
}
}
//这里该当还要处理一次参数提取,等后面再迭代
request.AddJsonBody(api.JsonBody);
var result = client.Execute(request);
return result.Content;
}
catch (System.Exception ex)
{
return \"大众调用失落败:\"大众 + ex.Message;
}
}, api.Name, $\公众{api.Describe}\公众));
break;
}
}
_kernel.ImportPluginFromFunctions(\"大众ApiFunctions\"大众, functions);
}
}
实战演示
我们可以看到,已经可以在谈天过程中顺利的调用我们的景象查询API了,并返回给我们本日的景象如何,同理我们也可以通过配置联网搜索API让谈天机器人具备搜索实时信息的能力。
结语
将这样一种创新与强大的技能分享给大家,我感到无比自满。我希望你能在GitHub上给AntSK点上一个star,相信项目的潜力会让你感到愉快。如果你在利用过程中碰着任何问题,或者有新的构想想要贡献,都可以通过加入我们的【.Net/AI运用开拓互换群】来参与谈论。目前由于群人数已满,你可以先通过添加我的微信xuzeyu91,我将会约请你进入群聊。
这个项目不仅仅是技能的凑集,它更是一个开放的社区,一个共同发展的空间。如果你对人工智能、.Net开拓有激情亲切,那么AntSK无疑将是你展示才华、互换思想的绝佳平台。在未来的版本迭代中,我相信AntSK会变得更强大、更智能,能够办理加倍繁芜的问题,并在人类与打算机交互中发挥关键浸染。
正如新兴科技所展示的,未来并非迢遥,而是触手可及。AntSK正是这一理念的表示,它不仅仅为技能爱好者和专业人士供应了互换的舞台,更为全体社会打开了智能互动的新程度。它证明了,无论是在知识管理、繁芜决策支持还是日常生活赞助中,人工智能都能发挥其独占的力量。
赶紧参与进来吧,AI的未来等你来书写!