首页 > 解决方案 > 如何在 Dialogflow 中处理用户名?

问题描述

首先,我是 Dialogflow 的新手,也是一般编码的新手。我正在尝试构建一个处理订阅暂停的机器人。我为以下步骤设置了一些意图和实体:

我(几乎)对此感到满意,但我想实现一个用户名提示。我不知道是否有任何内置变量可以帮助我。

这就是我希望对话的样子:

(用户):您好,我想从 [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]

标签: dialogflow-esactions-on-google

解决方案


如果您在 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

希望有帮助!


推荐阅读