智能升级:AntSK教你如何让聊天机器人实现智能联网操作
随着人工智能技术的飞速发展,智能体已经逐步融入到我们的日常生活中。不过,要想让智能体不仅能聊天,还能接入网络实时获取信息,为我们提供更多便利,所需技术的复杂性不得不让人瞩目。今天,我将和各位分享如何在基于.NET开发的AI知识库/智能体项目AntSK中,利用Semantic Kernel实现智能体的联网功能,加入查询天气、发送邮件、调用外部API等“神技能”。
AntSK是什么?
AntSK是一个基于最新的.NET8技术栈以及AntBlazor和Semantic Kernel开发的开源项目,为开发者提供了构建AI知识库和智能体的强大工具。项目源码开放在GitHub平台,让每位对AI和.NET感兴趣的开发者都能参与进来,探索智能体的无限可能。
https://github.com/xuzeyu91/AntSK
AntSK的联网功能
在AntSK的智能体中嵌入网络操作,听起来是不是感觉非常“黑科技”?别急,这并没有我们想象的那么复杂。Semantic Kernel作为AntSK中的一大核心SDK,已经为我们提供了便捷的自动调用功能,让联网操作变得触手可及。
配置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的未来等你来书写!
智能升级:AntSK教你如何让聊天机器人实现智能联网操作的更多相关文章
- 构建一个简单的 Google Dialogflow 聊天机器人【上】
概述 本教程将向您展示如何构建一个简单的Dialogflow聊天机器人,引导您完成Dialogflow的最重要功能.您将学习如何: 创建Dialogflow帐户和第一个Dialogflow聊天机器人, ...
- AI中台——智能聊天机器人平台的架构与应用(分享实录)
内容来源:宜信技术学院第3期技术沙龙-线上直播|AI中台——智能聊天机器人平台 主讲人:宜信科技中心AI中台团队负责人王东 导读:随着“中台”战略的提出,目前宜信中台建设在思想理念及架构设计上都已经取 ...
- 一步一步教你将普通的wifi路由器变为智能广告路由器
一步一步教你将普通的wifi路由器变为智能广告路由器 相信大家对WiFi智能广告路由器已经不再陌生了,现在很多公共WiFi上网,都需要登录并且验证,这也就是WiFi广告路由器的最重要的功能.大致就是下 ...
- 学习笔记TF059:自然语言处理、智能聊天机器人
自然语言处理,语音处理.文本处理.语音识别(speech recognition),让计算机能够"听懂"人类语音,语音的文字信息"提取". 日本富国生命保险公司 ...
- 使用Botkit和Rasa NLU构建智能聊天机器人
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 我们每天都会听到关于有能力涉及旅游.社交.法律.支持.销售等领域的新型机器人推出的新闻.根据我最后一次查阅的数据,单单Facebook Me ...
- 深度学习项目——基于循环神经网络(RNN)的智能聊天机器人系统
基于循环神经网络(RNN)的智能聊天机器人系统 本设计研究智能聊天机器人技术,基于循环神经网络构建了一套智能聊天机器人系统,系统将由以下几个部分构成:制作问答聊天数据集.RNN神经网络搭建.seq2s ...
- 36氪首发 | 「myShape」完成千万级人民币 Pre-A轮融资,推出 AI 智能健身私教
无需任何可穿戴设备. 36氪获悉,myShape(原Shapejoy)已于近期完成千万级人民币的Pre-A轮融资,由天奇阿米巴领投,远洋集团.七熹资本以及老股东跟投.过去 myShape 曾获得元迅资 ...
- 软工实践团队项目-"智能聊天机器人"简介
"智能聊天机器人"项目 目前已确定的团队人员:张扬.俊彦.韫月.地秀.泽波.李翔.文婧.俞明.加伟(排名不分先后) 队伍已满,没有再招人的打算(#^.^#) 我们的想法 你有用过智 ...
- 【Python成长之路】从零学GUI -- 制作智能聊天机器人
[写在前面] 鹏哥:最近老惹小燕同学不开心,结果都没人陪我聊天了.哎,好无聊呀! 肥宅男:女朋友什么的最无聊了,还没我的图灵机器人好玩. 鹏哥:图灵?好巧,和我部门同名. [效果如下] [实现过程] ...
- 情人节用Python智能聊天机器人的实现|制作一个虚拟恋人
首先项目需要的包 import urllib.request import urllib.parse from tkinter import * import time PS:另外很多人在学习Pyth ...
随机推荐
- 【杂题,树】【Uoj】Uoj618 【JOISC2021】聚会 2
2023.7.3 Problem Link 给定一棵 \(n\) 个点的树,对于一个点集 \(S\),定义 \(f(u,S)\) 为 \(\min_u \sum_{v\in S} \mathrm{di ...
- 真·Android Zxing 扫码中文乱码解决
Zxing3.2.1 之前遇到过Android Zxing扫码乱码的问题,网上搜了下解决了下. 今天又遇到了问题. 依然会乱码. 研究总结如下: Zxing 可以在Hints中添加默认编码格式.这个编 ...
- Git - 关联远程仓库以及同时使用Lab和Hub
更新一下,感觉有更简单的方式 就比如你git config 的 全局的name和email是lab的 那就clone github上的项目然后设置局部的name和email就行了 ********** ...
- TienChin 活动管理-修改活动
后端 ChannelController.java @PreAuthorize("hasPermission('tienchin:channel:edit')") @GetMapp ...
- go中x/sync/semaphore解读
semaphore semaphore的作用 如何使用 分析下原理 Acquire TryAcquire Release 总结 参考 semaphore semaphore的作用 信号量是在并发编程中 ...
- 【云原生】为什么要虚拟化,为什么要容器,为什么要Docker,为什么要K8S?
前言 如标题中的问题所提到的虚拟化,容器,Docker和K8s那样,我们不妨这样问:这些技术到底适用于哪些场景,有没有别的技术可以替代?这些技术的优劣在哪里? 下面我将针对性地从以上几个问题的出发点, ...
- 【主流技术】实战之 Spring Boot 中集成微信支付(小程序)
前言 微信支付是企业级项目中经常使用到的功能,作为后端开发人员,完整地掌握该技术是十分有必要的. 以下是经过真实商业项目实践的集成步骤,包括注册流程.调用过程.代码demo(经过脱敏)等,希望我的分享 ...
- 推荐系统[四]:精排-详解排序算法LTR (Learning to Rank)_ poitwise, pairwise, listwise相关评价指标,超详细知识指南。
0.前言召回排序流程策略算法简介 推荐可分为以下四个流程,分别是召回.粗排.精排以及重排: 召回是源头,在某种意义上决定着整个推荐的天花板: 粗排是初筛,一般不会上复杂模型: 精排是整个推荐环节的重中 ...
- 深入读懂 Kafka集群
前言 概述 Kafka是一个多分区.多副本的分布式流处理平台,以高吞吐.可持久化.可水平扩展.支持流数据处理等多种特性被广泛使用. 应用场景 (1)缓冲削峰:有利于解决生产消息和消费消息的处理速度不一 ...
- CF1826D Running Miles
题目链接 题解 知识点:贪心,前缀和,枚举. 首先考虑一个贪心结论,选择区间端点一定是两个最大值,因此 \(i_1 = l,i_3 = r\) . 考虑变形式子 \((b_l + l) + b_{i_ ...