如何让我的代理重复任何名称 - Dialogflow
How do I make my agent repeat any name - Dialogflow
我想制作一个可以重复我说的任何名字的代理:
我有 1 个名为:名称的实体。
我有 1 个名为:RepeatName 的 Intent。
我有 1 个训练短语:
"Repeat this name: {Name}"
然后我突出显示“{Name}”并单击我的实体@Name
然后在该训练短语下面是:
Parameter Name: Name
Entity: @Name
Resolved Value: {Name}
在操作和参数下我有:
Required: Checked
Parameter Name: Name
Entity: @Name
Value: $Name
在回复下我有文字回复:
"Ok. I'll repeat this name: $Name"
然后我尝试使用:
"Repeat this name: John"
但是它没有设置参数名称
但是当我尝试时:
"Repeat this name: Name"
然后我得到了预期的响应:
"Ok. I'll repeat this name: Name"
我不明白添加更多训练短语会有什么帮助,因为名称可以是任何名称。我是 Dialogflow 的新手,所以我可能在这里遗漏了一些基本概念。
如有任何帮助,我们将不胜感激。
问题是您正在使用 Developer Entity Type 来尝试定义您希望在此处捕获的参数。然后,您不为该实体类型指定任何可能的实体值,"name" 除外。所以名称 "name" 是唯一匹配的名称。
你有几个选择。
可以使用System Entity Type of @sys.given-name
。这包括特定语言的最常见名称,但如果您希望使用其他名称,可能还不够好。
您可以使用 @sys.any
的系统实体类型,但不建议过度使用此实体类型,因为它可能会收集垃圾或与短语不匹配。
同样,您可以将您的实体类型设置为 allow automated expansion,但您仍然 运行 如果您没有准确的训练短语并捡起垃圾,则仍然存在无法正确捕获事物的风险。
找出最适合您的选项将需要您进行一些测试。一般我会在能明确定义类型或别名的时候用entities,不能定义的时候用@sys.any
。
尝试使用内置系统实体 - @sys.given-name
。
您所做的是创建一个名为 Name
的实体,然后您启用了 define synonyms
,用于创建您的实体的示例。
但是你已经禁用了 allowed automated expansion
这意味着除了你定义的同义词之外的任何东西都不会被识别为你的实体。
您只定义了一个同义词,即 Name
,因此只有那个被识别。
因此,要么尝试使用经过预先训练以识别名称的 @sys.given-name
进行相同的尝试,要么在启用 allowed automatic expansion
后使用尽可能多的示例训练您的自定义实体 Name
(但这可能会导致识别错误的值)。
希望对您有所帮助。
我想制作一个可以重复我说的任何名字的代理:
我有 1 个名为:名称的实体。
我有 1 个名为:RepeatName 的 Intent。
我有 1 个训练短语:
"Repeat this name: {Name}"
然后我突出显示“{Name}”并单击我的实体@Name
然后在该训练短语下面是:
Parameter Name: Name
Entity: @Name
Resolved Value: {Name}
在操作和参数下我有:
Required: Checked
Parameter Name: Name
Entity: @Name
Value: $Name
在回复下我有文字回复:
"Ok. I'll repeat this name: $Name"
然后我尝试使用:
"Repeat this name: John"
但是它没有设置参数名称
但是当我尝试时:
"Repeat this name: Name"
然后我得到了预期的响应:
"Ok. I'll repeat this name: Name"
我不明白添加更多训练短语会有什么帮助,因为名称可以是任何名称。我是 Dialogflow 的新手,所以我可能在这里遗漏了一些基本概念。
如有任何帮助,我们将不胜感激。
问题是您正在使用 Developer Entity Type 来尝试定义您希望在此处捕获的参数。然后,您不为该实体类型指定任何可能的实体值,"name" 除外。所以名称 "name" 是唯一匹配的名称。
你有几个选择。
可以使用System Entity Type of @sys.given-name
。这包括特定语言的最常见名称,但如果您希望使用其他名称,可能还不够好。
您可以使用 @sys.any
的系统实体类型,但不建议过度使用此实体类型,因为它可能会收集垃圾或与短语不匹配。
同样,您可以将您的实体类型设置为 allow automated expansion,但您仍然 运行 如果您没有准确的训练短语并捡起垃圾,则仍然存在无法正确捕获事物的风险。
找出最适合您的选项将需要您进行一些测试。一般我会在能明确定义类型或别名的时候用entities,不能定义的时候用@sys.any
。
尝试使用内置系统实体 - @sys.given-name
。
您所做的是创建一个名为 Name
的实体,然后您启用了 define synonyms
,用于创建您的实体的示例。
但是你已经禁用了 allowed automated expansion
这意味着除了你定义的同义词之外的任何东西都不会被识别为你的实体。
您只定义了一个同义词,即 Name
,因此只有那个被识别。
因此,要么尝试使用经过预先训练以识别名称的 @sys.given-name
进行相同的尝试,要么在启用 allowed automatic expansion
后使用尽可能多的示例训练您的自定义实体 Name
(但这可能会导致识别错误的值)。
希望对您有所帮助。