我创建了一个实体”可编辑”,其条目为{名称,年龄,颜色,位置}
机器人:选择要更新的选项[选项是{名称,年龄,颜色,位置}]
用户:名称
机器人:输入您的名字?
用户:Xyz
bot:记录已更新。选择一个选项进行更新[选项为{名称,年龄,颜色,位置}]
这很好用
但是如果用户说“ 我的[[名称是Xyz””来更新名称。
机器人:选择要更新的选项[选项是{名称,年龄,颜色,位置}]用户:
名称
机器人:输入您的名字?用户:我的
名称
是Xyz机器人:输入您的名字。当用户在其短语中包含“名称”时,机器人将其与实体匹配,然后再次询问相同的问题。如何解决此问题,我只想提取“ Xyz”,尽管他使用的短语是“我的名字叫Xyz”。
考虑dialogflow上下文,作为对话的真实上下文,您可以在交互后期望一些短语。
这是一个使用3个意图进行对话的示例:
对话
检测到意图:默认欢迎
代理商说:“选择一个选项来更新[选项是{名称,年龄,颜色,位置}]”输出上下文:“选择选项”
输入上下文:“选择选项”
检测到的意图:
更新名称选择
特工说:输入您的名字输出上下文:“更新名称”
输入上下文:“更新名称”
检测到意图:
更新名称
代理商说:“记录已更新”参数
您可以在同一意图下获得所有要更新的信息。为此,您可以根据需要添加参数并利用slot filling。请注意,您可以指定在询问这些参数时使用的定义提示。您将需要添加训练短语以帮助理解给定的不同参数:
在对话期间,当检测到此意图时,代理将尝试匹配所有必需的参数,并要求提供缺少的信息。最后,您将可以访问以下信息:
考虑这种意图可能很快变得难以管理。尝试为参数使用定义明确的实体和许多训练短语(请注意,在一个训练短语中,您可以收集多个参数,例如,“我的名字叫Xyz,我27岁”。)