如何在 Alexa 技能中为航班代码定义自定义插槽类型?



我想为航班代码创建一个德语自定义插槽类型。航班代码由航空公司的简短缩写组成,例如

EZY, DLH, AFR, ABY, AAL, RYR, DAL, ...

以及 3 到 5 位数字,例如

352, 5832, 84544, ...

因此,插槽类型示例应如下所示:

EZY582, AFR5583, RYR19, DAL2912, ...

那么,创建这样的老虎机类型的最佳选择是什么?请记住,我使用德语。

首先,我尝试使用两种不同的插槽类型作为承运人代码和航班号:

FLIGHT_CODE and AMAZON.NUMBER

存在很多问题,即使语音提示明确要求同时同时请求这两种插槽类型,模型也只能识别FLIGHT_CODE。

其次,我尝试使用语音正确的值定义插槽类型:

"e. z. y. drei vier acht"

但是"E. Z. Y."无法正确匹配。是否有获得此类组合类型的最佳实践?特别是通过包含像"E. Z. Y."这样的缩写,在德语中发音会非常不同?提前谢谢你。

可能已经晚了,但如果有人有同样的问题,这就是我解决它的方式。我没有找到合适的方法来为航班代码本身指定插槽。但是,您可以提示输入航空公司名称和 3 到 5 位数字。话语中的内容如下:

{airline_name} {flight_number}

有一个内置的插槽类型称为AMAZON.Airline.因此,airline_name的类型将是AMAZON.AIRLINE的,numberAMAZON.NUMBER。可以扩展内置类型以处理分辨率和验证。您可以遵循本指南:https://developer.amazon.com/docs/custom-skills/slot-type-reference.html#h2_extend_types

这样,您可以为每个航空公司分配一个 ID 和同义词:

Slot types: AMAZON.AIRLINE
Value | ID | Synonyms 
American Airlines | AA | American
LATAM Airlines | LA | LAN, LATAM
...

这样,您就可以访问 JSON 中的解析字段,并获取航空公司 ID。您还可以添加验证以比较扩展类型的字段:

"dialog": {
"intents": [
{
"name": "FlightIntent",
"confirmationRequired": false,
"prompts": {},
"slots": [
{
"name": "airline_name",
"type": "AMAZON.Airline",
"confirmationRequired": false,
"elicitationRequired": false,
"prompts": {},
"validations": [
{
"type": "hasEntityResolutionMatch",
"prompt": "Slot.Validation.1129359808444.140964634934.1466054813690"
}
]
},
...
"prompts": [
{
"id": "Slot.Validation.1129359808444.140964634934.1466054813690",
"variations": [
{
"type": "PlainText",
"value": "Please tell me the name of the airline followed by the number"
}
]
}

相关内容

  • 没有找到相关文章

最新更新