如何從無到有變出 COSCUP 的 Google 助理動作並上架 - 陳慶耀

歡迎來到 MOPCON 2019 共筆

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

共筆入口:https://hackmd.io/@mopcon/2019
手機版請點選上方 按鈕展開議程列表。

會場 wifi-SSID: mopcon-2019
會場 wifi-PASSWD: mopcon-2019

tags: MOPCON 2019

討論議題

使用Google助理實現一個應用程式:以COSCUP(開源人年會小幫手)為範例

工具介紹

  1. Google 助理
  • 優點:
    • 支援多國語言
    • 有各式各項硬體支援 ex.Google Home,mini,Nest Hub, etc.
  1. Actions on google

    • 在 Google Assistant 上面的 APP => Action
    • 中譯名:動作

    Google 助理應用的領域

    • Smart Home
    • Home Control
  2. Dialog flow

    • 自然語言(NLU)理解工具,下列為使用該工具所開發的應用:

      • 政治人物語錄
      • 女僕小白
    • 什麼是自然語言理解 NLU

      • 算是一個「連連看」的過程,也就是呈現出問題與該問題應該分類在什麼領域上。比如「IB 401 在哪邊?」這個就可以歸類在尋找教室的問題分類上。
  3. Golang Server

    • 這邊會選擇使用 Golang 純粹是講者自己的喜好,若有開發上的需要也可以選擇自己擅長的程式語言來進行開發。
    • 用途
      • 透過 Context 第二次判斷意圖
      • 管理 Session
      • 串接第三方 API
  4. Sketch

    • 以視覺化的方式 做出輕易使用的系統流程

意圖設計

  • 在意圖設計中,主要以使用者動做為意圖的主題。如果意圖是有不同的主題,那麼就會額外分成另外種意圖,並不會有多個意圖合而為一的狀況。例如:
    • 找賣飯的餐廳
    • 找賣麵的餐廳
    • 找賣牛排的餐廳

對話背景 (Context)

Message

  • 回應訊息 => 自然語言生成 (NLG)

    大部分是使用規則來建議意圖,沒有使用NLG來開發

  • 引導使用者 => 催眠使用者

  • 主要原則:不要讓使用者有太開放的空間

  • 誘導使用者

建議列表 (Suggestion chips)

流程設計

  • 歡迎頁面

    • 簡單的介紹自己是誰,可以做什麼。
    • Call to Action 讓新使用者知道該怎麼進行下去。

    主要是讓一個不知道該怎麼操作的使用者,可以藉由提示來讓使用者知道接下來要怎麼操作。

  • 幫助頁面

    • 詳細的介紹可以做什麼
    • 可以動態做幾種不同的回應
    • 通常使用者聽完這邊就會離開了
  • 取得議程列表頁面

    • 把接下來三場議程用表格列出
    • 記錄使用者剛剛問的場地是 IB301
    • 紀錄剛剛印出來的是哪三場
  • 議程詳細頁面

    • 提供重點資訊
    • 提供網頁連結
    • Call to Action => 加入最愛

缺點:只能用在手機上,在 Google Home 無法呈現。

  • 新增列表頁面
    • 意圖名稱是「新增到最愛列表」
    • 回應的時候重用顯示列表的函式(function)
    • 在 Chip 的地方提示如何刪除議程
    • 顯示完表格後補個問句
    • 利用內容產生Chip

沒以問句話結束,使用者會不知道麥克風是保持開啟的狀況。

  • 查詢位置頁面

    • 可以動態生成圖片
  • Fallback

    • 提示對方自己是哪個動作
    • 要清楚哪些意圖不用理會
    • 有些問題即時是真人也不一定能回答
    • 避免持續回覆同樣訊息是可以有效降低煩躁感

需注意時不時有使用者會搭訕用意外的問題來玩弄使用機器人。例如:

  • 你有男朋友嗎?對不起我聽不懂你的意思,我還在學習。
  • 機器人不會回答的問題,次數不要太高
    『逃避雖然可恥,但是有用』
  • 離開意圖
    • 判斷使用者打算離開動作
    • 加入「我要找 Google 小姐」
    • 假如整個過程都沒發生 Fallback,可以考慮邀請評分。

有禮貌的使用者,會使用離開意圖。

流程設計

  • 建議設計意圖
  • 歡迎意圖
  • 幫助意圖
  • Fallback 意圖
  • 離開意圖

把意圖送入 Dialogflow

一句話有很多種表達方式
範例句訓練能夠讓機器人理解更多不同意圖的表達方式

缺點:Google 的語音辨識在中文的辨識中可能會發生同音不同意的問題。
解法:這部分講者的解法是自行建立語音辭典的方式,等同於當特定字詞輸入進去如果有符合字詞,就以其對應的結果輸出。

串接外部 API

  • COSCUP 本身有提供 Open API
  • 先確定資料更新頻率
  • 設計清空快取的方式

範例:實作意圖

COSCUP/assistant

測試送審

  • 隱私政策
  • ICON
  • 簡介
    • 清楚描述技能(必須)
  • 被退回的狀況
    • 麥克風忘記關
    • 使用者不知道結束

Debug

  • 把 Request 直接 Dump 出來(推薦)
  • 參考 Dialogflow 官方文件
  • 參考 Actions on Google 官方文件
  • stackdriver
  • Google 助理動作開發 臉書群組
  • r/GoogleAssistantDev
  • try-and-error

TIH 的粉絲團

Select a repo