alexa - 如何在 Alexa Skill 中为航班代码定义自定义插槽类型?
问题描述
我想为航班代码创建一个德国自定义插槽类型。航班代码由航空公司的缩写组成,例如
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"
但“ezy”将无法正确匹配。是否有获得此类组合类型的最佳实践?尤其是包含诸如“EZY”之类的缩写,在德语中的发音会非常不同?先感谢您。
解决方案
可能已经晚了,但如果有人遇到同样的问题,这就是我解决它的方法。我没有找到合适的方法来为航班代码本身指定一个插槽。但是,您可以提示输入航空公司的名称和 3 到 5 位数字。话语中有这样的东西:
{airline_name} {flight_number}
有一个内置的插槽类型称为AMAZON.Airline
. 所以 for 的类型airline_name
将是AMAZON.AIRLINE
和AMAZON.NUMBER
for 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"
}
]
}
推荐阅读
- c++ - 为什么移动 std::optional 不会重置状态
- c++ - 无法在 Visual Studio Community 2017 v.15.7.6 中打开文本文件 - 尝试了一切
- java - 如何查看在 Spring boot 中使用 Cassandra 时生成的 CQL
- arrays - 将数组从 React 客户端传递到 MongoDB
- neo4j - 合并从 CSV 中的两个 geohash 列创建的节点
- python - 存在的键上的 Python3 键错误?
- crystal-reports - Crystal Reports - 将带有变量的查询下推到服务器
- javascript - SVG 点击和切换
- python - Boost.Python 因静态库而失败
- python - 使用标记查询散景多线