Skip to content

创建一个客户支持智能助手

本份指南的目的

本分指南有关创建一个智能的客户支持机器人,能够检测用户的问题并根据问题作出回应。

本份指南仅展现如何创建一个只能针对一个问题的机器人,如果想要针对新的问题,那么其中有一些步骤是重复的。

步骤一:和用户打招呼

我们希望机器人做的第一件事是和用户打招呼。创建您的机器人,用您喜欢的名字命名它。并添加您的第一个流程。这个流程将成为用户的入门流程,因此,用一个重要的名字来命名它。

Welcome Flow

您可以辨认这个入门点因为它的框是绿色的。

在观察“欢迎”流程时,我们可以向其添加元素。对这个流程我们添加一系列简单的信息。点进最近创建的元素,并添加一些机器人能说的话。

Greeting Thread

就像这么简单。

确保“欢迎”流程没有通过指南整体被导航所连接。如果它被连接了,那么在步骤二中建立的系统将无法工作。

步骤二:问题检测

这个步骤是关于为我们的机器人创建问题检测功能的。这是最长也是最复杂的步骤。 一旦您已经创建完您的欢迎流程,就可以让您的机器人学习如何理解客户所说的话了。在这个页面上,点击“集成”按钮,我们希望将对话流程集成到我们机器人。我们制作了一个指南 在完成了集成后,我们希望回到对话流程的API管理并找到我们已经完成的代理。在“意图”中,点击创建意图按钮并且命名它。如果您还没有完成,删除默认的意图,但是绝对不要删除默认倒退(如果不小心删除了,您可以在右上方的选项中创建一个新的)。 进入您刚刚创建的意图,我们想要添加一些训练短语。这些短语应该是可以告知机器人的相当常见的东西。 Training Phrases

在这个例子里,我们希望机器人辨别客户是否有网络事件

在为您的代理编写一些训练短语后,保存并且点击“实体”标签。创建一个实体并且进入它的菜单。将会出现一个表两个选项,左边的是我们首先将要编辑的。这个地方使得我们可以打字,并且将成为您希望机器人所能辨认的。右边的第二个选项应该被填上左边所打的字的不同的代名词。您可以依照您的意愿填上任何数量的代名词并且保存这个实体。 Entity Table

现在机器人可以判定右边的词和左边的词是等价的。

在保存了实体后,尝试打一些您输入进靠近右上角文本框中的字。如果您得到的回复是倒退,那么说明有一些步骤出错了,您的代理没有检测到您说的话。

Correct Intent

如果它展示您创建的意图,那么您成功了。

Incorrect Intent

而不是倒退。

在所有步骤完成后,我们可以回到机器人编辑器,我们现在想要进入左边的“插槽”标签并且创建四个插槽。您的插槽应该像这样被设置。

插槽 1: 地址插槽,设为为文本格式。

插槽 2: 检查变量插槽,设为逻辑变量格式。

插槽 3: 问题编辑插槽,设为多项选择格式。

插槽 4: 服务编辑插槽,设为文本格式。

Slots List

窗口看起来和此类似

回到机器人编辑器,创建一个新的流程,并根据机器人将检测到的问题将其命名。单击它并进入“配置AI”,打开一个空窗口。 创建一个新的意图并将其命名为与对话流程中的意图完全相同的名称。对实体做同样的操作。 将插槽设置为您创建的多选插槽,然后单击关闭窗口。 Confiure Ai

配置AI选项卡应如下所示

Configured Flow

流程看起来应该是这样的

单击现在是黄色的流程并进入它,创建一个操作流程和消息线程。 在操作流程内,将用于服务类型的插槽更改为机器人将检测到的问题。 Action Flow

我们的机器人刚刚检测到互联网问题,并将服务类型重命名为“网络”

在我们的消息线程中,我们希望机器人首先对用户有礼貌,然后继续解决问题。 添加文本框,然后添加用户输入框。 在用户输入框内,添加我们之前制作的多选插槽并添加提示。 然后,您可以添加用户可以单击的不同响应。 UIG Window

如果窗口看起来像这样...

UIG Chat

...聊天看起来将像这样!

此时,机器人逻辑中应该没有错误,允许我们发布机器人。 当机器人发布时,您应该在机器人构建器的右下角看到一个新图标。

Chat Icon

单击此图标可以让我们与我们的机器人聊天。 我们希望确保我们的对话流程API正确使用机器人,因此请尝试使用关键字进行回答。

Legitimate Answer

使用您在对话流程中指定的关键字继续...

Non-Legitimate Answer

...如果没有使用关键字将循环!

通过一个有效的对话流程,我们完成了这个机器人最困难的部分。

步骤 3: 回复

我们已经接近完成机器人,但我们还有两个流程来创建和填充。

这两个流程中的第一个将以您的支持机器人将检查的东西命名(对于我们的示例机器人,它是断电)。 在我们对此流程执行任何操作之前,我们需要在上一个流程链接中创建我们最近创建的流程中创建的消息线程。

Linked Flows

查找顶层的箭头以查看它们是否已链接

Linked Flows

或者查看您的流程以获取此类连接

一旦完成,我们就可以进入我们的新流程。 我们希望在流程中添加以下元素: 一个云功能,一个分支两个消息线程。 在我们触摸这些元素之前,我们想要进入云功能选项卡并添加几行代码。 您添加到云功能中的代码应该能够检查变量。 (如果您不知道如何操作,请使用下面的代码!)

function checkForOutage() { const a = new dc.ActionSequence(); const setSlot = new dc.SetSlotsAction();

if(Math.random() > 0.5) { setSlot.slots = { has_outage : true } } else { setSlot.slots = { has_outage : false } }

a.actions = [ setSlot ]; return a; }

module.exports = { checkForOutage }; function hello() { return 'Hello world!' }

完成代码后,返回到云功能并分配您称之为功能的任何内容。 在它被赋值之后,输入分支元素。

我们希望确保在分支内完成以下事项:

应满足所有条件

在条件下,它规定您的布尔值设置为值 true

如果满足条件,则将用户重定向到一个消息线程

如果标准不满足,则将用户发送到其他消息线程

Branch Parameters

理想情况下,您的分支应该是这样的

您现在应该看到两个不同的行进入不同的消息线程,绿色和红色。 这些显示了我们根据分支输出重定向机器人的位置。 进入与 green 箭头相连的线程,我们可以添加几行来解释我们的机器人已经检测到问题为真。 我们的机器人已经解决了这个问题,所以我们可以把这个消息线程作为一个死胡同。

Detected Outage

希望它们不会注意到我们的估计永远不会改变...

退出该线程并输入由 红色 箭头连接的线程,我们想要添加一个文本框和一个列表。 文本框可以是一个简单的消息,解释问题不能由我们的机器人处理,但该列表将是帮助人类助手重定向的东西。

对于我们的指南,我们为用户提供了不同类型调制解调器的选择。 在列表中,使用导航按钮创建三张不同的卡片。 暂时将此按钮留空,我们将在步骤4中返回并链接它们。

List Card

添加一些图像,标题和说明。 让它看起来不错!

请将上面的图像更改为带有工作按钮而不是空白区域的图像!

步骤 4: 完成接触

我们现在已经到了创建机器人的最后一步!

回到机器人构建器的顶层并创建一个新的流程,恰当地命名为“再见” 在这个流程中将是一个单独的消息线程,添加一些文本,您几乎完成创建!

我们现在想回到我们在步骤3中创建的两个消息线程,并添加导航到我们的结束文本。 对于包含列表的线程,这意味着我们编辑卡的导航按钮。

Buttons Linked

按钮现在应该是这样的

要检查我们是否已正确完成所有操作,请发布机器人并对其进行测试。

It Works!

我们的机器人正常运行!

如果您愿意,您可以通过添加不同的东西来扩展这个机器人来检测它(通过在对话流程中添加不同的意图并为机器人创建新的流程来完成)。 或者,如果您愿意,可以让机器人只有一个意图来检测。 无论哪种方式,您已经创建了自己的客户支持机器人,恭喜!