2017-04-20 64 views
0

我一直有一段時間搞清楚如何讓Alexa內置插槽正常工作,我覺得我必須失去一些超級根本。爲了爲您設置,我將從Developer Portal的測試頁面開始。我正在使用node.js 6.10。Alexa內置插槽類型:沒有任何值通過

下的文字發聲服務模擬器,如果I型 「我需要5個睡眠週期」,它生成一個請求爲這樣:

"intent": { 
 
    "name": "SleepCyclesIntent", 
 
    "slots": { 
 
    "number": { 
 
     "name": "number" 
 
    } 
 
    } 
 
}

結果是: 「文本」:「我現在知道你想要NaN睡眠週期。「 請注意缺少從話語中生成的「值」字段。

但是,當我在JSON請求中手動插入「值」字段時,我得到了期望的輸出!

"intent": { 
 
     "name": "SleepCyclesIntent", 
 
     "slots": { 
 
     "number": { 
 
      "name": "number", 
 
      "value": "5" 
 
     } 
 
     } 
 
    }

的結果是: 「文」: 「我現在知道了,你要5個睡眠週期。」

在我遇到這個問題之前,我已經設置了默認意圖編輯器,而且我已經切換到beta intents編輯器,希望能夠解決我可能會做錯的任何事情。在那裏,在發送到sleep_cycles的「SleepCyclesIntent」下,我有一個話語「我需要{數字}睡眠週期」,其中[number}是AMAZON.NUMBER的插槽類型。

有關更多的參考,如果它是有幫助的,這裏是我的代碼相關的塊超過在LAMBDA:

function sleep_cycles(intent, session, callback) { 
 
    const cardTitle = "Sleep Cycles"; 
 
    let repromptText = ''; 
 
    let sessionAttributes = {}; 
 
    const shouldEndSession = true; 
 
    let speechOutput = ''; 
 
    
 
    let targetCycles = intent.slots.number.value; 
 
    
 
    speechOutput = "I now know that you want " + targetCycles + " sleep cycles.";

我道歉,如果這是一個非常愚蠢的問題,但我在過去的一週裏,我一直在挖掘論壇和亞馬遜的Alexa幫助和谷歌,我不知道還有什麼可以轉身。任何幫助將超級讚賞!

回答

2

啊geeze,我是一個巨大的friggin'doofus。一位朋友看到了這一點,並要求我嘗試在測試提示中輸入自然語言,現在它就像一種魅力。如果有人發生此錯誤,請參考以下內置插槽類型參考URL:https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference#number

+0

謝謝!我遇到了同樣的問題並且感到困惑,因爲即使Alexa獲得了正確的意圖,但Alexa仍然錯誤地提示錯誤,因此我沒有這個問題。當我解決了這個問題時,在模擬器中開始出現缺少AMAZON.NUMBER插槽值的問題。這絕對有幫助。 –