我正在为我的应用程序构建Alexa技能 . 当您询问'我的帐户状态是什么时?'此意图返回与用户帐户相关的语句序列 . API提供以下响应
response = [{
..
text: 'Total orders are 41, Delivered 28'
..
},
{
..
text: 'Today orders are 12, Delivered 2'
..
},
{}]
如何基于API响应构建响应序列?
有了这个意图,我从API获得了带有set语句的响应,Alexa应该逐个提示每个语句 . 如果用户在任何语句之间说“下一个”,而Alexa提示则转到响应数组中的下一个语句 .
2 回答
首先,当用户说
"what is my account status?
“您的意图将被调用,您将在列表中得到响应,在第一次调用中您将显示第0项 .API结果:
您需要在Session属性中存储信息,例如您显示的意图名称,索引(在第一次调用时为0)等 .
现在,您需要再设置一个将在
next
之类的关键字上触发的意图 . 在代码中,您将检查会话属性的值,并根据值进行响应 . 例如,您需要检查先前的意图名称,先前的索引 . 如果一切正常,您将修改会话属性并响应用户 .希望能帮助到你 .
既然你提到了Python,我建议看看Flask-ask,它为你提供了两种主要的响应类型:语句和问题 .
正如sid8491所提到的,您需要在会话中存储信息以跟踪需要返回的响应(来自json) . 您可以使用redis来实现此目的,使用this python库 .
假设json响应存储在db(或某处)中,并且可以在列表中访问,那么假设您的交互模型看起来像这样:
您可以使用以下步骤(对于此示例,使用redis和flask-ask):
这不是实际的代码,只是为了给你一个想法 . 希望能帮助到你 .
:)