设置插槽的默认值以循环结束



我正在学习alexa技能,在对话框模型中设置插槽的默认值时遇到了一些问题。

我有4个插槽的意图,我想在床上给其中2个默认值。这是我尝试的代码:

我创建了一个intent对象并设置了值。

updatedIntent = {
"name": "Training",
"confirmationStatus": "NONE",
"slots": {
"slot1": {
"name": "slot1",
"value": "",  /// HERE I ADDED "" BECAUSE THIS VALUE SHOULD BE FILLED BY THE USER
"resolutions": {
"resolutionsPerAuthority": [
{
"authority": "",
"status": {
"code": "ER_SUCCESS_MATCH"
},
"values": [
{
"value": {
"name": "Pferde",
"id": "e036baff329d97ae8387f195b27fe9af"
}
}
]
}
]
},
"confirmationStatus": "NONE"
},
"slot2": {
"name": "slot2",
"value": "test", //HERE FOR SLOT2 I ADDED MY DEFAULT VALUE "TEST"
"resolutions": {
"resolutionsPerAuthority": [
{
"authority": "",
"status": {
"code": "ER_SUCCESS_MATCH"
},
"values": [
{
"value": {
"name": "Fische",
"id": "4adf750f60e18ab47f596aeb5b838733"
}
}
]
}
]
},

之后,我通过:delegate返回了updatedIntent。

this.emit( this.emit(':delegate', updatedIntent));

Soo现在slo2已经满了,Alexa没有问我这个。但是slot1没有填充(只有"(,所以alexa问我"给我slot1的值?"我给出的答案是"test"。Input Intent现在已填充slot1=test。但它不会覆盖输出Intent中的"。于是Alexa再次问我"给我slot1的值?"。不管我说什么,它都不会填满树懒。它以循环结束。

我做错了什么?也许语法错误?还是我必须将输入意图opject签名为updatedIntent?

谢谢你的帮助。

我不明白为什么要将slot1的值设置为空字符串。如果你的意图是将slot1的默认值设置为零,那么你就不必做任何事情,这就是你默认得到的。如果未设置插槽值,则插槽中不存在"value"属性。只有当存在(非空(值时,它才存在:

"slots": {
"marca": {
"name": "marca",
"confirmationStatus": "NONE"
},
"precio": {
"name": "precio",
"confirmationStatus": "NONE"
},
"color": {
"name": "color",
"value": "roja",
"confirmationStatus": "NONE"
},
"talla": {
"name": "talla",
"value": "grande",
"confirmationStatus": "NONE"
}
}

最新更新