使用Recast.AI创建具有人工智能的聊天机器人

很多SAP顾问朋友们对于人工智能/机器学习这个话题非常感兴趣,也在不断思考如何将这种新技术和SAP传统产品相结合。Jerry之前的微信公众号文章C4C和微信集成系列教程曾经介绍了Partner如何利用SAP Cloud for Customer内置的社交媒体集成框架,做一些简单的开发将微信集成到C4C中去。该系列教程里其中一篇文章,介绍了如何将图灵机器人集成到某个微信公众号的消息服务器上去,让该微信公众号可以“智能地”同其关注粉丝聊天。

这个图灵机器人的图灵服务通过Restful API的方式暴露出来,所有和机器学习相关的细节都被www.tuling123.com封装成黑盒子,应用开发人员只管消费。这是第三方的人工智能解决方案。

2018年1月,SAP收购了一家法国的人工智能提供商,Recast.AI, 从此SAP也有了自己的人工智能解决方案。

现在,访问https://recast.ai, 能看到一行醒目的提示:Recast.AI is now part of SAP。那么Recast.AI提供了怎样的功能呢?最好的入门办法,莫过于自己动手做一个Hello World例子出来。跟着Jerry一块做一个吧。

我们的目的同本文开头截图展示的一致:开发一个在微信里使用的聊天机器人,不同之处在于这次我们使用SAP Recast.AI作为人工智能解决方案。

绝大多数SAP顾问朋友们关注的是如何利用人工智能基于SAP传统产品做创新,给客户带来价值,而不是花大量时间精力去学习机器学习底层需要的那些艰深的数学知识。Recast.AI也完美地将不需要应用开发人员了解的机器学习底层细节进行了封装,我们将要做的这个聊天机器人甚至不需要太多的编码。

我们在Recast.AI网站上在线创建聊天机器人。一般网站首次登陆都需要先创建用户,而Recast.AI除了常规用户注册方式外,还贴心地提供了使用Github账号直接登录的选择,对于每天混Github的程序员来说,这太方便了。

点击按钮允许Recast.AI访问您Github账号的公有信息后,能看到这个欢迎界面:

点"START WITH A TEMPLATE"基于现成的模板创建一个机器人:

和我们在Fiori UI里进行业务模型创建类似,首先维护机器人的ID和描述信息:

创建成功后,来到如下的机器人明细页面,一共包含5个标签。本文只会用到Train, Build和Connect这三个标签。

Train标签下没有任何内容,只有一个提示:You have no intents.

什么是intent呢?在Android开发里也有intent的概念,intent是一个将要执行的动作的抽象描述。Android框架根据此intent的描述,负责找到将要执行动作对应的组件,再把包含了附加参数的intent传递给决定出的负责组件。而在Recast.AI里的intent同样是一个抽象概念。通俗地解释,intent是一系列句子的集合,这些句子虽然从文字上来说表达方式各异,然而传递的是同一个意思。

比如下列三句话其实是在同一个问题:

  • 你是一个程序员么?

  • 你每天的工作是编写代码么?

  • 你每天使用集成开发环境或者命令行进行单步调试么?

我们可以把这三个句子归为同一个intent,姑且命名为"程序员"。假设当用户又发送了一个新的文本到您的聊天机器人去:“你是靠编写代码维生么?” Recast.AI封装好的算法会解析这个文本,将其和"程序员"intent里的语句进行比较,如果判断出来这个新的文本和intent中的某一句表达的意思非常接近,那么我们就能说这个新文本的intention(意图)是"程序员"。此时,就可以让机器人回复预先准备好的回答,比如“是的,我是程序员,我很喜欢写代码”。

上面的描述实际上已经涵盖了本文聊天机器人创建完毕后,需要执行哪些后续步骤。

回到我创建的聊天机器人,目前没有分配任何intent。

那么我就点Create按钮创建一个。当然也可以点Search按钮,从Recast社区上搜索一个别人创建好的intent。

现在新建的这个programmer intent还没有任何语句,现在我们就来给它“喂”一些句子,这个动作称为"Train(训练)"。输入一个句子"Are you a programmer?",回车:

Recast.AI会自动将这个句子进行分词,并且识别出一个代词(Pronoun) - You, 一个数量词(Number) - a, 和一个工作描述(Job) - programmer。

我们再多喂几个句子给这个intent:

  • Are you coding with Java or ABAP or JavaScript or C# or C++ or Python or Ruby?

  • Are you using Integrated Development Environment or Command Line to debug?

  • is Programming your daily work?

什么时候可以结束训练呢?首先给intent喂的句子越多,那么它分析新的语句的意图(intention)是否和程序员相关的准确度就越高。现在我们可以对这个intent进行测试。点击Train标签页右上角的Test链接,会看到下图的测试窗口。现在我给这个intent发送一条文本:

Are you working with Java every day?

Recast.AI将这个句子同我创建的"programmer" intent里的句子进行比较,最后判断出,这句话有99%的可能性属于该intent(下图字段confidence: 0.99)。

那么我们就结束训练,进入下一个"Build"步骤。这个步骤负责定义当您的聊天机器人成功识别到了您的输入是在讨论程序员后,应该执行何种动作。Recast.AI把机器人这种成功识别出文本的intention后执行某种动作的能力,称为skill。在Build标签页点击Create skill:

我给新建的skill取名:chat_with_programmer

给这个skill定义Triggers,意思是满足何种条件会触发这个skill?在Triggers标签页下面使用Recast.AI预置的一些公式进行条件定义。

下图if@programmer,意思就是:如果聊天机器人计算出用户发送的文本是属于"programmer"这个intent:

Actions就是在这种条件下应该执行的具体动作。

这里我定义的Actions就是简单地推送一些文本(SEND MESSAGE)给用户。

准备一些文本,机器人会从中间随机地选取一条推送给用户。

  • Yes, and I am learning Scala in my spare time.

  • Yes, I have been programming for 20 years.

  • Yes, I am a programmer, I love programming!

image

点击Build标签页的"CHAT WITH YOUR BOT"进行测试。随便输入一句和程序员相关的话,比如"Are you working with Java?" 在测试页面,看到了机器人自动给我推送了一个回复,同时显示了我之前创建的"chat_with_programmer" skill已经被触发(triggered)了。这意味着Build标签页里的配置也已经完成。

最后,我们可以把这个创建好的聊天机器人进行发布,让它可以被其他平台消费。这里我选择的是Webchat渠道,意思是在一个网页内嵌入这个聊天机器人的对话窗口。

点击Connect标签页,选择Webchat:

可以对嵌入的聊天机器人的会话窗口的某些属性进行定制化,比如窗口标题,用户和机器人的图片定制等。

点击SAVE CHANGES,会生成一段包含Script标签的HTML代码。直接拷贝到某个网页里,就能使用了。

比如您可以把这个网页作为HTML5应用部署到SAP云平台上,得到一个URL,然后把这个URL绑定到微信公众号的某个自定义菜单上。当用户点击了这个微信菜单后,就会在微信里打开聊天机器人的会话窗口。

具体步骤在我的博客里有介绍:

Wechat development series 5 – embedded your UI5 application to Wechat app

https://blogs.sap.com/2017/12/17/wechat-development-series-5-embedded-your-ui5-application-to-wechat-app/

下图是我的聊天机器人在微信里工作的效果图。

本文这个例子的完整步骤在SAP Recast.AI的官网上也有记载,不过是全英文的。大家有兴趣可以动手做一做。感谢阅读。

https://recast.ai/blog/build-your-first-bot-with-recast-ai/

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/32490.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2020中国人工智能年度评选开启,4大类别7大奖项申报正式启动

编辑部 发自 凹非寺 量子位 报道 | 公众号 QbitAI 现在,是时候从落地的角度给予AI行业年度性评价了。 从2018年开始,量子位的「中国人工智能年度评选」已经进行了两年。 过去的两届评选,我们锁定了不少风头正盛或者极具潜力的公司&#xff0c…

最全整理:中国人工智能百强企业(100)榜单

http://blog.itpub.net/29829936/viewspace-2375626/ 2019-01-11 10:25:24 1、创略科技 总部:上海 简介:创略科技隶属于创络(上海)数据科技有限公司。创略科技是一家客户数据技术和AI公司,总部设立在上海&#xff0c…

NDD(notepad--)的AI机器人插件制作过程

兴趣是最好的老师。周末晚上熬夜到半夜十二点多,花了几个钟头给NDD制作了一款AI搜索问答插件,时间仓促界面较丑,后续插件代码开源并维护和美化。Notepad记事本工具挺常用的,把AI接口接入进来使用起来方便多啦,直接在上…

Qt常用的按钮控件编程(四)-- QCheckBox 按钮

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言6、QCheckBox 按钮6.1 例程功能和程序执行效果6.2 生成项目6.3 添加资源文件6.3.1 添加图片资源6.3.2 添加 qss 文件 6.4 完成代码编辑6.4.1 修改项目文件 _rad…

chatgpt赋能python:Python按键控制灯:简单易用的物联网解决方案

Python按键控制灯:简单易用的物联网解决方案 随着物联网技术的快速发展,人们对智能家居的需求也越来越高。本文将介绍如何使用Python按键控制灯,轻松实现家居自动化控制,为您的生活带来方便与舒适。 Python语言简介 Python是一…

chatgpt赋能python:Python中按下某个按键的实现方法

Python中按下某个按键的实现方法 Python是一种广泛应用于各种领域的高级编程语言,可以用于编写各种类型的应用程序和工具。其中,它在游戏开发方面有着广泛的应用。而在游戏开发过程中,按键响应是至关重要的一个组成部分。本文将带领读者了解…

chatgpt赋能python:Python校验用户按键的方法

Python校验用户按键的方法 在Python编程中,我们有时需要校验用户按键的输入。这对于需要用户输入特定字符或按键组合的程序来说是非常必要的。本文将介绍一些Python校验用户按键的方法。 使用getch()函数 Python的getch()函数可以用于校验用户的按键输入。这个函…

chatgpt赋能python:Python编程中的按键事件

Python编程中的按键事件 在Python编程中,按键事件是一项非常有用的功能。通过监控按下键盘中的特定键,您可以触发程序的某些特定操作,这些操作可用于增强应用程序的功能和用户体验。 按键事件的基本工作原理 Python中的按键事件基于图形用…

网站日志蜘蛛在线分析工具源码 日志可视化管理工具源码 快速分析搜索引擎网络爬虫抓取记录

简介: 网站日志蜘蛛在线分析工具源码 日志可视化管理工具源码 快速分析搜索引擎网络爬虫抓取记录 如果是 linux 宝塔面板 的服务器自然环境,大家登陆宝塔面板linux控制面板后,点一下左边“文件”,在www下的wwwlogs文件目录中就能…

如何用ChatGPT做品牌项目的二手信息搜集?

该场景对应的关键词库(25个): 品牌案例、竞品、信息来源、项目分析、官方渠道、品类、品牌、节日节庆、明星、国家、奖项、代理商、项目名称、项目描述、品牌介绍、竞争情况、运营数据、财务信息、交易信息、法律问题、网络平台、行业人士、品…

金山办公的WPS AI将引入大模型能力(LLM)到表格、文字、演示和PDF四大组件

🚀 金山办公的WPS AI将引入大模型能力(LLM)到表格、文字、演示和PDF四大组件,并支持桌面电脑和移动设备。 金山办公的WPS AI将引入大模型能力(LLM)到表格、文字、演示和PDF四大组件,并支持桌面…

系统内的在线协同富文本,如何寻求解决方案?

如果只是普通的富文本编辑,前端市面上已经有成熟的解决方案, 来自国产的富文本编辑器,开源 Web 富文本编辑器,开箱即用,配置简单。支持 JS Vue React 。 GitHub - wangeditor-team/wangEditor: wangEditor —— 开源…

WPS Office AI 开放内测,名额有限,先到先到

没等来Microsoft 365 Copilot,等来了 WPS AI,作为国内第一款集成多类AI功能的日常办公多件套应用,真是广大用户的福音。内测申请入口已经放开了,想一睹风采且想让自己的Office灵动起来的,抓紧行动(文末获取…

WPS Office AI实战:AI带来的文档智能化体验

前面我们已经了解过 AI 在PPT制作、Word写作方面带来的革命性效率提供,今天一起来聊聊在线文档的AI应用。如果你习惯用在线文档的话,一样也可以享受到AI的强大优势。金山在线智能云文档已经接入WPS Office AI套件大家庭,用AI来改造写作的新时…

不用等微软了!实测:全线接入AI的WPS,做PPT就是一句话的事

金磊 梦晨 发自 凹非寺量子位 | 公众号 QbitAI 要问现在办公、学习最最最fashion的姿势是什么? 那必然是跟AI来一个深度合体。 例如老板丢过来一份纸质合同(还是全英文的),让你快速浏览并做总结。 此时不必惊慌,遇事掏…

与ChatGPT 技术对话 42 天后,30多岁男子过于焦虑自杀身亡...

点击“开发者技术前线”,选择“星标” 让一部分开发者看到未来 来自:极目新闻 最近ChatGPT的飞速发展引起了世界范围的广泛关注,有人兴奋,也有人担忧。 据比利时媒体LAvenir3月28日报道,一名热衷于环境问题的比利时男子…

影刀知识点总结

判断字符串之间的包含关系,用if条件就可以。影刀社区:https://www.winrobot360.com/community/homePage启动excel的意思是,如果没有打开,就打开,如果打开了,就激活已打开的excel,输入内容&#…

影刀Rpa 、英佑科技面试总结

文章目录 1、dubbo spi 都使用过哪些? Java Spi 的缺点有哪些?2、dubbo的负载均衡策略有哪些3、设计一个rpc,有哪些模块4、Dubbo注册中心有哪些5、apollo框架,如何保证容错6、List线程安全实现方式有哪些?7、mysql 索引& 优化CSDN话题挑战赛第2期 参赛话题: 面试宝典…

day13- 影刀的基本操作

day13- 影刀的基本操作 影刀 - rpa软件开发工具(开发软件机器人) 软件机器人: 代替人类控制计算机完成流程固定且大量重复的作用 01搭建网页机器人 主流程 常见标签的控制方法 分支和循环 获取当前选中网页 变量和循环

影刀学习抓取网页详情

学习目标:影刀学习 1.爬取网页详情:点击网页,循环设置,点击其中一个超链接,进入超链接内容,点击其中一个超链接,获取里面的信息,写入表格,关闭网页。 2.在1的基础上&a…