首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何正确处理Google操作列表响应类型后的用户文本输入

如何正确处理Google操作列表响应类型后的用户文本输入
EN

Stack Overflow用户
提问于 2019-06-07 09:27:20
回答 1查看 398关注 0票数 1

我们使用actions.intent.OPTION来处理Google中列表响应类型的选择。actions.intent.OPTION不仅处理用户选择(触摸)输入,而且在列表之后处理用户(语音/文本)响应,并很好地将用户响应映射到列表中的项。它还在一定程度上处理错误。

但是,要处理不想从列表响应中选择的用户响应是很困难的。在谷歌官方指南(https://developers.google.com/actions/assistant/responses#list)的基础上,我们使用建议芯片来实现对话的支点或扩展。

我有一个用例,在这个用例中,用户可能很少使用可能的文本来表示他/她没有执行选择。例如:

代码语言:javascript
运行
复制
bot: which food do you want?
(showing list)
- rice
- salad
- pizza
(suggestion chip)
not in this list

这些是我们可以处理的用户响应:

  • 触摸列表上的选择(米饭,沙拉,比萨)
  • 用户文本或声音,指示列表中的项(或类似于列表中的项)。谷歌行动可能会考虑将“炒饭”作为大米选择。
  • 触摸建议芯片(“不在此列表中”)表示用户不需要列表中的所有项目。我们能处理好这段谈话流程。

但是,如果用户说“我改变主意”、“让我们做其他事情”、“让我们再做一次”或“重新启动这一步”,我们就无法处理这个问题,因为Google动作和对话框会自动将这些文本映射到列表中最相似的项(字符串相似性)。

有什么好的做法来处理用户的反应谁不选择列表中的任何项目旁边的建议芯片?我觉得一个建议芯片不足以处理来自用户响应的许多变化。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-07 10:12:08

当用户通过语音选择列表项时,助手会根据列表项目的键和同义词映射输入。然后将该键作为输入发送回您的对话框代理。当映射没有成功时,就不会触发actions_intents_OPTION事件,并且与任何其他输入一样,输入与所有意图相匹配。这意味着您可以通过简单地为请求添加一个正常的意图来捕获类似“让我们做其他事情”这样的请求。为了确保这个意图在列表选择流之外不匹配,您应该在显示列表时设置上下文,并将该上下文作为输入上下文添加到ChangeMyMindIntent中。

下面是如何更详细地工作:

  • 正常的列表选择将由FoodSelectionIntent捕获。此意图响应actions_intents_OPTIONS事件,即不需要有训练短语。它应该有food_selection输入上下文,以便将其与其他列表选择意图分开。
  • 然后,除了实际选择一个项(ChangeMyMindIntentRestartIntent)之外,还为用户可以发出的所有请求添加附加意图。它们也应该具有food_selection上下文,以便它们在会话的任何其他点上都不匹配。
  • 在呈现列表时,还可以设置food_selection上下文。这确保了下一个web钩子请求将包含一个有效的列表选择(由FoodSelectionIntent捕获),或者包含您在food_selection上下文范围内的另一个意图。
  • 不要忘记在完成此流之后删除food_selection上下文(将其生存期设置为0),以不限制下一个请求的意图匹配。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56491625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档