【问题标题】:Dialogflow regex entity similar to @sys.anyDialogflow 正则表达式实体类似于@sys.any
【发布时间】:2020-10-30 15:22:29
【问题描述】:

我有许多意图提取一个几乎可以是任何东西的参数。一个例子是公司名称。那里有很多变化:“VWR”、“1-800-Flowers”、“#1 Mufflers”。此列表可以包含多种语言的名称。

我现在正在使用@sys.any 实体,但如果文本包含数字或标点符号,它就不能正常工作。我得到这个参数,例如:“1 - 800 - Flowers”。数字和标点周围有空格。

我希望 Regex 实体能够解决我的问题,但在保存时它会抛出错误,并且说它太宽泛了。 \S+[\s\S]*\S+ 将捕获任何语言的任何内容。以下是错误:“com.google.apps.framework.request.BadRequestException: Validate entity with entityName 'RegexAny' and entityId '149486a3-7a49-4171-b23c-860f7d47b713' failed because of the following reasons: Regular expression match is too broad : \S+[\s\S]*\S+."

我怎样才能绕过这个无益的限制并在用户输入 id 时捕获他们的输入?

【问题讨论】:

    标签: dialogflow-es


    【解决方案1】:

    我也遇到过这个问题。我所做的是使用 @sys.any 参数并在我的履行代码中进行正则表达式检查。在这里您可以删除任何标点符号和空格。如果您决定这样做,我建议您删除任何输出上下文并在找到与该正则表达式匹配的情况下以编程方式设置它们。如果没有匹配,我将设置与该意图的输入上下文相同的上下文。 这非常有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2022-06-17
      相关资源
      最近更新 更多