很多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!

点击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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

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

  1. Chatgpt人工智能的聊天机器人来给软件测试人员的影响是什么?

    Chatgpt人工智能的聊天机器人来给软件测试人员的影响是什么? 一.环境搭建:略 如何使用略,网上有,需要一个国外的号才能注册成功,使用时需要科学上网,最好无痕方式访问.你就可以自己探索了. 二.思 ...

  2. AI产品推荐_Replika(聊天机器人App)

    前言:本文是咱们饭团"AI产品经理大本营"团员@殊予 的第二篇分享,非常用心的分析了一款特别的聊天机器人Replika,值得咱们仔细看看. 1 Replika是什么 Replika ...

  3. 【免费福利】零AI基础,如何搭建聊天机器人:技术架构剖析

    作为人工智能领域最为重要的技术,自然语言处理的应用在工业界无处不在.从网页公开数据的分析和抽取.情感分析.机器翻译.智能客服.问答系统到聊天机器人,它的重要性不言而喻. 今天我们来探讨一下自然语言处理 ...

  4. 入选最受关注AI公司的Kitt.AI:多轮对话聊天机器人开发也可以很简单

    移动互联网发展之初,很多习惯了开放.自由的PC网民是充满绝望的,他们把手机上各个App之间无法跳转.内容封闭的情况称为"信息孤岛".这可能是聊天机器人,即chatbot随着人工智能 ...

  5. 什么是人工智能,聊天机器人主要解决哪些问题?

    一.人工智能是什么 人工智能(Artificial Intelligence),英文缩写为AI.它是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术及应用系统的一门新的技术科学. 李开复 对人 ...

  6. 2023 人工智能在线聊天机器人网页HTML源码

    测试了一下就是对接的外部接口,无加密有能力的可以二开.使用教程,上传主机,服务器后解压使用,当然了,电脑解压后点击index.html也能用.

  7. 一个15分钟的视频,教你用Python创建自己的微信聊天机器人文中赠送全部源代码

    你好,我是程序员晚枫. 在社区交流群(

  8. SAP人工智能服务Recast.AI的一个简单例子

    关于这个例子的完整介绍,请参考公众号 "汪子熙"的两篇文章: SAP C/4HANA与人工智能和增强现实(AR)技术结合的又一个创新案例 和使用Recast.AI创建具有人工智能的 ...

  9. SAP成都研究院飞机哥: SAP C4C中国本地化之微信聊天机器人的集成

    今天的文章仍然来自Jerry的老同事,SAP成都研究院的张航(Zhang Harry).关于他的背景介绍,请参考张航之前的文章:SAP成都研究院飞机哥:程序猿和飞机的不解之缘.下面是他的正文. 大家好 ...

最新文章

  1. python少量数据分析代码_10个可以快速用Python进行数据分析的小技巧!
  2. Jenkins 2.9.1 安装文档
  3. Python教程:跳出多层循环for、while
  4. 基于visual graph开发实时线损管理系统
  5. 如何快速掌握一门新技术/语言/框架…
  6. 一.JavaScript基础
  7. Caffe2:ubuntu修改链接方式ln
  8. Java中的static静态代码块
  9. 通过投影增强数据模型
  10. 如何在 LeetCode 高效刷题,才能拿到一线大厂 Offer
  11. Nokia Booklet 3G试用小记
  12. TensorFlow by Google CNN卷积神经网络 Machine Learning Foundations: Ep #3 - Convolutions and pooling
  13. Sql Server 的增删改查
  14. DBImport v3.0 中文版发布:支持各大数据库数据互导(IT人员必备工具)
  15. Google 是这样的工作氛围
  16. Vue使用axios图片上传报错500
  17. SQL SERVER代理的权限设置
  18. Flink DataStream的wordCount、数据源和Sink、Side Outputs、两阶段提交(two-phase commit, 2PC)
  19. java怎么连接activemq集群_ActiveMQ之集群(主从)搭建-yellowcong
  20. 小米 无线 linux 鼠标,便捷好用的小米无线鼠标,据说用完一键退回就离不开了...

热门文章

  1. 【图嵌入】Graph Embedding 方法之 LINE 原理解读
  2. python参数化_Python 中如何实现参数化测试的方法示例
  3. 为jupyter_notebook增加目录
  4. 使用 http-proxy 实现 SAP UI5 请求的代理重定向
  5. 如何从 ABAP 调试器里提取某个内表的内容用于单元测试
  6. 什么是 TypeScript 的 Module Augmentation
  7. Angular html 页面里的井号 #
  8. 关于 SAP Spartacus 支持不同的环境配置部署到 SAP Commerce Cloud 上的讨论
  9. 关于SAP Commerce Cloud OCC API url里不包含user信息的问题
  10. 一个Angular应用开发的辅助Visual Studio Code扩展 - Dependency Tree