dialogflow-es - 如何在 Dialogflow 中处理用户名?
问题描述
首先,我是 Dialogflow 的新手,也是一般编码的新手。我正在尝试构建一个处理订阅暂停的机器人。我为以下步骤设置了一些意图和实体:
- 问候用户并解释机器人可以做什么
- 请求暂停服务订阅(来自约 10 个服务的池)
- 询问暂停的开始时间和结束时间(两个不同的值)
- 总结请求并重复键值
我(几乎)对此感到满意,但我想实现一个用户名提示。我不知道是否有任何内置变量可以帮助我。
这就是我希望对话的样子:
(用户):您好,我想从 [START_DATE] 到 [END_DATE] 暂停我对 [SUB_NAME] 的订阅
(助理):您订阅的用户名是什么?
(用户):[user_name_123 or UserName123 or USER_NAME](字母数字,不遵循特定模式)
(助理):完成。您为 [user_name_123] 请求从 [START_DATE] 到 [END_DATE] 暂停 [SUB_NAME]。请检查您的电子邮件并确认您的请求。
(我认为)我需要的是一个非常简单的自定义变量。在 Python 中,我会选择这样的东西:
user_name = input("你的用户名是什么?")
我想把它存储为一个变量,我可以用'$'引用它。有没有办法用 Dialogflow 做到这一点?
此外,是否可以如上所示获取用户名,即没有与 ML 兼容的周围句子结构?我不希望对话像这样被强制重复:
(助理):你的用户名是什么?
(用户):我的用户名是[user_name_123]
解决方案
如果您在 Google 上使用 Actions,您可以使用userStorage保存用户的用户名,然后稍后访问它以执行任务(在您的情况下暂停订阅)
假设您的意图返回用户名,在存储中设置用户名非常简单:
app.intent('ask_username', (conv, params) => {
conv.user.storage.username = params.username; // use $ as conv.user.storage.$ if you want
conv.ask(`Ok, What would I help you with ?.`);
});
然后您可以简单地访问用户名:
conv.user.storage.username
希望有帮助!
推荐阅读
- powerbi - 如何在powerbi中做countifs
- java - AccessibilityNodeInfo 的生命周期是什么?
- django - Django - RawPostDataException:从请求的数据流中读取后,您无法访问正文
- codeigniter - 在 codeiginiter php 的模式弹出窗口中停留在 HTML 选择的填充选项
- html - 当高度变化时,浮动右移到浮动左元素下
- html - 与 flex 结合使用时,CSS 文本对齐无法按预期工作
- matplotlib - 如何绘制连续的颜色条而不是离散的?
- acumatica - 扩展 CSAnswers DAC 时如何获取网格上属性值的控件类型?
- java - 如何将特定文件移动到java中的新文件夹
- azure - Azure 数据网关是否利用列存储数据?