如何在缩进中获得货币/货币价值?
我真的很惊讶没有用于货币和/或货币价值的插槽类型的构建......目标是创建一个向发票添加一些货币价值的意图(技能链接到Web服务)。
“将{value}美元添加到发票中”
我的第一次尝试是将{value}配置为AMAZON.Number并键入“将5.43美元添加到发票”。这将以下内容发送到我的Web服务
value": "?"
“Add 5 doller to invoice”的结果是一样的。好吧,似乎AMAZON.Number只能处理书面数字,所以“添加5美元发票工作”。这很好,因为在开发环境之外,用户会说出命令而不是编写命令。
但是,分值呢?各种货币怎么样?
我在意图中添加了两个插槽:
"slots": [
{
"name": "intValue",
"type": "AMAZON.NUMBER",
},{
"name": "decimalValue",
"type": "AMAZON.NUMBER",
}
]
但是如何定义话语呢?当然我可以简单定义
Add {intValue} dollar {decimalValue} cents to invoice"
但这不会很灵活。应该可以使用......
为了解决前五点,我做了以下几点:
配置:
{
"name": "AddInvoiceValue",
"slots": [
{
"name": "intValue",
"type": "AMAZON.NUMBER"
},
{
"name": "decimalValue",
"type": "AMAZON.NUMBER"
},
{
"name": "currency",
"type": "Currency"
},
{
"name": "cents",
"type": "Cent"
}
],
"samples": [
"Add {decimalValue} {cents} to invoice",
"Add {intValue} {decimalValue} to invoice",
"Add {intValue} {currency} {decimalValue} to invoice",
"Add {intValue} {currency} to invoice"
]
}
问题:
最大的问题:
如何创建一个用户说“创建新发票条目”的对话框,Alexa回答“应该添加多少钱?”。
只有在需要插槽时才能创建对话框,但不需要使用任何插槽。应该可以仅添加intValue或仅添加十进制值...
那么如何解决这个问题?
Dialog功能在这里可能会有所帮助,在我看来,你的意图中需要插槽 - 金额。那么你可以使用Developer Console来定义Alexa应该问的问题。
您可以创建自己的 - 而不是使用内置的Dialog机制 - 使用一些状态管理(您可以使用会话存储来在用户的答案之间保持状态)。所以当Alexa说“应该加多少钱?”应该有一个状态设置为“WAITING_FOR_AMOUNT”,然后意图接收带有一些逻辑的小数 - 当存在“WAITING_FOR_AMOUNT”状态时,做某事等。