2017-10-19 183 views
2

我是Alexa發展中的新成員。我已經使用AWS lambda函數和Node.js代碼成功創建了一項Alexa技能。這是我的意圖模式。如何將位置值動態添加到alexa技能

{ 
    "intents": [ 
    { 
     "slots": [ 
     { 
      "name": "locationName", 
      "type": "LOCATION_LIST" 
     } 
     ], 
     "intent": "locationIntent" 
    } 
    ] 
} 

此外,我用自定義插槽類型「LOCATION_LIST」以下值。

kitchen 
bedroom 
bathroom 
dining area 

它工作正常。但我需要從我自己的服務中動態添加更多位置值。可能嗎?

基於我的系統架構,我們不能預先定義位置名稱。那我該怎麼辦?

回答

0

不,您不能動態添加插槽。也許是一個很簡短的答案,但這是事實。

亞馬遜並沒有默認插槽以符合您的要求。如果是像其他城市一樣的城市,那麼就有像「AMAZON.City」這樣的內置插槽。這裏唯一可能的方法是在自定義插槽中添加儘可能多的位置。您可以在自定義廣告位中擁有最多50,000個廣告位值(在交互模型中使用的所有自定義廣告位總計)。

https://developer.amazon.com/docs/custom-skills/custom-interaction-model-reference.html#custom-slot-type-values

+1

你是正確的,新的插槽不能動態添加。但阿卜杜勒似乎在詢問獲得額外的插槽值,而不是增加新的插槽或插槽類型。所以這部分是可能的,如我的答案中所述。 –

2

是的,有可能實現你的要求。

首先,讓我們來了解一下槽的工作原理。作爲this Alexa的博客中描述:

「當你創建一個自定義插槽類型,一個關鍵的概念理解是,這是對Alexa的NLP訓練數據(自然語言處理)您提供的值不是。嚴格枚舉或數組限制用戶可以說,這有兩個含義1)不在您的插槽值中的單詞和短語將傳遞給您,2)如果所說的內容未知,您的代碼需要執行您所需的任何驗證。

這意味着您可以在SLOT定義中未明確列出的插槽中接收單詞。所以你只需要在SLOT列表中提供足夠的單詞示例來幫助Alexa NLP引擎。

我建議您嘗試一下當前的實現,並嘗試替換不同的位置,看看Alexa是否可以識別並返回它。嘗試將插槽值寫入日誌並查看。你可能會感到驚喜。

相關問題