先前有寫過Skill的朋友一定知道, 如果要開發一個Alexa Skill, 我們必須先登陸Amazon 的帳號, 然後再到Alexa Developer Console建立Skill, 除了填寫Skill的相關資訊之外, 還需要定義 Language Model, 最後綁定我們的Lambda 服務 ...
一整個做下來, 在還沒開發程式就已經耗了30-40分鐘了, 尤其日後想要修改Language Model的話, 我們還需要重新登錄Alexa Developer Console, 找到我們先前定義的Skill, 然後補上新的Intent, Utterance, 或是Slot
現在, 以上的動作通通可以自動化, 因為Amazaon 提供 ASK-CLI 的工具, 讓我們可以在本機端使用它的指令來存取Skill, 包含下載上傳Skill 或是對應的Lambda 程式碼
以下介紹如何使用ASK-CLI
Prerequisite:
須設定完aws-cli
Step 1. 安裝 ask cli
> sudo npm install -g ask-cli
Step 2. 設定使用者資料
ask init --no-browser
建立資料並連結你的AWS使用者資料此時會獲得一組Url
我們必須打開瀏覽器貼上這組Url做認證
再將回傳的認證碼傳回給ask cli
以上動作完成後就可以來建立 Skill ~
Step 3. 建立skill
> ask new --template Trivia --skill-name hello-world --lambda-name hello-world-lambda
--template Trivia 是指使用現成的範例來修改目前支援的範例有:
- How To
- Pet Match
- Quiz Game
- Team Lookup
- Trivia
- City Guide
- Decision Tree
- Fact
- Feed
- High Low Game
!如果無法成功直行這個指令地話
可以試試底下方法, 直接指定範例的來源
> ask new --url https://github.com/alexa/skill-sample-nodejs-trivia.git
Step 4. 修改Skill的內容(Optional)
(1) Skill.json
{
"manifest": {
"publishingInformation": {
"locales": {
"en-US": {
"summary": "Sample Short Description",
"examplePhrases": [
"Alexa open hello world",
"Alexa tell hello world",
"Alexa ask hello world"
],
"keywords": [],
"name": "Hello-world",
...
(2) Interaction Model (/models/en-US.json)
定義語意分析的邏輯讓Alexa有能力了解使用者的意圖
{
"interactionModel": {
"languageModel": {
"invocationName": "Hello world",
"intents": [
{
"name": "AMAZON.CancelIntent",
"samples": []
},
{
"name": "AMAZON.HelpIntent",
"samples": []
},
{
"name": "CheckSerailNumber",
"samples": [
"what is my serial number"
]
},
{
"name": "GetManual",
"samples": [
"where to get user manual",
"where to get manual",
"where to fidn user manual",
"where can i download user manual"
]
},
...
...
Step 5. 部屬
> ask deploy
做完這個動作之後, Skill資訊以及Lambda的程式碼都會被上傳到雲端上補充:
1. 如何下載既有的Skill
每個Skill 都會有他自己專屬的Skill Id, 我們可以在Alexa developer console 上找到
我們可以用這個Skill Id 來下載Skill 以及Lambda程式碼
> ask clone --skill-id y781t75d97t97329dasd
> ask lambda upload -f "YOUR_LAMBDA_FUNCTION"
使用ask cli 指令快速建立alexa skill, Part II(更新language model)
留言
張貼留言