Alexa插槽AMAZON.DATE处理没有年限的日期

时间:2017-09-20 09:38:08

标签: alexa alexa-skills-kit alexa-skill alexa-slot

我正在构建Alexa技能并使用AMAZON.DATE插槽类型来获取日期。

我的问题是当用户说出没有一年的日期时,Alexa会对其进行处理并返回带有未来日期的日期字符串。

示例 - 今天为2017-09-20,用户向Alexa询问日期'Sixth June',Alexa返回2018-06-06

我想使用最接近的过去日期而不是最接近的未来日期,用于用户未在话语中指定年份的情况。如果用户指定年份,我不想更改日期年份。

我无法使用Python在AWS Lambda上处理此问题,因为Alexa会在JSON正文中发送完整的日期字符串,无论用户是否提供年份。

我不知道是否可以使用Alexa处理此类用户输入。我可以对AMAZON.DATE插槽或其他方式处理此类用户话语吗?

1 个答案:

答案 0 :(得分:1)

内置日期时段

无法做到这一点

映射到特定日期(例如“今天”或“十一月二十五”)的话语将转换为完整日期:2015-11-25。 请注意,默认为当前日期或之后的日期。

来源: - https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference#date

您可以尝试的一个逻辑是执行自定义逻辑。取当今日期和明年用户输入日期之间的差异。如果它们之间的月份差异大于6个月,那么最接近的将是未来日期。如果差异小于过去6个月的日期。假设用户在7月25日(2017年)提交输入,今天日期是2017年8月25日。现在您可以在7月25日添加1年,然后在2018年7月25日到期。2017年7月25日到2017年8月25日之间的差异大于6个月所以你想要的日期是过去的日期,即2017年7月25日,反之亦然。为了更准确,您可以计算天数而不是几个月