如何在意向中获得金钱/货币价值?
我真的很惊讶,没有任何用于货币和/或货币值的插槽类型...目标是创建一个打算在发票上添加一些货币值的技能(技能链接到Web服务)。
“在发票上添加{value}美元”
我的第一个尝试是将{value}配置为AMAZON.Number并键入“向发票添加5.43美元”。这会将以下内容发送到我的Web服务
value": "?"
“向发票添加5美元”的结果是相同的。好的,看来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或仅添加十进制值...
那该如何解决呢?
答案 0 :(得分:0)
Dialog功能在这里可能会有所帮助,我认为您的Intent(金额)中必填。因此,您可以使用开发人员控制台定义Alexa应该询问的问题。
您可以使用某种状态管理来创建自己的-而不是使用内置的Dialog机制(可以使用会话存储在用户的答案之间保留状态)。所以当Alexa说“应该添加多少?”应该将状态设置为“ WAITING_FOR_AMOUNT”,然后打算在内部包含一些逻辑以接收小数-当存在“ WAITING_FOR_AMOUNT”状态时,执行某些操作等等。