有没有办法只提取参数而不是实体?
Is there any way to extract only parameter not the entity?
我创建了一个实体 "editable",条目为{name, age, color, place}
bot:select 一个更新选项[选项是{name, age, color, place}]
用户:姓名
机器人:输入你的名字?
用户:Xyz
bot:记录已更新。 select 一个更新选项[选项是{name, age, color, place}]
这个很好用
但是如果用户说类似“my name is Xyz”的内容来更新名称。
bot:select 一个更新选项[选项是{name, age, color, place}]
用户:姓名
机器人:输入你的名字?
用户:我的名字是Xyz
机器人:输入你的名字。
当用户在他的短语中包含 "name" 时,机器人会将其与实体匹配并再次询问相同的问题。
如何解决这个问题,我只想提取 "Xyz" 尽管他使用短语 "my name is Xyz".
您可以使用 contexts 来处理对话的流程。上下文用于帮助 dialogflow 检测正确的意图。输出上下文是检测到意图后创建的上下文,输入上下文是检测到意图所需的上下文。
想想 dialogflow 上下文,作为对话的真实上下文,您可以在交互后期待一些短语。
下面是一个使用 3 个意图进行对话的示例:
- "Default welcome"
- "Updating name selection"
- "Updating name"
对话
检测到意图:默认欢迎
代理人说:"Select an option to update [options are {name, age, color, place}]"
输出上下文:"select-option"
用户说:"name"
输入上下文:"select-option"
检测到意图:正在更新名称选择
代理人说:输入您的姓名
输出上下文:"update-name"
用户说:"My name is Xyz"
输入上下文:"update-name"
检测到意图:更新名称
代理人说:"record updated"
除此之外,还有follow-up intents用于此场景,优点之一是在后续意图中,自动创建上下文。
参数
您可以在同一个意图中获取所有要更新的信息。为此,您可以根据需要添加参数并利用 slot filling。请注意,您可以指定询问这些参数时要使用的定义提示。
您需要添加有助于识别给定不同参数的训练短语:
在对话过程中,当检测到此意图时,代理将尝试匹配所有必需的参数,并询问缺少的信息。最后,您将可以访问以下信息:
考虑到这种意图很快就会变得难以管理。尝试为您的参数使用明确定义的实体和大量训练短语(请注意,在一个训练短语中您可以收集多个参数,例如 "My name is Xyz and I'm 27")。
我创建了一个实体 "editable",条目为{name, age, color, place}
bot:select 一个更新选项[选项是{name, age, color, place}]
用户:姓名
机器人:输入你的名字?
用户:Xyz
bot:记录已更新。 select 一个更新选项[选项是{name, age, color, place}]
这个很好用
但是如果用户说类似“my name is Xyz”的内容来更新名称。
bot:select 一个更新选项[选项是{name, age, color, place}]
用户:姓名
机器人:输入你的名字?
用户:我的名字是Xyz
机器人:输入你的名字。
当用户在他的短语中包含 "name" 时,机器人会将其与实体匹配并再次询问相同的问题。 如何解决这个问题,我只想提取 "Xyz" 尽管他使用短语 "my name is Xyz".
您可以使用 contexts 来处理对话的流程。上下文用于帮助 dialogflow 检测正确的意图。输出上下文是检测到意图后创建的上下文,输入上下文是检测到意图所需的上下文。
想想 dialogflow 上下文,作为对话的真实上下文,您可以在交互后期待一些短语。
下面是一个使用 3 个意图进行对话的示例:
- "Default welcome"
- "Updating name selection"
- "Updating name"
对话
检测到意图:默认欢迎
代理人说:"Select an option to update [options are {name, age, color, place}]"
输出上下文:"select-option"
用户说:"name"
输入上下文:"select-option"
检测到意图:正在更新名称选择
代理人说:输入您的姓名
输出上下文:"update-name"
用户说:"My name is Xyz"
输入上下文:"update-name"
检测到意图:更新名称
代理人说:"record updated"
除此之外,还有follow-up intents用于此场景,优点之一是在后续意图中,自动创建上下文。
参数
您可以在同一个意图中获取所有要更新的信息。为此,您可以根据需要添加参数并利用 slot filling。请注意,您可以指定询问这些参数时要使用的定义提示。
您需要添加有助于识别给定不同参数的训练短语:
在对话过程中,当检测到此意图时,代理将尝试匹配所有必需的参数,并询问缺少的信息。最后,您将可以访问以下信息:
考虑到这种意图很快就会变得难以管理。尝试为您的参数使用明确定义的实体和大量训练短语(请注意,在一个训练短语中您可以收集多个参数,例如 "My name is Xyz and I'm 27")。