Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MovieBot

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Ryan Chung Ryan Chung
November 09, 2018
240

 MovieBot

To get movie info

Avatar for Ryan Chung

Ryan Chung

November 09, 2018
Tweet

Transcript

  1. Chatbot開發 – 你的口袋電影百科 [email protected] 資策會 數位教育研究所 ² 最新科技進修 Ø 在職夜間假日進修

    Ø 轉職全天養成班 ² 資訊技術充電站 Ø 國際技術趨勢 Ø 職場必備能力 Ø 基本資訊技能 http://taipei.iiiedu.org.tw/ 2
  2. Chatbot開發 – 你的口袋電影百科 [email protected] Ryan Chung ² 主要教授科目 Ø 語音助理應用開發

    Ø Chatbot應用開發 Ø Web / App 應用 ² 資策會數位教育研究所 Ø 課程經理 / 養成班導師 Ø 企業包班 / 政府專案經理 Ø 課程專任講師 /專題輔導 http://mobiledev.tw/ryan 3
  3. Chatbot開發 – 你的口袋電影百科 [email protected] 電影機器人開發 1.0 • 目標 – 輸入:電影名稱

    – 回傳:簡介、海報 • 介面 – Line • 工具/技術 – DialogFlow – Node.JS • 資料 – theMovieDB.org 5
  4. Chatbot開發 – 你的口袋電影百科 [email protected] MovieBot 架構 • 語意分析 + 聊天機器人+

    電影資料庫 + 部署上線 FulFillment • 設定回應 The Movie DB • 電影資料 DialogFlow 意圖:查詢電影簡介 資料:電影名稱 API Line 6
  5. Chatbot開發 – 你的口袋電影百科 [email protected] 語意分析常見名詞 • Intent 意圖 – 使用者對談的目的

    • Entity 關鍵資訊 – 達成目的的必要輸入資訊 • Utterance 例句 – 使用者常用的句型 10
  6. Chatbot開發 – 你的口袋電影百科 [email protected] 輸入對應此Intent會出現的句子 • 輸入例句 – ❞我想要查電影簡介 –

    ❞我想知道教父的劇情 • 把教父反白,選擇 @sys.any,設定變數名稱為MovieName – @我想知道@sys.any:MovieName 的劇情 • 注意最前面換成@、注意 @sys.any:MovieName 有上色 • 雙逗號:例句輸入、@:文法結構輸入 14
  7. Chatbot開發 – 你的口袋電影百科 [email protected] DialogFlow Recap • 建立Agent – 名稱:MovieBot

    – 語言:zh-TW • 建立Intent – 名稱:Get Movie Intro • 輸入例句 – ❞我想要查電影簡介 – ❞我想知道教父的劇情 • 把教父反白,選擇 @sys.any,設定變數名稱為MovieName – @我想知道@sys.any:MovieName 的劇情 • 注意最前面換成@、注意 @sys.any:MovieName 有上色 23
  8. Chatbot開發 – 你的口袋電影百科 [email protected] DialogFlow • 設定需求變數與反問句 – 將MovieName打勾 –

    設定反問句:請問你要查詢的電影名稱是? • 設定確認回饋句 – 了解,馬上為你查詢$MovieName的劇情簡介 24
  9. Chatbot開發 – 你的口袋電影百科 [email protected] 啟動webhook • 在DialogFlow中,進入MovieBot專案 • 點擊左邊Intents,然後進入「Get Movie

    Intro」Intent • 最下方Fulfillment,點擊 Enable Fulfillment • 打開 Enable webhook call for this intent • 右上方點擊Save 28
  10. Chatbot開發 – 你的口袋電影百科 [email protected] 開發前準備事項 • 安裝 VS Code –

    https://code.visualstudio.com/ • 安裝 Node – https://nodejs.org/en/download/ • 安裝 Ngrok – https://ngrok.com/download 30
  11. Chatbot開發 – 你的口袋電影百科 [email protected] 安裝Node.js • 選擇穩定版 (Recommend For Most

    Users) – Windows Installer:下載msi檔 – macOS Installer:下載pkg檔 • 如何確認安裝? – 打開終端機,輸入:node -v https://nodejs.org/en/ 31
  12. Chatbot開發 – 你的口袋電影百科 [email protected] 安裝Ngrok • 建議放置位置 – Windows:主要使用者資料夾 –

    Mac:應用程式 • 設定為在哪裡都可以執行 – Windows:我的電腦 -> 右鍵 -> 內容 -> 進階系統設定 -> 環境變數 -> 系統變數 -> Path -> 編輯 -> 新增 – Mac:ln -s /Applications/ngrok ngrok https://ngrok.com/download 32
  13. Chatbot開發 – 你的口袋電影百科 [email protected] 設定MovieDB API Key • 新增config資料夾 •

    在config資料夾中新增檔案:default.json • 增加MovieDB_API_Key (稍後至該網站申請) Your API Key here 37
  14. Chatbot開發 – 你的口袋電影百科 [email protected] TheMovieDB.org • 註冊帳號、填寫相關資料 • 點擊個人頭像 ->

    帳戶設定 • 左邊清單點擊API • 複製API Key(v3 auth)至上一頁 https://www.themoviedb.org/account/signup 38
  15. Chatbot開發 – 你的口袋電影百科 [email protected] 專案初始化 • 在VS Code中,按下 Ctrl +

    ~ 開啟終端機 • 輸入npm init • 按下多次enter,使用預設值建立package.json 安裝需要的套件 • 在VS Code中,按下 Ctrl + ~ 開啟終端機 • 安裝能夠一次安裝需求模組的套件 – 在終端機輸入npm install npm-install-all -g – 需要管理者權限(Mac加sudo) • 針對特定檔案中的需求來安裝套件 – 在終端機輸入npm-install-all index.js 40
  16. Chatbot開發 – 你的口袋電影百科 [email protected] Integrations -> LINE -> 打開 •

    跟著步驟建立帳號、啟動Messaging API • Log in to console 46
  17. Chatbot開發 – 你的口袋電影百科 [email protected] Line Developer Console • Select provider

    選擇既有或新增 https://developers.line.me/console/register/messaging-api/provider/ 47
  18. Chatbot開發 – 你的口袋電影百科 [email protected] Create new channel • 輸入 App

    icon、name、description • 選擇 Free Plan • 設定 Category、Subcategory • 輸入 Email address • Confirm 48
  19. Chatbot開發 – 你的口袋電影百科 [email protected] 取得相關資訊 • 進入新建立的Channel -> Channel settings

    • 拿到Channel ID、Channel secret 貼至DialogFlow • Issue to get Channel access token 也貼過去 • 在DialogFlow那邊先按Start • 回到Line Console,Use webhooks Enabled • 把Webhook URL從DialogFlow那邊貼過來 • 把Auto-reply messages、Greeting messages Disabled 49
  20. Chatbot開發 – 你的口袋電影百科 [email protected] 部署至Heroku • 註冊帳號 • 右上角 New

    -> Create new app • 設定App name:movie-bot-XXYYZZ • 區域:美國 • Create App https://www.heroku.com/ 53
  21. Chatbot開發 – 你的口袋電影百科 [email protected] Deploy using Heroku Git • 使用Heroku

    Git (Use Heroku CLI) • 下載與安裝 Heroku CLI • 終端機 heroku login cd my-project-dic git init heroku git:remote –a YourProjectNameHere https://devcenter.heroku.com/articles/heroku-command-line 是你在Heroku中的專案名稱哦! 通常長得像 oo-bot-xxyyzz 切換到專案資料夾路徑下,若已經在裡面則可忽略此步驟 54
  22. Chatbot開發 – 你的口袋電影百科 [email protected] 開始部署上傳(每次更新步驟亦同) • git add . •

    git commit –am "make it better" • git push heroku master • heroku restart 雙引號這邊像是你的上傳筆記 在這裡寫上這次更新的內容 之後code更新時再加這一步 第一次不用 55
  23. Chatbot開發 – 你的口袋電影百科 [email protected] 找到Heroku的網址 • Settinges分頁下拉 -> Domains and

    certificates https://dashboard.heroku.com/apps/YourAppName/settings • 其實網址就是 https://YourAppName.herokuapp.com 57
  24. Chatbot開發 – 你的口袋電影百科 [email protected] fulfillmentMessages - card https://dialogflow.com/docs/fulfillment#response "fulfillmentMessages": [

    { "card": { "title": "card title", "subtitle": "card text", "imageUri": "https://assistant.google.com/static/images/molecule/Molecule-Formation-stop.png", "buttons": [ { "text": "button text", "postback": "https://assistant.google.com/" } ] } } ] 60
  25. Chatbot開發 – 你的口袋電影百科 [email protected] 對話流程 人 <-> 人 人 <->

    Chatbot/VA 開啟對話 寒暄語 Hello、你好、嗨 喚醒語 Invocation 系統指定啟動語 Alexa, Hi Siri, OK Google 提出需求 台北的天氣如何? 一般人均可直接理解對方的需求 釐清意圖 Intent 透過語句解析,確定對方的意圖是什麼 訓練 釐清意圖 N/A 由於同一意圖有多種表達方式 所以要多提供例句讓機器對應至特定意圖 取得 關鍵資訊 若對方漏說了地方與時間 持續問答取得資訊 取出關鍵資訊 Entity 預先定義好滿足該意圖所需的關鍵資訊 持續與使用者對話取得所有需求關鍵資訊 確認 條件滿足 跟對方確定取得必要資訊後 開始進行查詢 依據關鍵資訊與意圖 進行下一階段資料查詢(API 介接) 回應 回應查詢結果 新聞說今天臺北在下雨,氣溫19度 依據查詢結果 以文字、圖形或語音的方式回應 延伸問答 依據目前資訊的延伸問題 那明天的狀況也一樣嗎? 須將既有輸入資訊暫存 更新資料查詢並進行回應 62
  26. Chatbot開發 – 你的口袋電影百科 [email protected] 人機互動腳本準則 • 以人們真正會說的話來設計,而不是那種文章上的口吻 • 不要假設使用者知道要怎麼做或是知道會發生什麼事 真實

    • 避免使用有多重含義的詞句、片語 • 引導使用者提供必要的資訊 明確 • 清楚地把選項呈現出來 • 一般而言,一次不要丟出超過三個選項 • 一次向使用者要一個資訊 簡單 63
  27. Chatbot開發 – 你的口袋電影百科 [email protected] Recap • Dialogflow – 語意分析、前端整合 •

    TheMovieDB API – 資料來源 • Ngrok – 暫時讓本機變成Server • Heroku – 雲端主機服務 • 電影其他資訊查詢 – 評分、演員、年代... • 電影時刻查詢 – 各地電影院時刻資料 • 多媒體 – 電影預告、電影配樂 • 電影推薦 – 測驗、查詢記錄... Extra 64