如何创建像 @sys.airport 一样工作的 Dialogflow 自定义实体?

How do I create a Dialogflow custom entity that works like @sys.airport?

由于@sys.airport 仅适用于默认的英语语言环境,我想创建一个自定义实体来模拟其他语言环境。 根据我的阅读 here,您可以将子实体类型放入值字段中,例如,系统实体 @sys.geo-city:city 和自定义实体 @usr.iata-代码: iata,它将匹配其中一个。

但我不明白您如何告诉 Dialogflow 哪个城市和哪个 IATA 代码放在一起,以便 Dialogflow (ES) 知道发送完整的对象 {"city":"Amsterdam", "iata" : "AMS"} 在匹配“Amsterdam”或“AMS”后发送到 webhook,就像@sys.airport.

一样

感谢任何意见!

很难创建像@sys.airport 一样工作的自定义实体。 @sys 实体很特殊,可以做一些自定义实体不能做的事情,例如,将值配对在一起。

正如您所指出的,您可以使用 Composite Entities 将多个实体放在一个实体中,但这样做的唯一作用是让您识别由其他 @sys 或自定义实体组成的两个值在一个实体中。它没有为您提供在实体值之间创建对的选项。

如果您想创建这样的东西,您需要一些代码来查找字典或列表。所以当匹配到“AMS”时,代码会补上缺失的属性“Amsterdam”,反之亦然。