建立採用 Dialogflow 的 RBM 代理程式 (基本版)

在這個程式碼研究室中,您將瞭解如何使用 Dialogflow 建立對話介面,為 RBM 代理程式提供支援,而無須編寫任何程式碼。

在這個程式碼研究室中,您要建構什麼?

  • 支援 RBM 服務專員對話的 Dialogflow 服務專員
  • 虛構披薩店的對話式介面,為使用者提供折扣優惠,方便使用者查看餐廳的菜單

教學內容

  • 如何使用 Dialogflow 的主要意圖建構對話介面
  • 如何透過 Dialogflow 建立 RBM 回應類型,以便為使用者提供豐富的 RBM 體驗

硬體與軟體需求

  • 您的 RBM 平台 Google 帳戶

建立及查詢第一個代理程式

時間:30:00

建立您的第一個 Dialogflow 代理程式

如何建立 Dialogflow 代理程式:

  1. 開啟新分頁並登入 Dialogflow
  2. 按一下左側導覽列中的 [建立代理程式]

  3. 輸入「quolabRBMPizzaPlace"」做為代理程式的名稱,並使用「quot;English"」做為預設語言,並將預設時區設為時區。

  4. 點選「建立」

Dialogflow 控制台

您現在應該會看到 Dialogflow 控制台。如果您處理的是較小的螢幕,並隱藏左側導覽畫面,請按一下左上角的導覽按鈕。「設定」按鈕會將您導向目前的代理程式設定。

頁面中間會顯示代理程式的意圖清單。根據預設,Dialogflow 代理程式會從兩個意圖開頭。如果代理程式無法理解使用者所說的內容,系統就會比對預設備用意圖預設歡迎意圖會歡迎使用者。您可以修改這些意圖以自訂體驗。

右側是 Dialogflow 模擬工具,如此一來,您就能透過語音或輸入訊息來試用代理程式。

查詢代理程式

Dialogflow 代理程式的最佳描述為 NLU (自然語言理解) 模組。您可以在應用程式、產品或服務中納入這些資訊,將自然使用者要求轉換成可採取行動的資料。

開始試用代理程式吧!在右側的模擬工具中,按一下「Try it now」(立即體驗) 的文字欄位,然後輸入「Hi」後再按下 Enter 鍵。

Dialogflow 可識別查詢、比對預設歡迎意圖,並回應一般問候語。這項功能的運作方式是,Dialogflow 會自動利用部分問候語來訓練預設歡迎意圖

建立 RBM 代理程式

登入 Business Communications Developer Console,然後按一下 [Createagent]

在「名稱」欄位中輸入「你的披薩的披薩店」(例如「Sean’s Piea Place"」),選取一個區域,然後按一下「建立代理程式」

將 RBM 代理程式連結至 Dialogflow

建立 RBM 代理程式之後,按一下該代理程式即可查看總覽頁面。按一下左側導覽面板中的「整合」連結。

根據預設,RBM 代理程式會使用 Google Cloud Pub/Sub 處理使用者訊息。如要將 RBM 代理程式連結至您稍早建立的 Dialogflow 代理程式,請按一下 [Dialogflow] 整合。

在對話方塊中,按一下「連結現有模型」。按照操作說明授權 RBM 代理程式呼叫 Dialogflow 代理程式。完成操作說明後,然後點選 [下一步]

最後,您必須提供 Dialogflow 專案 ID,在「Business Communications Developer Console」以外的瀏覽器分頁中,前往「Dialogflow」,然後開啟您先前建立的 CodelabRBMPizzaPlace 代理程式。在左側導覽列中,按一下專案名稱附近的齒輪圖示。

點選該圖示,即可前往模型設定。在「GOOGLE PROJECT」下方,找出並複製專案 ID

返回開啟 Business Communications Developer Console 的分頁,將專案 ID 貼到對話方塊中,然後按一下 [開始整合]

此程序大約需要兩分鐘才能完成。完成後,您應該會看見 Dialogflow 整合選項,以及可用的「Viewagent」連結。

現在起,這個代理程式的所有訊息現在由 CodelabRBMPizzaPlace Dialogflow 代理程式處理。

邀請測試裝置並傳送訊息

開始使用 Dialogflow 之前,請先設定測試裝置。如果您還沒有可接收 RBM 訊息的裝置,請按照這份指南完成設定。

在 Business Communications Developer Console 中,按一下左側導覽面板中的「裝置」。在表單中,以 E.164 格式輸入裝置的完整電話號碼 (例如 +12223334444),然後按一下 [新增]

在裝置上會收到測試邀請。輕觸 [讓我成為測試人員]

在瀏覽器中的「Devices」(裝置) 清單中找出您的裝置,然後傳送測試訊息給裝置。如果在裝置上收到 RBM 代理程式的訊息,表示已完成本程式碼研究室的設定。

正在建立歡迎意圖

一般而言,透過採用 Dialogflow 的 RBM 虛擬服務專員進行對話,你需要指定 API 呼叫來指定使用者的電話號碼,以及用來啟動對話的 Dialogflow 意圖 (通常是代理程式的歡迎意圖)。在本程式碼研究室中,我們會略過這個步驟,並改用先前透過 Business Communications Developer Console 的測試裝置建立的對話串。不過,如要進一步瞭解這項 API 功能,請參閱這份指南

首先,請將 RBM 回應新增至預設歡迎意圖,讓 Dialogflow 將該功能與 RBM 代理程式搭配使用。首先,前往已開啟 Dialogflow 的瀏覽器分頁。按一下左側導覽面板中的「意圖」連結。按一下右上角的「垃圾桶」,刪除純文字的「文字回應」範例。接著,按一下「Default 歡迎意圖」,向下捲動至「Responses」部分,然後按一下回應類型清單中的「+」,並選取「RCS Business Messaging (RBM)」

按一下「Add Responses」,然後選取「Simple Response」。在「Simple Response」文字欄位中,輸入「Sean 的披薩店當日優惠!買任何 12 吋披薩,立即免費獲得一個!」將「Sean」替換成您的名稱,然後按一下「Save」

發起對話

您已經設定歡迎意圖,請返回測試裝置並傳送訊息「quot;Hi"」。這則訊息會觸發預設歡迎意圖,您應該會看到與下圖相似的內容。

更新歡迎意圖

現在,Dialogflow 會傳送簡單的訊息,接著更新訊息以更具吸引力。這不僅是要傳送當天的交易訊息,還會傳送圖片來吸引接收者,並鼓勵他們採取其他行動。

讓我們以簡單的圖片取代簡單的回應披薩廣告訊息,並提供查看完整菜單和餐廳餐廳的選項。

在「Default 歡迎 Intent」(預設歡迎意圖) 和「Responses」(回應) 專區中,選取「RCS Business Messaging (RBM)」(RCS 商家訊息 (RBM)) 分頁標籤。更新現有的「Simple Response」文字以及「& Sean's Pizza Place」。查看今天的促銷優惠!" 接著,按一下 [新增回應],然後選取 [獨立複合式資訊卡]

在獨立複合式資訊卡中,輸入以下內容:

  • 卡片名稱:購買任何 12 吋披薩,免費兌換一次!
  • 資訊卡說明:在任何參與的位置顯示這則訊息,即可兌換這項優惠。優惠將於 2 月 17 日截止。
  • 選取資訊卡方向:直向
  • 圖片/影片網址:https://storage.googleapis.com/df-rbm-codelab/zz-ad-coupon.png
  • 選取媒體高度:中等

按一下 [新增建議],然後輸入以下內容:

  • 建議文字:查看選單
  • 建議回傳:response_view_menu

按一下 [新增建議],然後從下拉式選單中選取 [開啟網址動作],然後輸入以下內容:

  • 建議文字:查看網站
  • 建議回傳:回覆_view_website
  • 開啟網址:https://www.google.com (或任何有效的網址)

按一下「儲存」

快來體驗看看吧!

如果模型顯示「Agent Training 完成」(Intut Training complete) 訊息,請返回裝置,並將訊息「Hello」傳送給代理程式。您現在應該會看到「Simple Response」(簡易回應),後面接著您剛剛設計的「Standalone Rich Card」

請輕觸 [檢視選單]。請注意,系統會觸發預設備用廣告意圖。這是因為 Dialogflow 代理程式不知道如何處理您為這項建議設定的回傳資料「quoly;reply_view_menu"」。

讓我們修正這個問題,

建立選單意圖

Dialogflow 使用意圖將使用者的意圖分類,Intent 含有訓練詞組,例如使用者可能會向代理程式說出的內容。比方說,如果有人想知道菜單,就有可能詢問「你的菜單是什麼?」、&quot 我可以吃什麼?

這些查詢皆不重複,但意圖相同:取得選單相關資訊。

如要涵蓋這項查詢,請建立「選單」意圖:

  1. 在左側導覽面板中,按一下「意圖」旁的 +
  2. 在「Intent name」(意圖名稱) 中輸入「quot;Menu"」。
  3. 在「Training vocabularys」(訓練詞組) 下方,按一下「Add userexpression」(新增使用者運算式) 並輸入以下內容,然後在每個項目後方按下 Enter 鍵:

    • What's your menu?
    • What can I eat?
    • What can I order?
    • reply_view_menu

    這個最後一個訓練詞組會用來對應您在上一節設定的回傳資料,以便瞭解這項意圖。

為回應這個意圖,我們會建立顯示各種選單選項的輪轉介面。如果是較大型的選單,建議您連結至網站,或分享選單的單張圖片。

  1. 按一下「Responses」(回應) 下方的「+」,然後選取「RCS Business Messaging (RBM)」
  2. 按一下「新增回應」,然後選取「輪轉介面複合式資訊卡」
  3. 將 [選取卡片寬度] 選項設為 [中]
  4. 在寬度選項下,按兩下「Add Card」兩次。這會將資訊卡總數展開為 4 張。
  5. 在資訊卡 1 中輸入下列資訊:
    • 資訊卡標題:香腸和義式臘腸
    • 卡片說明:香腸、胡椒、橄欖和綠椒
    • 映像檔/影片網址:https://storage.googleapis.com/df-rbm-codelab/sausage-cake.jpg
  6. 在資訊卡 3 中輸入下列資訊:
    • 資訊卡標題:義大利文
    • 資訊卡說明:番茄紅、起司和香腸
    • 映像檔/影片網址:https://storage.googleapis.com/df-rbm-codelab/italian-cake.jpg
  7. 在資訊卡 2 中輸入下列資訊:
    • 資訊卡標題:Margherita
    • 卡片說明:San Marzano 番茄、莫札瑞起司、新鮮羅勒
    • 映像檔/影片網址:https://storage.googleapis.com/df-rbm-codelab/margarita-zz.jpg
  8. 在資訊卡 4 中輸入下列資訊:
    • 資訊卡標題:Supreme
    • 資訊卡說明:香腸、胡椒、漢堡、加拿大培根、洋蔥、橄欖、蘑菇和綠椒
    • 映像檔/影片網址:https://storage.googleapis.com/df-rbm-codelab/supreme-cake.jpg

完成資訊卡項目後,您也必須提供使用者繼續對話的方式。如要解決這個問題,請按一下「Add Responses」(新增回應),然後選取「Simple Response」(簡單回應),然後輸入「quo do; else to else else else.」

在簡易回應中,按一下「Add Suggestion」,然後輸入以下內容:

  • 建議文字:查看促銷活動
  • 建議回傳:hi

按一下「儲存」

快來體驗看看吧!

現在請試著請服務專員提供菜單。在裝置上的 RBM 代理程式對話中,輸入「quod on's 菜單」,如果有的話,請將訊息傳送給服務專員。

您的代理程式現在可正確回應查詢。請注意,雖然您的查詢與訓練詞組稍有不同 (「What's on the menu?" versus " what's menu?"」),Dialogflow 仍會將查詢與正確的意圖進行比對。另外,您也可以嘗試在複合式資訊卡中輕觸「查看選單」項目。

Dialogflow 會使用訓練詞組做為機器學習模型的範例,藉此比對使用者'查詢與正確的意圖相符。機器學習模型會根據代理程式中的每個意圖檢查查詢,為每項意圖評分,並符合最高分數的意圖。如果分數最高的意圖分數極低,則會比對備用意圖。

在沒有回應的情況下擷取意圖

即將完成,但最後還有最後一步。如果您返回測試裝置,並在初始複合式資訊卡中輕觸「查看網站」建議,您會發現,輕觸這個建議不僅會開啟相關網址,您也會收到預設備用意圖觸發的訊息。

這是因為「Open URL Action」(輕觸網址動作) 會在您傳送動作時,將「&rept;reply_view_website&quot」的回傳文字傳送至 Dialogflow,而 Dialogflow 會將此 ID 對應至「Default Fallback Intent」(預設備用意圖)

為了在不立即回應的情況下擷取回傳資料,我們會建立使用訓練詞組與回傳資料相符的意圖,並刪除意圖的所有回應。Dialogflow 會將回傳資料與意圖進行比對,但不會回應,因為意圖沒有任何已定義的回應。

建立「無回應」意圖

為了涵蓋要忽略的動作,請建立「無回應」意圖:

  1. 在左側導覽面板中,按一下「意圖」旁的 +
  2. 在「Intent name」(意圖名稱) 中,輸入「No response」(無回應)。
  3. 在「Training vocabularys」(訓練詞組) 下方,按一下「Add userexpression」(新增使用者運算式) 並輸入以下內容,然後在每個項目後方按下 Enter 鍵:
    • reply_view_website
  4. 向下捲動至「回應」,然後使用垃圾桶圖示移除所有回覆。

按一下「儲存」

快來體驗看看吧!

在裝置上的 RBM 代理程式對話中,輸入「hi」並將訊息傳送給代理程式。這會觸發來自預設歡迎意圖的促銷優惠。按一下「查看網站」建議,然後發現網站會在瀏覽器中開啟,且不會傳送代理程式回應。

這樣就完成本教學課程了!

時間長度:1:00

做得好!

你已完成建構由 Dialogflow 提供的簡易 RBM 代理程式的所有階段。

如要瞭解詳情,請參閱進階程式碼研究室

換上令人期待的這個全新平台!