Dialogflow es 有没有办法只提取参数而不是实体?

Dialogflow es 有没有办法只提取参数而不是实体?,dialogflow-es,actions-on-google,chatbot,Dialogflow Es,Actions On Google,Chatbot,我已经创建了一个“可编辑”实体,其条目为{name,age,color,place} bot:选择要更新的选项[选项为{名称、年龄、颜色、地点}] 用户:姓名 机器人:输入你的名字 用户:Xyz 机器人:记录已更新。选择要更新的选项[选项为{姓名、年龄、颜色、地点}] 这个很好用 但是如果用户说“我的名称是Xyz”之类的话来更新名称 bot:选择要更新的选项[选项为{名称、年龄、颜色、地点}] 用户:名称 机器人:输入你的名字 用户:我的名称是Xyz 机器人:输入你的名字 当用户在短语中包含“n

我已经创建了一个“可编辑”实体,其条目为{name,age,color,place}

bot:选择要更新的选项[选项为{名称、年龄、颜色、地点}]

用户:姓名

机器人:输入你的名字

用户:Xyz

机器人:记录已更新。选择要更新的选项[选项为{姓名、年龄、颜色、地点}]

这个很好用

但是如果用户说“我的名称是Xyz”之类的话来更新名称

bot:选择要更新的选项[选项为{名称、年龄、颜色、地点}]

用户:名称

机器人:输入你的名字

用户:我的名称是Xyz

机器人:输入你的名字

当用户在短语中包含“name”时,bot会将其与实体匹配,然后再次询问相同的问题。 如何解决这个问题,我只想提取“Xyz”,尽管他使用了短语“我的名字是Xyz”。

你可以用它来处理对话的流程。上下文用于帮助dialogflow检测正确的意图。输出上下文是在检测到意图后创建的上下文,而输入上下文是检测意图所需的上下文

将dialogflow上下文视为对话的真实上下文,在交互之后,您可以使用一些短语

下面是一个使用3个意图进行此对话的示例:

  • “默认欢迎”
  • “正在更新名称选择”
  • “正在更新名称”
对话

检测到意图:默认欢迎

代理说:“选择一个选项来更新[选项是{姓名、年龄、颜色、地点}]”

输出上下文:“选择选项”


用户说:“名字”

输入上下文:“选择选项”

检测到意图:更新名称选择

代理人说:输入你的名字

输出上下文:“更新名称”


用户说:“我的名字是Xyz”

输入上下文:“更新名称”

检测到意图:正在更新名称

代理说:“记录更新”


除此之外,还有一些用于此场景的上下文,其优点之一是在后续意图中,上下文是自动创建的

参数

您可以在相同的目的下获得所有要更新的信息。为此,可以根据需要添加参数并利用。请注意,您可以指定在请求这些参数时使用的定义提示

您需要添加有助于确定不同参数的培训短语:

在对话过程中,当检测到此意图时,代理将尝试匹配所有必需的参数,并询问缺少的信息。最后,您将可以访问以下信息:


考虑到这种意图很快就会变得难以管理。尝试使用定义良好的实体作为参数,并使用大量的培训短语(注意,在一个培训短语中,您可以收集多个参数,例如,“我的名字是Xyz,我是27”)。

感谢您的回复,但问题是如果我使用上下文,我必须对实体的每个值{名称、年龄、颜色、位置}进行两次更新。你能不能用一个例子来解释一下,比如如何使用上下文用这三个意图更新所有的值{name,age,color,place}。我编辑了答案。检查“参数”部分。简言之,您可以在相同的目的下获得所有要更新的信息;但是,您应该小心,因为管理参数可能会变得困难。在我的情况下,参数不起作用,我必须更新名称字段并提供动态响应,然后用户将选择下一步必须更新的内容。如果用户只想更新一个参数,则您提供的解决方案将不起作用。如果我们使用参数,则用户必须回答更新单个参数的所有提示。若要每次交互仅更新一个参数,请将所有参数设置为可选参数。