2019独角兽企业重金招聘Python工程师标准>>>
聊天机器人 Chatbot 是人工智能领域最大的热点之一,也被看作是人工智能进入企业市场和变现的排头兵。随着自然语言理解技术成熟,可以 24 小时不间断工作,甚至还能以一抵十开启多任务运作模式的 Chatbot , 2017 年已经大量开始出现在企业的实际应用案例中。据国际研究顾问机构 Gartner 预估,2018 年全球将有超过 20 亿的人会经常用对话的方式,与 Chatbot 互动,到 2021 年超过 50% 的企业花在 ChatBot 的投资将会超过传统 App 。
对于刚接触 Chatbot 的开发者来说,如何找到切入点将对话服务搭建起来是最大的问题。读论文、看视频、找资料,往往容易让初学者摸不着头绪。最优的方法,其实还是找到一个当下切实可行又省时省力的解决方案。下面以 IBM Cloud 为例,演示如何简单快速地搭建智能对话 Chatbot 。
IBM Cloud 是一个一站式云计算平台,内置许多实用的 API 和工具,对于开发者而言,甚至可以完全不用写代码,只需几个命令,即可完成 Chatbot 的开发。
在实际开发过程中会发现,IBM Cloud 是一个很适合部署微服务的平台,因为平台上有很多现成的组件或服务提供开发者调用,接口的文档也很详细,部署很方便,一键式服务很 nice ,有 bug 还可以去控制台查看 log 。不过,由于要科学上网,使用过程中可能会有点卡卡的。
此外,IBM 的自然语言处理模块 Wastson Conversation 虽然对英语的支持算是很完美了,但目前对于中文的支持还在试验中,只能很原始的通过分词的方式来处理中文语言,或是调用第三方的结巴分词 API 。大概的关键开发流程是使用 Promise,开 child_process 调用 python 命令跑结巴分词拿结果,然后输出到网页。
如果过程中遇到 child_process 无法在父进程返回数据时候拿到子进程分词结果的输出的问题,可以用 nodejs 的 Promise 就可以解决父进程在子进程返回结果之前执行 return 输出。如果有中文字符编码的问题,可加 encoding: "utf8" 解决。
最后,我们来看一看部分国内一线开发者用户的客观真实反馈吧
Shabby-滔:
在这次项目中,再一次尝试使用IBM的自然语言处理模块-- Wastson Conversation ,然而很遗憾的是,这个模块对英语这个语言的支持算是很完善了,然而对于中文的支持,真的是试验中,不能用,这导致做不到像微软小冰这样的机器人一样智能,只能很原始的通过分词的方式来处理中文语言(第三方的实现-结巴分词)。(当然如果整个项目决定用英文作为主要语言,其实很容易就用上了 Wastson Conversation 这个服务,因为该服务有提供完善的对于英语的entity和intent提取功能)
我开始这个项目的时候,想到的是做一个空气质量(Aqi)查询的机器人,网上这些接口也是很丰富的(,加上ibm平台上能够做到可视化搭积木的对话流程设计,很轻松就能够调用第三方api并处理返回值,在平台部署和编码阶段遇到的挫折很少,原因大概是ibm bluemix平台已经挺强大了(P.S>网站需要爬梯子才能上...不过这对开发者来说不是难事)
最后总结一下,IBM Bluemix是一个很适合部署微服务的平台,因为平台上有很多现场的组件或服务提供开发者调用(怎样收费是另外一回事),接口的文档也很详细(当然不一定是中文)。
AFei-Fran:
开发过程中遇到了很多问题,比如开child_process无法在父进程返回数据时候拿到子进程分词结果的输出,这花费了我很多时间在找解决方案,一开始想到了进程间通信,后来才发现原来用nodejs的Promise就可以解决父进程在子进程返回结果之前执行return输出。
而部署的过程中,IBM平台的使用除了有点卡卡的(毕竟要科学上网),部署还是挺方便的,一键式服务很nice,出了bug还可以去控制台查看log。但由于是中文分词,本地的时候毫无问题,在部署的时候遇到了字符编码的问题,后来加了encoding: "utf8"就解决了。
龙菜鸟:
这是第二次对IBM平台进行探索了,第一次探索使用redNodejs在可视化环境下写了一个天气查询机器人,这次用IBM translate做了一个翻译机器人,总的来说,git式的自动化配置环境,非常方便,只要使用得当,完全可以两个小时完成一个很好的微服务网站。不过目前,IBM translate之支持英文翻译成其他语言,中文翻译其他语言的话针对专利进行翻译,不支持语言翻译。