dialogflow覆盖用户名
在对话框流中创建聊天机器人时遇到问题。
当我打字的时候
user : hi
Bot : What is your name?
User : xyz
Bot : hi , xyz
User : abc
Bot : hi ,abc
当我将生命周期设置为1以上时,它会覆盖名称,之后,我必须提出几个问题并在最后用询问数据打印名称。
当我将寿命设置为1以上时,它不允许我在下一个意图中打印名称。
有什么办法吗?
对话示例
意图清单
欢迎意图
GetName意图
获取电子邮件意图
回答如下:在您接受其姓名并提示输入电子邮件后,您有两个仍然有效的上下文:
awaiting_name
上下文的生命周期为4(因为它是在欢迎意图中设置的,两个意图前)awaiting_email
上下文的生命周期为5(因为它刚刚设置)
这意味着两个可能的上下文可以匹配:
Get Name
上下文(因为awaiting_name
有效)Get Email
上下文(因为awaiting_email
有效)
Dialogflow正在选择Get Name
上下文,这是完全有效的。当存在多个匹配时,它适用于选择Intent的规则是复杂的,但是可以选择它们中的任何一个。
如您所推测,您可以将生命周期设置为1,这意味着您只接受姓名或电子邮件的下一个答案。这可行,但这是一个坏主意,因为这意味着他们不能提问或寻求帮助。这是非对话的。
更好的方法是在不再需要时清除背景。所以你的Get Name
Intent可以通过将awaiting_name
寿命设置为0(以及类似方式的其他Intent)来实现。像这样的东西:
dialogflow覆盖用户名
在对话框流中创建聊天机器人时遇到问题。
当我打字的时候
user : hi
Bot : What is your name?
User : xyz
Bot : hi , xyz
User : abc
Bot : hi ,abc
当我将生命周期设置为1以上时,它会覆盖名称,之后,我必须提出几个问题并在最后用询问数据打印名称。
当我将寿命设置为1以上时,它不允许我在下一个意图中打印名称。
有什么办法吗?
对话示例
意图清单
欢迎意图
GetName意图
获取电子邮件意图
回答如下:在您接受其姓名并提示输入电子邮件后,您有两个仍然有效的上下文:
awaiting_name
上下文的生命周期为4(因为它是在欢迎意图中设置的,两个意图前)awaiting_email
上下文的生命周期为5(因为它刚刚设置)
这意味着两个可能的上下文可以匹配:
Get Name
上下文(因为awaiting_name
有效)Get Email
上下文(因为awaiting_email
有效)
Dialogflow正在选择Get Name
上下文,这是完全有效的。当存在多个匹配时,它适用于选择Intent的规则是复杂的,但是可以选择它们中的任何一个。
如您所推测,您可以将生命周期设置为1,这意味着您只接受姓名或电子邮件的下一个答案。这可行,但这是一个坏主意,因为这意味着他们不能提问或寻求帮助。这是非对话的。
更好的方法是在不再需要时清除背景。所以你的Get Name
Intent可以通过将awaiting_name
寿命设置为0(以及类似方式的其他Intent)来实现。像这样的东西: