繁体   English   中英

如何在Dialogflow中处理用户名?

[英]How to handle user names in Dialogflow?

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

  • 向用户问好并解释该机器人可以做什么
  • 请求暂停服务订阅(从约10个服务池中)
  • 询问暂停的开始时间和结束时间(两个不同的值)
  • 总结请求并重复键值

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

这就是我希望对话看起来像的样子:

(用户): 您好,我想从[START_DATE]至[END_DATE]暂停对[SUB_NAME]的订阅

(助理): 您的订阅用户名是什么?

(用户): [user_name_123或UserName123或USER_NAME](字母数字,不遵循特定模式)

(助理): 完成。 您请求[USER_NAME_123]从[START_DATE]到[END_DATE]暂停[SUB_NAME]。 请检查您的电子邮件并确认您的请求。

我需要的是一个非常简单的自定义变量。 在Python中,我会选择这样的东西:

user_name = input(“您的用户名是什么?”)

我想将其存储为一个变量,可以用“ $”引用。 有没有办法用Dialogflow做到这一点?

另外,是否有可能获得上述用户名,即没有ML兼容的环绕语句结构? 我不想像这样强迫对话:

(助理): 您的用户名是什么?

(用户): 我的用户名是 [user_name_123]

您可以使用@ sys.any类型在Dialogflow的培训短语中标记特定单词,这将能够捕获部分输入。 然后,您可以将其作为参数。

Sys.any在这些抽象输入类型的类型中确实很有用,但由于仅匹配用户名变得更加困难,因此将需要更多的训练短语。

您可能要查看Google登录或OAuth,而不是使用似乎未通过服务验证的用户名。 上面的建议可以使用,但不是执行用户名的最佳方法。

如果您在Google上使用“操作”,则可以使用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

希望有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM