【干货】怎么DIY一个聊天机器人?一共分几步?

发布时间:2022-03-16 阅读量:2285 来源: 我爱方案网整理 发布人: Aurora

今年8月,雷锋网将在深圳举办一场盛况空前有全球影响力的人工智能与机器人创新大会。届时雷锋网将发布“人工智能&机器人Top25创新企业榜”榜单。

 

目前,我们正在拜访人工智能、机器人领域的相关公司,从中筛选最终入选榜单的公司名单。

 

1647419524566675.png


机器人——这个词是不是每天都会出现在你的科技新闻推送中?从Facebook的机器人开发平台、到微软的机器人框架、到Taco Bell的Slack机器人。新闻也没法免疫。


机器人的诱惑力在于,新闻消费者可以以聊天一样的方式与其互动。但是,要自己打造机器人——这对于新闻媒体机构(以及所有非科技公司)来说,感觉都太惊悚了,不知道从哪儿入手。


此时你需要Wit.ai。它是一个很好的工具,可以帮你快速打造可以与人聊天的APP。那么问题来了,用Wit.ai自己DIY一个聊天机器人,一共分几步?


1、项目设立


首先,你需要设立机器人的基本架构。从我的经验来看,要利用Node.js和Express设立一个简单可用的Messenger机器人,可以去查看Facebook的“开始”(GettingStarted)文档,非常有用。可以看到Github教程,例子中有一个完全可用的代码。如果你想用Python来打造自己的机器人,可以使用这个Flask例子。还有很多非常有料的Slack机器人教程,例如Scotch.io上面,点击链接看看如何用Node.js打造Slack机器人。是不是有非常多的干货?


这样,你就有了设立机器人的代码,你只要好好利用,让Facebook或者Slack可以与之互动就行。用Heroke来利用代码是一个比较方便的办法,传送门在此。


2、在Wit.ai上启动APP


现在,我们就该进入Wit.ai了。首先创建一个账号,然后创建一个新申请。

Wit.ai上为你的项目创建一个新申请,可以选择语言、是否公开等选项。
  

申请后,你会进入你APP的“故事”页面。“故事”可以呈现你与机器人之间会进行什么类型的对话。举个例子,我们可以设想我们要打造一个名叫“首都机器人”的APP,机器人会告诉你所有国家的首都是什么。我们的第一个故事可能大概会是这样:


作为“故事”页面,这里展示了用户可以对机器人说什么,例如:“尼日利亚的首都是什么?”
  

然后,我们告诉Wit.ai机器人该如何回答。在这个例子中,我们需要“首都”机器人回复用户需要的城市名称。

  

我们的第一步,是抓取地点实体。我们可以在句子中将位置标亮,然后点击“增加一个新按钮”。我们可以注意到,Wit已经有很多预先布置的实体供用户使用,从中我们可以使用wit/location(位置)实体。
  

我们可以点击右侧的“机器人说…”按钮,来为机器人的回复建立结构。这里,我们可以写明我们希望机器人说什么。因为我们的机器人只要回复位置就好了,不如让它说“你想知道尼日利亚的首都”。


通过标亮“尼日利亚”,我们可以将其标记为一个wit/location实体。“故事”页面呈现了用户可能如何与我们的机器人互动,这让Wit.ai知道它该在文章中寻找例如“尼日利亚”的位置实体。

  

只要点击“~”,我们可以在Wit.ai的网站上直接与Wit.ai服务聊天。虽然我们只写了尼日利亚的例子,但是Wit.ai可以将我们的例子进行抽象总结,并应用到其他用户可能输入的国家名字上。


1647419532473655.png


虽然我们只用尼日利亚的例子训练了机器人,Wit.ai可以抽象总结出我们的概念,然后我们可以将故事覆盖读者提出的所有国家名字和问题结构。

 

3、创造用户定义的实体
  

在“首都”机器人的例子中,我们可以用一个预先定义的Wit.ai实体来抽取用户信息中的位置信息。Wit.ai自带的预定义实体列表已经挺强大了,不过我们还是可以自己定义。
  

我们需要一个新的实体。就叫做“情感”好了。要设立一个新的实体,我们可以跳转去“理解(Understanding)”标签页,在“测试新表达”区域输入一个新的训练例子。

 

使用Wit.ai的“理解”标签页我们可以创建定制实体,然后训练Wit.ai在用户短信中发现相应实体。
  

我们可以继续做出更多的情感——开心、激动、忧郁、着迷等等,每增加一种情感后,点击“生效”(Validate)按键。最后,你会看到Wit.ai会开始在你输入的表达案例中自动标记出情感。

  

需要留意的是,Wit.ai有一些具体的“搜索策略”用于帮助训练实体。为了我们演示起见,我们会想要“自由文本”(freetext)和“关键字”(keywords)集合,但是其他更加复杂的表达可能需要选择“特征”(trait)。你可以,在Wit.ai的文档中了解更多关于其实体搜索策略。
  

现在,我们可以增加一个“故事”,使用我们的情感实体。可以看到,Wit.ai现在可以根据用户的输入信息中回复情感了。


有一个“故事”和一个定制情感实体,Wit.ai已经可以概括并选出用户发送信息中的情感。
  

4、保持聊天语境
  

你可能已经注意到了,每一个“故事”页面的最右边都有一个“融合”(merge)功能。这个功能可以为整个对话语境带来更多数据。这让机器人可以记住用户早前信息中出现过的实体。用我们的“情感”机器人作为例子。

  

只要直接将实体名字加入融合功能,就能为语境增加数据。

  

5、整合Wit.ai与机器人服务器
  

到这一步,我们通过连接中的教程,应该已经可以打造一个基础的机器人了。但是,我们还得知道如何用Wit.ai来为机器人设定一些基本的回复模式。我们如何整合呢?
  

因此,最后的一步就是将Wit.ai整合进入你的机器人服务器的代码中。Wit.ai有记录完善的开源数据库和SDK(软件开发工具包),可用于iOS、Ruby、Node.js和Python,你可以进入Wit.aiGithub页面获得。

  

机器人


恩,要做一个可以聊天的机器人,就是这五步。第六步,就是赶紧动手造一个钢铁侠同款的Jarvis!

 


220x90
相关资讯
晶振启动时间影响因素解析与优化方向

​晶振的启动时间,通常是指其通电后进入稳定振荡状态所需的时间。若启动时间过长,可从以下五个常见的影响因素方面进行优化。

解析RTC实时时钟芯片的工作原理

RTC(Real-Time Clock,实时时钟)芯片作为一种独立的专用计时器件,其核心功能包括提供稳定的日历时钟、在主电源断电后持续运行、支持定时中断以及输出高精度时间戳,为各类嵌入式系统提供可靠的时间基准。

无源晶振与有源晶振在MCU应用中的关联逻辑与选型指南

时钟系统是保障微控制器(MCU)稳定运行的核心,而晶振作为关键时钟源,主要分为无源晶振与有源晶振两种类型。下面将围绕工作原理、硬件接口、电气特性及其在MCU中的适配场景等维度,系统解析这两类晶振与MCU之间的关联逻辑。

VC-OCXO压控恒温晶振管脚功能定义解析

恒温晶振(Oven Controlled Crystal Oscillator,简称OCXO)是高精度频率源的核心组件,选用切型更优(如SC切、AT切高精度型)、封装应力极小的高Q值晶片,通过恒温槽的超精密控温,让晶振始终工作在零温度系数点,几乎消除温度引发的频率漂移。

晶振倍频干扰解决方案:从PCB布局优化到源头抑制与电路整改

晶振倍频干扰(即高次谐波辐射)是电磁兼容(EMC)设计中非常棘手的问题,通常表现为基频25MHz的5次、7次谐波(如125MHz、175MHz等)处辐射超标。该问题源于晶振输出方波信号包含丰富的高次谐波成分,若PCB布局不当,晶振及其走线极易构成高效辐射天线,导致电磁干扰增强。