2017-08-06 129 views
0

我正在尝试创建一个可以将多个词作为输入并可以将其读出给用户的alexa技能。这是我的意图架构:在Alexa技巧中输入多个词

{ 
 
    "intents": [ 
 
    { 
 
     "intent": "AMAZON.CancelIntent" 
 
    }, 
 
    { 
 
     "intent": "AMAZON.StopIntent" 
 
    }, 
 
    { 
 
     "intent": "AMAZON.HelpIntent" 
 
    }, 
 
    { 
 
     "intent": "madlibIntent", 
 
     "slots": [ 
 
     { 
 
      "name": "STEPVALUE", 
 
      "type": "AMAZON.LITERAL" 
 
     }, 
 
     { 
 
      "name": "duration", 
 
      "type": "AMAZON.NUMBER" 
 
     } 
 
     ] 
 
    } 
 
    ] 
 
}

我使用AMAZON.LITERAL采取多个单词来自用户的输入。我的话语样品下面给出:

madlibIntent begin madlib madlibIntent build madilb madlibIntent {z|STEPVALUE} madlibIntent {z z|STEPVALUE} madlibIntent {duration}

的问题是:它可以采取一个字作为输入时发出,可以读出。但是,如果用户说多个词,它不能把任何单词作为输入。例如:它可以把'好'作为输入,但不会'非常好'。 任何人都可以帮我找出它有什么问题吗?

回答

0

我找到了解决方案!样品话语应该写成这种形式:

madlibIntent begin madlib 
madlibIntent build madilb 
madlibIntent {STEPVALUE} 
madlibIntent {STEPVALUE} {STEPVALUE} 
madlibIntent {STEPVALUE} {STEPVALUE} {STEPVALUE} 

您需要创建自定义插槽与一,二,三句话,而不是仅仅使用AMAZON.LITERAL,以便它可以采取一个,两个或三个词作为输入。如果您要输入四个或更多单词作为输入,只需在Sample utterances中创建更多行并继续添加{STEPVALUE}或您的自定义意图名称即可。