【IT168 资讯】在本教程中,我们将看到如何将上下文对话添加到你的应用程序,Alexa skill,Google Home操作或聊天机器人。
谈话就是两个或两个以上的人交换意见。换句话说,这是一系列的问题和答案。为交互而构建的会话应用程序也有两个方面:最终用户可以问“今天发生了什么事?”而你的机器人会根据这个事实回答一个有趣的事实,也可能会补充表示,“你想让我给你发一个这篇文章的链接吗?’’然后最终用户可以表示,“不,请把它送交我的办公室”等方式批准。
正如我们所看到的,一个真正的语境对话不是一个简单的问答,而是每个最终用户都可以使用不同的订单或信息流,在这过程中,你的应用程序需要处理所有不同的流程。
在今天的文章中的教程表示,我们将添加语境对话到你的应用程序、Alexa Skill、Google Home操作或聊天机器人中。
本指南中的一些信息将以开发人员为中心,但如果你不是开发人员,也没关系,如果你按照步骤进行操作,你也将拥有一个部署的“今天发生了什么”的应用程序。
存储和检索上下文
要存储和检索会话上下文,你应该使用ConversationRequest的会话对象。
这里你可以使用set方法存储一个简单的字符串:
...然后使用get检索它:
你可以使用JSON.stringify存储JSON对象:
稍后使用JSON.parse检索它:
在应用程序中使用会话数据
在之前版本的代码中,我们从API返回的列表中选择了一个随机事件。 接下来将开始以连续的顺序返回事件。
编辑“What Happened Today”的意图代码响应代码:
在17-26行,我们获取存储的索引并保存一个新的索引。
试试看
现在你的应用程序可以“记住”会话数据,现在开始试一试。
在右侧的聊天控制台中,输入一个请求:“今天发生了什么?”输入请求后,点击发送。
聊天机器人将会从之前的回答中抽取一个过去发生的有趣事件。
接下来,在右侧的聊天控制台中,再次输入请求:“今天发生了什么事?”输入请求后,点击发送。
chatbot会回应过去的另一个事件。请注意,事件是按年份排序的,所以每个请求都会返回一个时间稍微靠后的事件。
添加上下文到你的应用程序
一旦你的应用程序可以记住它成为上下文。例如,为了响应用户“是”或“否”的意图,我们必须能够记住要求用户确认的内容。在本教程中,我们将询问用户是否要查看历史上的下一个事件。如果用户确认,我们将返回下一个事件。
Conversation.one内置“是”和“否”的处理程序,通常,没有必要更改默认设置。我们将在这里展示如何利用默认的“是”和“否”处理程序来创建上下文对话流程。
上面的代码指示Conversation.one在用户调用“yes”意图时使用数据{lastIndex:lastIndex,eventType:req.slot(“eventType”)}调用whatHappenedTodayFunction。
一个类似的代码可以通过用onNo代替on Yes来应用。
现在让我们修改代码,以包含上下文流程。
1.添加回调函数。在“业务逻辑”选项卡中,添加以下代码:
2.我们将用新的上下文流程回应whatHappenedToday的意图:
每当我们没有任何问题要求用户,我们调用sdk.conversation Helper.add Anything Else Message来确保对话流程仍然呈打开的状态。
试试看
现在,你的应用程序具有上下文流程,请尝试你目前有的功能,还是上面提过的步骤。
在右侧的聊天控制台中,输入一个请求:“今天发生了什么?” 输入请求后,点击发送。
聊天机器人会回答一个从过去的有趣的事件中挑选一个回复,并会问你,如果你是否想听更多。尝试几次回答“是”,然后回答“否”,看看结果有什么不同。
下一步是什么?
在接下来的部分中,你将学习如何通过上下文对话来收集缺失的数据一种称为实体填充的技术。