如何在 Dialogflow 中处理用户名?
How to handle user names in Dialogflow?
首先,我是 Dialogflow 的新手,也是一般编码的新手。我正在尝试构建一个处理订阅暂停的机器人。
我已经为以下步骤设置了一些意图和实体:
- 问候用户并解释机器人可以做什么
- 请求暂停服务订阅(来自 ~10
服务)
- 询问暂停的开始时间和结束时间(两个不同的值)
- 总结请求并重复关键值
我(几乎)对此感到满意,但我想实现一个输入用户名的提示。我不知道是否有任何内置变量可以帮助我。
这就是我希望对话的样子:
(User): Hi, I would like to pause my subscription for [SUB_NAME] from
[START_DATE] to [END_DATE]
(Assistant): What is your user name for the subscription?
(User): [user_name_123 or UserName123 or USER_NAME] (alphanumeric, not following a certain pattern)
(Assistant): Done. You requested a pause for [SUB_NAME] from [START_DATE] to [END_DATE] for [user_name_123]. Please check your e-mails and confirm your request.
我(我认为)需要的是一个非常简单的自定义变量。在 Python 我会选择这样的东西:
user_name = input("What's your user name?")
我想将其存储为一个变量,我可以用“$”引用它。
有什么方法可以用 Dialogflow 做到这一点吗?
另外,是否可以如上所示提取用户名,即没有与 ML 兼容的周围句子结构?
我不希望对话像这样被强制重复:
(Assistant): What's your user name?
(User): My user name is [user_name_123]
如果您在 Google 上使用操作,您可以使用 userStorage 保存用户的用户名,然后访问它以执行任务(在您的情况下暂停订阅)
假设您的意图是 returns 用户名,在存储中设置用户名非常简单:
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
希望对您有所帮助!
你可以在Dialogflow的训练短语中标记特定的词,类型为@sys.any,这将能够抓取一部分输入。然后你可以把它作为参数抓取。
Sys.any 在这些类型的抽象输入类型中非常有用,但将需要更多的训练短语,因为仅匹配用户名变得更加困难。
您可能想查看 Google 登录或 OAuth,而不是使用用户名,因为用户名似乎未针对您的服务进行身份验证。上面的建议可行,但不是处理用户名的最佳方式。
首先,我是 Dialogflow 的新手,也是一般编码的新手。我正在尝试构建一个处理订阅暂停的机器人。 我已经为以下步骤设置了一些意图和实体:
- 问候用户并解释机器人可以做什么
- 请求暂停服务订阅(来自 ~10 服务)
- 询问暂停的开始时间和结束时间(两个不同的值)
- 总结请求并重复关键值
我(几乎)对此感到满意,但我想实现一个输入用户名的提示。我不知道是否有任何内置变量可以帮助我。
这就是我希望对话的样子:
(User): Hi, I would like to pause my subscription for [SUB_NAME] from [START_DATE] to [END_DATE]
(Assistant): What is your user name for the subscription?
(User): [user_name_123 or UserName123 or USER_NAME] (alphanumeric, not following a certain pattern)
(Assistant): Done. You requested a pause for [SUB_NAME] from [START_DATE] to [END_DATE] for [user_name_123]. Please check your e-mails and confirm your request.
我(我认为)需要的是一个非常简单的自定义变量。在 Python 我会选择这样的东西:
user_name = input("What's your user name?")
我想将其存储为一个变量,我可以用“$”引用它。 有什么方法可以用 Dialogflow 做到这一点吗?
另外,是否可以如上所示提取用户名,即没有与 ML 兼容的周围句子结构? 我不希望对话像这样被强制重复:
(Assistant): What's your user name?
(User): My user name is [user_name_123]
如果您在 Google 上使用操作,您可以使用 userStorage 保存用户的用户名,然后访问它以执行任务(在您的情况下暂停订阅)
假设您的意图是 returns 用户名,在存储中设置用户名非常简单:
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
希望对您有所帮助!
你可以在Dialogflow的训练短语中标记特定的词,类型为@sys.any,这将能够抓取一部分输入。然后你可以把它作为参数抓取。
Sys.any 在这些类型的抽象输入类型中非常有用,但将需要更多的训练短语,因为仅匹配用户名变得更加困难。
您可能想查看 Google 登录或 OAuth,而不是使用用户名,因为用户名似乎未针对您的服务进行身份验证。上面的建议可行,但不是处理用户名的最佳方式。