Slide 1

Slide 1 text

Amazon Alexa Dev – [email protected] Amazon Alexa Skills Development 101 Ryan Chung III Digital Education Institute 1

Slide 2

Slide 2 text

Amazon Alexa Dev – [email protected] Amazon Alexa Development • 概述 • 開發流程介紹 • 實作:Hello World! • 實作:ASK CLI • 實作:Hello CLI • 實作:讀取使用者輸入 • 實作:Alexa, tell me a cold joke. • 如何除錯? • 實作:增加美式感嘆詞 • 實作:隨機網路笑話 2

Slide 3

Slide 3 text

Amazon Alexa Dev – [email protected] Amazon Alexa Development • 官方範例:Quiz Game Skill • 官方範例:Trivia Skill • 官方範例:How-To Skill • 官方範例:Team Look up • 上架資訊 3

Slide 4

Slide 4 text

Amazon Alexa Dev – [email protected] Alexa Devices $179.99 US$49.99 US$129.99 插電使用 插電使用 電量充飽 約9hr 聲控 聲控 按鈕 / 聲控 單聲道 立體聲 立體聲 & 杜比 4

Slide 5

Slide 5 text

Amazon Alexa Dev – [email protected] Amazon Echo Look • US$199.99 5

Slide 6

Slide 6 text

Amazon Alexa Dev – [email protected] Amazon Echo Look • 依據合身度、顏色、樣式與當前趨勢進行判斷 6

Slide 7

Slide 7 text

Amazon Alexa Dev – [email protected] Amazon Echo Show • US$229.99 7

Slide 8

Slide 8 text

Amazon Alexa Dev – [email protected] amazon echo family https://www.amazon.com/Amazon-Echo-And-Alexa-Devices/b?ie=UTF8&node=9818047011 8

Slide 9

Slide 9 text

Amazon Alexa Dev – [email protected] 網頁模擬測試 9 https://echosim.io

Slide 10

Slide 10 text

Amazon Alexa Dev – [email protected] 網頁/APP 模擬 https://reverb.ai/ 10

Slide 11

Slide 11 text

Amazon Alexa Dev – [email protected] Alexa Everywhere! 11

Slide 12

Slide 12 text

Amazon Alexa Dev – [email protected] 56,750 第三方技能 Alexa News 13 付費技能 In Skill Purchase Amazon Pay 1億 智慧喇叭銷售 89 國家可訂購Echo 6 語言 (英德西法意日) Source: Voicebot.ai 2018/12 英式英文 美式英文 加拿大式英文 印度式英文 澳洲式英文

Slide 13

Slide 13 text

Amazon Alexa Dev – [email protected] Alexa Skill Store 14 https://www.amazon.com/alexa-skills/b?ie=UTF8&node=13727921011

Slide 14

Slide 14 text

Amazon Alexa Dev – [email protected] 最熱門的技能種類 (2018/10) 1. Games, Trivia & Accessories (Over 8000) 2. Music & Audio(Over 5000) 3. News (Over 4000) 4. Education & Reference(Over 4000) 5. Lifestyle(Over 4000) 6. Novelty & Humor (Over 2000) 7. Productivity (Over 1000) 8. Smart Home (Over 1000) 9. Business & Finace (Over 1000) 10.Health & Fitness (Over 1000) 15

Slide 15

Slide 15 text

Amazon Alexa Dev – [email protected] Alexa可以幹麻? 16

Slide 16

Slide 16 text

Amazon Alexa Dev – [email protected] 播放電影預告片 Show me some latest movies. Play the trailer for number X. 17 https://www.youtube.com/watch?v=aKg85qEFMHs

Slide 17

Slide 17 text

Amazon Alexa Dev – [email protected] 播放音樂 • Just say, “Alexa!” and then… – “Play [song name] by [artist]”. – “Pause” pauses the currently playing track. – “Play [Discover Weekly] playlist”. – “Volume up/down” turns volume up or down. – “Stop” stops the currently playing track. 19

Slide 18

Slide 18 text

Amazon Alexa Dev – [email protected] 可以跟Alexa聊什麼? Who is the president of united states? The US President is Donald Trump. 20

Slide 19

Slide 19 text

Amazon Alexa Dev – [email protected] 可以跟Alexa聊什麼? Are you hungry? I don't get hungry or thirsty, but thank you for asking. 21

Slide 20

Slide 20 text

Amazon Alexa Dev – [email protected] 可以跟Alexa聊什麼? Do you have a brain? I don't have a brain like you do. My smarts live in the cloud. 22

Slide 21

Slide 21 text

Amazon Alexa Dev – [email protected] 可以跟Alexa聊什麼? How old are you? In years if you're counting it's three. 23

Slide 22

Slide 22 text

Amazon Alexa Dev – [email protected] 可以跟Alexa聊什麼? Are you hot? No, I don't really feel hot or cold, but thanks for asking. 24

Slide 23

Slide 23 text

Amazon Alexa Dev – [email protected] 可以跟Alexa聊什麼? Can you speak Chinese? I speak fluent English and conversational Pig Latin. My accent is atrocious, but it's good enough to keep me from getting lost in Pig Latium. 25

Slide 24

Slide 24 text

Amazon Alexa Dev – [email protected] 可以跟Alexa聊什麼? Pick a card Your card is the four of spades. 26

Slide 25

Slide 25 text

Amazon Alexa Dev – [email protected] 可以跟Alexa聊什麼? Roll a six sided die I rolled a die and got 4. 27

Slide 26

Slide 26 text

Amazon Alexa Dev – [email protected] 可以跟Alexa聊什麼? Flip a coin Flipping... it's heads. 28

Slide 27

Slide 27 text

Amazon Alexa Dev – [email protected] 可以跟Alexa聊什麼? Good morning Good morning, and happy birthday to comedian Ellen Degeneres. She's a funny lady who loves to dance. I'm pretty sure we'd be BFFs, if we ever got a chance to hang out! 29

Slide 28

Slide 28 text

Amazon Alexa Dev – [email protected] 可以跟Alexa聊什麼? How much are you? You can search on Amazon.com to see how much I cost. 30

Slide 29

Slide 29 text

Amazon Alexa Dev – [email protected] Voice Design Guide Amazon Alexa 31

Slide 30

Slide 30 text

Amazon Alexa Dev – [email protected] 語音助理技能設計方向 • 讓人們更快達成目的 • 語音控制音樂播放 Fast • 讓人們更簡單地達成目的 • 語音控制電燈開關、語音設定倒數計時 Easy • 增添生活趣味 • 具有挑戰性的遊戲 Fun Source: Voice Design Guide – Amazon Alexa 32

Slide 31

Slide 31 text

Amazon Alexa Dev – [email protected] 設計流程 Dialog Sketch Experience Flow Interaction Model 33

Slide 32

Slide 32 text

Amazon Alexa Dev – [email protected] 建立應用程式功用與使用者情境 • 界定用途與功能 – 這個技能的用途是什麼?為什麼大家會想要用? – 人們會怎麼使用這個技能,前中後的情境? – 人們可以從這個技能中得到什麼獨特的體驗,是別 的方式沒有的? • 界定使用者情境 – 使用者可以用這個技能做什麼、不能做什麼 – 使用者可以從這個技能中獲得什麼資訊? – 使用者如何啟動這個技能? – 這個技能有哪些特色? – 是不是有一些資訊需要從網站或APP中取得? 34

Slide 33

Slide 33 text

Amazon Alexa Dev – [email protected] 人機互動腳本準則 • 以人們真正會說的話來設計,而不是那種文章上的口吻 • 不要假設使用者知道要怎麼做或是知道會發生什麼事 真實 • 避免使用有多重含義的詞句、片語 • 引導使用者提供必要的資訊 明確 • 清楚地把選項呈現出來 • 一般而言,一次不要丟出超過三個選項 • 一次向使用者要一個資訊 簡單 35

Slide 34

Slide 34 text

Amazon Alexa Dev – [email protected] Alexa Skill Type • Custom skill – 網路服務介接 – 互動遊戲 • Smart Home Skill API – 開關燈 – 溫度控制 • Flash Briefing Skill API – 每日笑話 – 定時新聞 • Video Skill API 36

Slide 35

Slide 35 text

Amazon Alexa Dev – [email protected] Alexa Skill Kit • 前端:設定互動模式 – https://developer.amazon.com/alexa – Name, Invokation – Utterances, Slot type, Intent Schema • 後端:程式邏輯開發與儲存 – https://aws.amazon.com/tw/lambda/ – Node.js 37 Source: Codecademy

Slide 36

Slide 36 text

Amazon Alexa Dev – [email protected] ASK 設定 • Intent Schema – 使用者的意圖,以及對應可執行的動作 • Custom Slot Type – 特定資料型態與內容 • Sample Utterance – 例句,將使用者的輸入對應至意圖 38

Slide 37

Slide 37 text

Amazon Alexa Dev – [email protected] Alexa 處理流程 39

Slide 38

Slide 38 text

Amazon Alexa Dev – [email protected] 實作:Hello World 打開該技能,可以聽到歡迎語 跟它打招呼,它會有回應 40

Slide 39

Slide 39 text

Amazon Alexa Dev – [email protected] 前端:互動模式建立 • 在Amazon Developer站中的Alexa建立新技能 41 https://developer.amazon.com/

Slide 40

Slide 40 text

Amazon Alexa Dev – [email protected] 前端:互動模式建立 • 在Amazon Developer站中的Alexa建立新技能 42 https://developer.amazon.com/alexa

Slide 41

Slide 41 text

Amazon Alexa Dev – [email protected] 前端:互動模式建立 • 在Amazon Developer站中的Alexa建立新技能 43 https://developer.amazon.com/alexa-skills-kit • 第一次使用會需要建立帳號

Slide 42

Slide 42 text

Amazon Alexa Dev – [email protected] 前端:互動模式建立 • 在Amazon Developer站中的Alexa建立新技能 44 https://developer.amazon.com/alexa/console/ask

Slide 43

Slide 43 text

Amazon Alexa Dev – [email protected] 輸入技能名稱:HelloPractice 45 選擇 Custom model 自行建立客製化內容

Slide 44

Slide 44 text

Amazon Alexa Dev – [email protected] 設定為Alexa-Hosted Skill 46

Slide 45

Slide 45 text

Amazon Alexa Dev – [email protected] 選擇樣板 Template • 自行建置 Start from scratch 47

Slide 46

Slide 46 text

Amazon Alexa Dev – [email protected] 設定Invocation Name:my hello robot • 喚醒語,你的語音助理技能的名稱 48 my hello robot

Slide 47

Slide 47 text

Amazon Alexa Dev – [email protected] 前端:互動模式建立 • Name:HelloPracticeMMDD – 專案名稱,若有要上架就會是顯示的名稱 – 須介於2-50個字元 • Invocation Name:my hello robot – 喚醒語 – Alexa用以判斷要使用哪一個第三方的技能 – 使用案例「Alexa, open my hello robot.」 – 使用案例二「Alexa, ask my hello robot tell me a joke. 」 • 其他的用預設值 • Save model 49

Slide 48

Slide 48 text

Amazon Alexa Dev – [email protected] 前端:建立Intent • 檢查目前是不是有一個HelloWorldIntent,若無: – 在左邊的Intent區按下+建立新Intent – 取名為:HelloWorldIntent,建立 50 HelloWorldIntent

Slide 49

Slide 49 text

Amazon Alexa Dev – [email protected] 前端:建立Intent • 在HelloWorldIntent中,應該已看到一些例句,可 以增加更多打招呼的方式,然後按下Enter存入 – What's up – How you doing – Howdy 51

Slide 50

Slide 50 text

Amazon Alexa Dev – [email protected] 前端:建立Intent • 按下Save Model、Build Model • 模型建立完成後,前端設定即告一段落 52

Slide 51

Slide 51 text

Amazon Alexa Dev – [email protected] 檢視程式碼 • 按下上方分頁中的「Code」分頁 53 • 找到HelloWorldIntentHandler,變更一下回應 文字,按下上方的Save、再按下Deploy

Slide 52

Slide 52 text

Amazon Alexa Dev – [email protected] 測試 • 按下上方分頁中的「Test」分頁 • 設定為「Development」 54 • 在測試區輸入「ask my hello robot howdy」 • 如果有順利出現客製化的回應代表完成!

Slide 53

Slide 53 text

Amazon Alexa Dev – [email protected] Lab:修改技能開啟歡迎語 • 如何客製化「open my hello robot」的回應? – 開啟技能是由哪一個Intent處理器來負責的? 55

Slide 54

Slide 54 text

Amazon Alexa Dev – [email protected] Lab:在地環境開發 使用Visual Studio Code開發 運用 ASK CLI 部署、測試 57

Slide 55

Slide 55 text

Amazon Alexa Dev – [email protected] 安裝與設定ASK CLI Alexa Skills Kit Command Line Interface 58 https://developer.amazon.com/docs/smapi/quick-start-alexa-skills-kit-command-line-interface.html 1. Amazon Developer 帳號 2. 電腦安裝Node.js 3. 安裝Node.js的windows-build-tools套件(Win only) npm install -g --production windows-build-tools 4. 建立AWS IAM角色,足以存取Lambda的權限 https://developer.amazon.com/docs/smapi/manage-credentials- with-ask-cli.html#create-aws-credentials 5. 安裝與初始化ASK CLI npm install -g ask-cli ask init

Slide 56

Slide 56 text

Amazon Alexa Dev – [email protected] 開發前準備事項 • an Amazon Web Services (AWS) account • an AWS Profile • an Amazon Developer Portal account • the ASK CLI tool 59

Slide 57

Slide 57 text

Amazon Alexa Dev – [email protected] AWS Profile • 先確定已建立AWS帳號 • 進入 https://console.aws.amazon.com • 搜尋IAM,進入該服務 • Users -> Add user • 取名為cli-user、Access type將Programmatic access打勾 • 將AdministratorAccess打勾,Attach existing policies directly • Create user 60

Slide 58

Slide 58 text

Amazon Alexa Dev – [email protected] 讓cli-user有管理員存取權限 61

Slide 59

Slide 59 text

Amazon Alexa Dev – [email protected] AWS Profile Setup • 記下User Access Key ID 、Secret Access Key 62

Slide 60

Slide 60 text

Amazon Alexa Dev – [email protected] 本地電腦建立aws資料夾 63

Slide 61

Slide 61 text

Amazon Alexa Dev – [email protected] 裡面放config與credentials檔案 64 [my-cli-user-profile] region=us-east 1 aws_access_key_id=YOUR_ACCESS_KEY_ID aws_secret_access_key=YOUR_SECRET_ACCESS_KEY

Slide 62

Slide 62 text

Amazon Alexa Dev – [email protected] 65 安裝ASK CLI

Slide 63

Slide 63 text

Amazon Alexa Dev – [email protected] ASK CLI Setup - Profile • 終端機 ask init –p my-cli-user-profile • 在指令列中選擇對應的profile • 登入Amazon帳號,允許存取 • 完成設定 66

Slide 64

Slide 64 text

Amazon Alexa Dev – [email protected] Lab:Hello CLI 使用AWS CLI 部署一個Hello World 67

Slide 65

Slide 65 text

Amazon Alexa Dev – [email protected] 終端機 • ask new • 選擇Node.js V8 • 選擇Hello World Template • 取一個技能名稱:hello-world-cli • cd hello-world-cli • ask deploy (每次修改完程式碼) 68

Slide 66

Slide 66 text

Amazon Alexa Dev – [email protected] VS Code • 用VS Code打開剛才產生的 資料夾 • 看一下models資料夾裡面 的en-US.json • 確認invocationName為何 – hello world • 確認HelloWorldIntent的 samples有哪些 – hello 69

Slide 67

Slide 67 text

Amazon Alexa Dev – [email protected] 終端機進行測試 • ask simulate -l en-US -t "ask hello world hello" -l:Language -t:text to send 70

Slide 68

Slide 68 text

Amazon Alexa Dev – [email protected] Lab (記得 ask deploy) • 修改打招呼回應的內容 • 修改開啟技能的回應內容 • 增加更多對應至HelloWorldIntent的例句 • 修改Invocation Name (喚醒語) 71

Slide 69

Slide 69 text

Amazon Alexa Dev – [email protected] 實作:讀取使用者輸入 72

Slide 70

Slide 70 text

Amazon Alexa Dev – [email protected] 實作:讀取使用者輸入 • 先設定好要問使用者的問題與答案 • 接收使用者的回應 – 如果答對,顯示正確無誤 – 如果答錯,則告知錯誤 73

Slide 71

Slide 71 text

Amazon Alexa Dev – [email protected] 讀取使用者輸入 • 透過 reprompt 可以讓使用者進行輸入 • 使用者的輸入會被放在 handlerInput.requestEnvelope.request.intent.slots.yourSlotName.value 74

Slide 72

Slide 72 text

Amazon Alexa Dev – [email protected] 建立技能、設定Intent與Slot • 建立ASK技能,設定Name與Invocation Name – name : one-quiz-xxx – template:Hello World – Invocation Name:one quiz xxx • 建立新的Intent:AnswerIntent • 建立新的Slot Type:TrainingProgram – Slot Values • Java Developer • App Developer • Artificial Intelligence Engineer 75

Slide 73

Slide 73 text

Amazon Alexa Dev – [email protected] 設定例句句型 • 設定AnswerIntent的例句 – I think the most popular program is { } – 設定Slot name為Course • Slot Type設定為TrainingProgram 76

Slide 74

Slide 74 text

Amazon Alexa Dev – [email protected] 繼續增加更多例句 • I think it's {Course} • It is {Course} • The answer is {Course} • It should be {Course} 77

Slide 75

Slide 75 text

Amazon Alexa Dev – [email protected] 終端機 • 建立專案 ask new • 選擇執行環境 Node.js V8 • 選擇樣板 Hello World • 設定技能名稱 one-quiz • 建立完成 78

Slide 76

Slide 76 text

Amazon Alexa Dev – [email protected] VS Code • 開啟專案資料夾 • 編輯 models/en-US.json – 設定Invocation Name – 增加AnswerIntent、samples、slots – 增加一個type為TrainingProgram、設定相關value 79

Slide 77

Slide 77 text

Amazon Alexa Dev – [email protected] 80

Slide 78

Slide 78 text

Amazon Alexa Dev – [email protected] 81

Slide 79

Slide 79 text

Amazon Alexa Dev – [email protected] 82

Slide 80

Slide 80 text

Amazon Alexa Dev – [email protected] index.js • 讓開啟技能、打招呼都引導至問問題 • 取得使用者的回應、判斷是否正確 83

Slide 81

Slide 81 text

Amazon Alexa Dev – [email protected] 84

Slide 82

Slide 82 text

Amazon Alexa Dev – [email protected] 85

Slide 83

Slide 83 text

Amazon Alexa Dev – [email protected] 86

Slide 84

Slide 84 text

Amazon Alexa Dev – [email protected] 87

Slide 85

Slide 85 text

Amazon Alexa Dev – [email protected] 88

Slide 86

Slide 86 text

Amazon Alexa Dev – [email protected] 89

Slide 87

Slide 87 text

Amazon Alexa Dev – [email protected] 部署與測試 • 終端機部署 ask deploy • 終端機測試 ask dialog -l en-US 90 • 網站測試 alexa dev site -> Test

Slide 88

Slide 88 text

Amazon Alexa Dev – [email protected] Lab 隨機笑話 Alexa, tell me a cold joke. 91

Slide 89

Slide 89 text

Amazon Alexa Dev – [email protected] 實作:Alexa, tell me a cold joke. • 任務 – 讓Alexa隨機說出一個冷笑話 • 建構步驟: – 設定可接受的指令 – 設定可使用的冷笑話 – 進行測試 92

Slide 90

Slide 90 text

Amazon Alexa Dev – [email protected] Alexa Skills Kit 測試 – 模擬使用者行為、檢視回應結果是否正確 部署 – 上傳至Alexa開發前端、AWS Lambda後端 專案建立與修改 – 意圖回應、資訊接收與處理 設計 Voice UI – 意圖、例句、特殊資料型態 93

Slide 91

Slide 91 text

Amazon Alexa Dev – [email protected] 建立技能、設定Intent與Slot • 建立ASK技能,設定Name與Invocation Name – name : my-cold-joke-xxxx – template:Hello World – Invocation Name:you go cold joke • 建立新的Intent:GetNewJokeIntent 94

Slide 92

Slide 92 text

Amazon Alexa Dev – [email protected] 輸入使用者可能會講的句子 95

Slide 93

Slide 93 text

Amazon Alexa Dev – [email protected] 終端機 • 建立專案 ask new • 選擇執行環境 Node.js V8 • 選擇樣板 Hello World • 設定技能名稱 my-cold-joke-xxxx • 建立完成 96

Slide 94

Slide 94 text

Amazon Alexa Dev – [email protected] VS Code • 開啟專案資料夾 • 編輯 models/en-US.json – 設定Invocation Name:you go cold joke – 增加Intent:GetNewJokeIntent • 在這個Intent底下增加 samples – suprise me with a cold joke – shoot me a cold joke – give me a joke – give me a cole joke – tell me a joke – tell me a cold joke 97

Slide 95

Slide 95 text

Amazon Alexa Dev – [email protected] 98

Slide 96

Slide 96 text

Amazon Alexa Dev – [email protected] 99

Slide 97

Slide 97 text

Amazon Alexa Dev – [email protected] index.js • 讓開啟技能、打招呼都引導使用者去觸發隨機 笑話的產生 • 隨機取出一則笑話,回應給使用者 100

Slide 98

Slide 98 text

Amazon Alexa Dev – [email protected] 101 增加一個陣列變數 jokeDB,存放數則笑話

Slide 99

Slide 99 text

Amazon Alexa Dev – [email protected] 102

Slide 100

Slide 100 text

Amazon Alexa Dev – [email protected] 103 產生一個亂數(依據笑話的數量)

Slide 101

Slide 101 text

Amazon Alexa Dev – [email protected] 104

Slide 102

Slide 102 text

Amazon Alexa Dev – [email protected] 105

Slide 103

Slide 103 text

Amazon Alexa Dev – [email protected] 106

Slide 104

Slide 104 text

Amazon Alexa Dev – [email protected] 部署與測試 • 終端機部署 ask deploy • 終端機測試 ask dialog -l en-US 107 • 網站測試 alexa dev site -> Test

Slide 105

Slide 105 text

Amazon Alexa Dev – [email protected] 應用程式邏輯 tell me a joke tell me a cold joke give me a joke give me a cold joke shoot me a cold jpke Surprise me with a cold joke Joke 1 Joke 2 Joke 3 Joke 4 Joke 5 Joke 6 Joke 7 Joke 8 Joke 9 Joke 10 108 Intent : GetNewJoke

Slide 106

Slide 106 text

Amazon Alexa Dev – [email protected] Invocation Name • 兩個單字以上,都小寫,用空格隔開 • 不能用的單字: – launch, ask, tell, load, begin, enable – Alexa, Amazon, Echo, Computer – skill, app 109

Slide 107

Slide 107 text

Amazon Alexa Dev – [email protected] 如何Debug? • Server回應結果不如預期 110

Slide 108

Slide 108 text

Amazon Alexa Dev – [email protected] 回到AWS Lambda Function • 在函數列表中,找到技能對應的函數 • 切換至Monitoring分頁 111 https://console.aws.amazon.com/lambda/ • 點擊 View logs in CloudWatch • 依執行時間將Log Streams 展開檢視 • 觀察是否有Error訊息

Slide 109

Slide 109 text

Amazon Alexa Dev – [email protected] Response Builder Methods 112 http://ask-sdk-node-typedoc.s3-website-us-east-1.amazonaws.com/classes/responsebuilder.html

Slide 110

Slide 110 text

Amazon Alexa Dev – [email protected] 實作:增加美式感嘆詞 113 Source : enrichway.com

Slide 111

Slide 111 text

Amazon Alexa Dev – [email protected] 實作:增加美式感嘆詞 • 使用「讀取使用者輸入」範例 one-quiz • 修改答對與答錯的地方,增加美式感嘆詞 114

Slide 112

Slide 112 text

Amazon Alexa Dev – [email protected] Speechcon • Alexa特別增加的美式常用感嘆詞 115 https://developer.amazon.com/docs/custom-skills/speechcon-reference-interjections-english-us.html

Slide 113

Slide 113 text

Amazon Alexa Dev – [email protected] 修改 index.js 116

Slide 114

Slide 114 text

Amazon Alexa Dev – [email protected] 測試 – (ASK CLI 目前尚不支援) 117

Slide 115

Slide 115 text

Amazon Alexa Dev – [email protected] 日式感嘆詞也有了 118 https://developer.amazon.com/docs/custom-skills/speechcon-reference-interjections-japanese.html

Slide 116

Slide 116 text

Amazon Alexa Dev – [email protected] 實作:隨機網路笑話 • 將隨機笑話範例升級成網路版 • 透過request套件介接網路笑話API 119

Slide 117

Slide 117 text

Amazon Alexa Dev – [email protected] 安裝request套件 • 在index.js程式碼前面加上sync-request • 開啟終端機,確認終端機路徑在 custom資料夾 cd lambda cd custom npm-install-all index.js 120

Slide 118

Slide 118 text

Amazon Alexa Dev – [email protected] 笑話資料庫 – 隨機一則 https://api.icndb.com/jokes/random 121

Slide 119

Slide 119 text

Amazon Alexa Dev – [email protected] 122 index.js 修改程式碼

Slide 120

Slide 120 text

Amazon Alexa Dev – [email protected] 部署後進行測試 • 注意 ask deploy 要在專案資料夾根目錄執行 123

Slide 121

Slide 121 text

Amazon Alexa Dev – [email protected] Quiz Game Skill 124

Slide 122

Slide 122 text

Amazon Alexa Dev – [email protected] 功能 • 可以直接問美國一個州的相關資訊 • 請電腦出10個題目來答,並能計算分數 125 下載範例程式 • 建立專案 ask new • 選擇執行環境 Node.js V8 • 選擇樣板 Quiz Game • 設定技能名稱 quiz-game-practice-xxx • 建立完成

Slide 123

Slide 123 text

Amazon Alexa Dev – [email protected] VS Code • 開啟專案資料夾 • 編輯 models/en-US.json – 設定Invocation Name:quiz game practice 126

Slide 124

Slide 124 text

Amazon Alexa Dev – [email protected] 部署後測試 127

Slide 125

Slide 125 text

Amazon Alexa Dev – [email protected] 測試另外一個功能 128

Slide 126

Slide 126 text

Amazon Alexa Dev – [email protected] 客製化練習 • 置換成自己的資料 • 檢查並調整相關的程式碼 129

Slide 127

Slide 127 text

Amazon Alexa Dev – [email protected] Trivia Skill 130

Slide 128

Slide 128 text

Amazon Alexa Dev – [email protected] 功能 • 選擇題問答 • 請電腦出題目來答,並能計算分數 131 下載範例程式 • 建立專案 ask new • 選擇執行環境 Node.js V8 • 選擇樣板 Trivia • 設定技能名稱 trivia-practice-xxx • 建立完成

Slide 129

Slide 129 text

Amazon Alexa Dev – [email protected] VS Code • 開啟專案資料夾 • 編輯 models/en-US.json – 設定Invocation Name:practice trivia 132

Slide 130

Slide 130 text

Amazon Alexa Dev – [email protected] 測試 – 在Alexa開發站或終端機 • ask dialog -l en-US 133

Slide 131

Slide 131 text

Amazon Alexa Dev – [email protected] 觀察與修改 1. 修改成自己的題目與答案 2. 每次選幾題是在哪裡的程式碼控制的? 3. 每個題目的正確答案是怎麼設定的?對應的程 式在哪裡。 134

Slide 132

Slide 132 text

Amazon Alexa Dev – [email protected] 應用程式邏輯 135 open trivia practice Q 1 Q 2 Q 3 Q 4 A 1 A 2 A 3 A 4 The answer is two.

Slide 133

Slide 133 text

Amazon Alexa Dev – [email protected] How-To Skill 136

Slide 134

Slide 134 text

Amazon Alexa Dev – [email protected] 功能 • 問答題問答 • 請電腦選題目來問 137 下載範例程式 • 建立專案 ask new • 選擇執行環境 Node.js V8 • 選擇樣板 How To • 設定技能名稱 howto-practice-xxx • 建立完成

Slide 135

Slide 135 text

Amazon Alexa Dev – [email protected] VS Code • 開啟專案資料夾 • 編輯 models/en-US.json – 設定Invocation Name:practice how to 138

Slide 136

Slide 136 text

Amazon Alexa Dev – [email protected] 測試 – 在Alexa開發站或終端機 • ask dialog -l en-US 139

Slide 137

Slide 137 text

Amazon Alexa Dev – [email protected] 觀察 • 觀察 index.js – 如何進行比對,找到對應的項目? • 觀察 recipes.js – key : value 140

Slide 138

Slide 138 text

Amazon Alexa Dev – [email protected] 練習 • 將 How To範例改成自己喜歡的問答 – 電影簡介 – 藝人介紹 – 科學名詞查詢 – 球員資料 – .... 141

Slide 139

Slide 139 text

Amazon Alexa Dev – [email protected] Team Look up 142

Slide 140

Slide 140 text

Amazon Alexa Dev – [email protected] 功能 • 依條件找尋Alexa傳教士 – 依所在城市 – 依資訊類別 • twitter、github、linkedin – 依姓名 – 追問詳情 – 追問特定資訊 143

Slide 141

Slide 141 text

Amazon Alexa Dev – [email protected] 144 下載範例程式 • 建立專案 ask new • 選擇執行環境 Node.js V8 • 選擇樣板 Team Lookup • 設定技能名稱 team-lookup-practice-xxx • 建立完成

Slide 142

Slide 142 text

Amazon Alexa Dev – [email protected] VS Code • 開啟專案資料夾 • 編輯 models/en-US.json – 設定Invocation Name:practice team lookup 145

Slide 143

Slide 143 text

Amazon Alexa Dev – [email protected] 測試 – 在Alexa開發站或終端機 • ask dialog -l en-US 146

Slide 144

Slide 144 text

Amazon Alexa Dev – [email protected] 觀察資料 • 名字 • 姓氏 • 職稱 • 城市名稱 • twitter帳號 • twitter帳號口語 147 • github帳號 • github帳號口語 • linkedin帳號 • linkedin帳號口語 • 加入日期 • 性別

Slide 145

Slide 145 text

Amazon Alexa Dev – [email protected] 範例綜覽 • Quiz (美國各州) – 每筆資料有各種屬性 • Trivia Test – 自訂選擇題測驗 • How To – 問答集資料庫 • Team Lookup – 依條件查詢人物資料 148 • Hello – 打招呼有回應 • OneQuiz – 一個題目判斷答案 • Tell me a joke – 任意挑選一筆資料 • Tell me a on-line joke – 網路介接資料

Slide 146

Slide 146 text

Amazon Alexa Dev – [email protected] 內建資料型態 • AMAZON.Actor • AMAZON.AggregateRating • AMAZON.Airline • AMAZON.Airport • AMAZON.Animal • AMAZON.Athlete • AMAZON.Color • ..... 149 https://developer.amazon.com/docs/custom-skills/slot-type-reference.html#list-types

Slide 147

Slide 147 text

Amazon Alexa Dev – [email protected] 上架 Publishing Information • 類別 Category • 測試引導:提供給測試者參考 – 特殊指令、權限 • 銷售地區:全部國家或限定部分地區 • 簡短介紹、完整介紹 • 例句(至少3句) – 單一指令型 • Alexa, ask cold joke to tell me a joke. – 進入技能後互動型 • Alexa, open cold joke. • Alexa, give me a joke. 150

Slide 148

Slide 148 text

Amazon Alexa Dev – [email protected] 上架 Publishing Information • 關鍵字:方便搜尋 • 圖片 – 小圖示:108x108 PNG/JPG – 大圖示:512x512 PNG/JPG • 送出審核(需等待數天) 151

Slide 149

Slide 149 text

Amazon Alexa Dev – [email protected] 七個讓顧客愛上你的技能的訣竅 1. 讓一項工作透過語音變得快速又簡單 2. 技能的名稱直覺又好記 3. 設計清楚但又不繁雜的提示來引導使用者 4. 避免模稜兩可 5. 帶給使用者驚喜與樂趣 6. 規律地提供使用者新的內容 7. 服務必須是持續可靠不中斷的 152 Source:Amazon.com

Slide 150

Slide 150 text

Amazon Alexa Dev – [email protected] 開啟螢幕顯示 • Developer開發站 -> 左邊 點擊 Interfaces • Display Interface 開關打開 • 上面 Save Interfaces -> Build Model 153