1. 首页 > 百货 > 家电数码

AI构建聊天机器人 用SAP Conversational 案例分享

【.com快译】如果您是一名初次接触构建聊天智能机器人(Chatbot)的新手,那么在面对各种自然语言理解、对话流和消息传输平台等概念时,一定会倍感压力。在本文中,我将手把手地引导您在SAPConversational AI上构建出***个聊天机器人,并达到如下的目标:

下面让我们从一个简单的Bot开始吧。下图是它与人类对话的界面:

在此,该Bot需要达到的智能程度为:

前期要求

1. 在SAP Conversational AI上创建一个免费帐户。

2. 在登录之后,单击“Start with a template”按钮,或直接单击右边标签处的“+ NEW BOT”按钮。

3. 您可以为Bot选择一项或多项预定义的技能。这将有助于您更快地上手。此处,我们只选择“Greetings”,不过稍后您还可以添加其他技能。

4. 将它命名为“joke-Bot”。

5. 将其描述为“我的***个有趣的joke-Bot”。

6. 您可以设置6个主题来改进对Bot的培训。同时,您可以将主题的关键字定义为:“时尚”、“游戏”或“工作”。

7. 根据数据的使用情况,选择适当的数据策略选项。注意:考虑到可能会被问及用户的个人健康信息,因此我们没有勾选“健康”类Bot。

8. 将默认语言设为英语。

9. 由于暂时没有隐私信息,您可以将其设置为公开状态,稍后再酌情调整。

至此,我们已经为构建Bot做好了前期准备工作。

Bot的构建阶段

常规情况下,Bot会在平台上经历如下5个阶段:

1. 训练 - 教会Bot需要理解的东西。

2. 构建 - 使用Bot Builder工具来创建对话流。

3. 代码 - 使用外部API或数据库来连接Bot。

4. 连接 - 将Bot发送到一个或多个消息传输平台上。

5. 监控 – 持续训练Bot,使之更智能、更能灵活地应对各种情况。

由于我们暂时不需要任何外部的信息,因此我们在此跳过“代码”部分。当然,如果您想进一步了解Bot与代码的连接,请参阅:。

第1步:训练Bot理解人类语言

作为Bot,它需要能够理解自己收集到的信息,并区分不同的意图(intent)。此处,意图是指不同表达方式的句子,所具有相同的含义。因此,当用户向Bot发送一些文本信息时,我们的算法会将它们与意图中的短语进行比较,检查并匹配出最接近的一个,进而判断出文本消息的意图是什么。

例如:

可见,上述三句的表达方式不同,但都是在问同一个问题:您是机器人吗?因此,如果您的Bot能够识别该问题,那么就可以准备好一个明智的回答,例如“我是机器人,我骄傲。”

“叉”入意图(Fork Intents)

在与用户交流时,所有类型的Bot都能够识别诸如:“问候”、“同意”、“不同意”等基本内容。因此,如果您在前期给Bot选择设置了预定义的“Greetings”技能,那么它已经具备了告别和问候,这两种意图的判断能力。

而且,由于SAP ConversationalAI是协作式的,因此您无需每次都重新创建新的意图。您完全可以将其他人已经创建的意图“叉”入(克隆)进来。例如,当获悉用户想要听笑话时,我们就可以在社区中检索是否有已经创建好的此类意图。

如上图所示,您可以在搜索栏中输入“joke”,以获取结果列表。如果想查看其具体内容,您也可以直接单击不同意图的名称。

创建一个新的意图

如果您想要自定义一个新的意图,那么就需要从头开始构建它。在此,我们希望Bot能够理解到对方在听到笑话时笑了。因此,您可以单击搜索字段右侧的“+Create”,然后为您的意图起一个名称。

重复上述过程,您可以创建对方觉得不可笑的意图:

第2步:添加表达式

既然创建了意图,我们就需要用各种表达式表示它们。我们可以单击不同的意图,然后添加不同的表达式语句。我的建议是:请为单个意图添加至少30个表达式,理想情况为50个。

下面是一些表达式的例子:

大笑

不可笑

第3步:测试Bot

在控制台上,单击右上角的TEST气泡图标。键入一个您从没训练过的句子,例如:“您能给我讲个笑话吗?”

根据您输入的内容,Bot会检索出意图、并做出答复。如果现有算法没能检测到相应的意图、或是检测到了无效的意图,那么您就需要添加新的、或是修改现有的表达,来进一步训练它。这似乎有些繁琐,但这是确保Bot能够正确识别用户语句的***方式。

在Bot的意图检测效果达标之后,我们就可以进入下一阶段:构建Bot的对话流。

第4步:构建和管理对话流

现在,让我们在Bot Builder中找到Build选项卡,它能够帮助我们根据Bot的技能来构建对话流。

什么是技能?

每一个技能都代表Bot“知道”如何做的某件事,它们之间通过相互排列组合,会变得逐渐复杂起来。

在创建一个新的Bot时,您已经为它选择了预定义的技能。当然为了避免“重复制造轮子”,您也可以在平台上查找并“叉”入其他人创建好的技能。

例如:如果您在创建时选择了预定义技能“Greetings”,那么它就会出现在您的界面上。

单击其名称,可获取如下详细的信息:

通常,一项技能会包含四个部分:

通过浏览该问候技能,您会发现其结构为:

第5步:建立自己的技能

让我们回到Build选项卡,单击左侧的“+ Create”技能,以建立自己的技能。

在此有三种不同类型的技能:商业(Business)、浮动(Floating)和后备(Fallback)。

在此,我们的技能属于浮动类型。我将其命名为“tell-me-a-joke”。

通过单击新创建的技能,以及“Triggers”选项卡,我们可以针对匹配上的意图,激活不同的技能。

如上图所示,由于默认是AND条件,而我们却希望在任何一个意图被匹配时,都激活我们的技能,因此不要忘记将条件更改为OR(单击其中的蓝色按钮“AND”)。

由于对此案例并无任何额外的需求,因此我们不做额外的设置。当然您也可以通过询问更多信息来改进Bot,例如:喜欢什么类型的笑话,或是为成人笑话添加年龄要求等。

下面,我们通过点击“动作”选项卡,来创建***个消息组。

单击“ADD NEW MESSAGE GROUP”,以及“ADD CONDITION”,来添加消息触​​发的条件,例如:If @ask-jokeis-present。此处“@”代表意图的类型。我们稍后会介绍到。

然后,您可以选择动作为“SEND MESSAGE”,以及文本的格式。

***,您就可以输入自己喜欢的笑话了。

当然,您也可以在两条消息之间设置5秒钟的延迟,以方便用户花时间读完Bot回复的那些长消息。

第6步:给Bot提供不同可能的答案

单击消息上的“+”,您可将新的消息添加到随机列表之中。这样您就不会总是发送一些千篇一律的笑话了。如果再次单击“SENDMESSAGE”的下方,您还可以同时发送多条消息。

下面我们来介绍另外两个意图。

请单击“ADD A NEW MESSAGE GROUP”,并将条件设置为:If @laughs is-present。

如果我想在这种情况下发送各种GIF图片,那么就可以点击“SEND MESSAGE”和“Image format”。

同理,我也可以对第三种意图进行此类操作。

第7步:与Bot聊天

接下来,我们就需要让Bot在真实情况下去与人类用户聊天了。当然,我建议您在构建的过程中,就尽可能多地与Bot聊天,以尽早识别出那些逻辑错误。

单击右下角的蓝色按钮“CHAT WITH YOUR BOT”,试着发送一些消息。同时,您也可以使用“Clear”来清屏。

第8步:将Bot连接到消息传输平台

一切准备就绪后,我们就可以将Bot部署到公共消息传输平台上了。

让我们转到“Connect”选项卡,选择您偏好的消息传输平台,然后按照其分步说明进行操作。

值得注意的是,不同的平台会有所差异。例如:Telegram虽然易于配置,却不支持GIF图像。因此,您应该适当地调整自己的Bot。如果您无从下手的话,我建议您使用FacebookMessenger,它是一个功能非常强大的平台,而且拥有着大量的用户。

第9步:监控并训练Bot

“Monitor”选项卡能够帮助您持续改进Bot的智能程度。它能够收集Bot所接收到的所有消息,并显示匹配了何种意图。通过密切监控,您可以针对那些匹配无效、或根本不存在的意图,进行动态调整与分配。

如上图所示,针对***一条消息,Bot未能实现意图的匹配。如果此类消息持续出现的话,我们就需要为它创建一个新的意图了。

展望

如果您顺利地完成了上述9个步骤,并想持续地改进该聊天机器人的话,您还可以从如下三个方面入手:

***,不要忘了“叉”入他人创建好的意图和技能。相信您的Bot一定会在不断迭代与重构中更加智能的。

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载者并注明出处:https://jmbhsh.com/jiadianshuma/31933.html

联系我们

QQ号:***

微信号:***

工作日:9:30-18:30,节假日休息