在這個程式碼研究室中,您將瞭解如何使用 Dialogflow 建立對話介面,為 RBM 代理程式提供支援,而無須編寫任何程式碼。
在這個程式碼研究室中,您要建構什麼?
- 支援 RBM 服務專員對話的 Dialogflow 服務專員
- 虛構披薩店的對話式介面,為使用者提供折扣優惠,方便使用者查看餐廳的菜單
教學內容
- 如何使用 Dialogflow 的主要意圖建構對話介面
- 如何透過 Dialogflow 建立 RBM 回應類型,以便為使用者提供豐富的 RBM 體驗
硬體與軟體需求
- 您的 RBM 平台 Google 帳戶
建立及查詢第一個代理程式
時間:30:00
建立您的第一個 Dialogflow 代理程式
如何建立 Dialogflow 代理程式:
- 開啟新分頁並登入 Dialogflow。
按一下左側導覽列中的 [建立代理程式]。
輸入「quolabRBMPizzaPlace"」做為代理程式的名稱,並使用「quot;English"」做為預設語言,並將預設時區設為時區。
點選「建立」。
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 含有訓練詞組,例如使用者可能會向代理程式說出的內容。比方說,如果有人想知道菜單,就有可能詢問「你的菜單是什麼?」、" 我可以吃什麼?
這些查詢皆不重複,但意圖相同:取得選單相關資訊。
如要涵蓋這項查詢,請建立「選單」意圖:
- 在左側導覽面板中,按一下「意圖」旁的 +。
- 在「Intent name」(意圖名稱) 中輸入「quot;Menu"」。
在「Training vocabularys」(訓練詞組) 下方,按一下「Add userexpression」(新增使用者運算式) 並輸入以下內容,然後在每個項目後方按下 Enter 鍵:
What's your menu?
What can I eat?
What can I order?
reply_view_menu
這個最後一個訓練詞組會用來對應您在上一節設定的回傳資料,以便瞭解這項意圖。
為回應這個意圖,我們會建立顯示各種選單選項的輪轉介面。如果是較大型的選單,建議您連結至網站,或分享選單的單張圖片。
- 按一下「Responses」(回應) 下方的「+」,然後選取「RCS Business Messaging (RBM)」。
- 按一下「新增回應」,然後選取「輪轉介面複合式資訊卡」。
- 將 [選取卡片寬度] 選項設為 [中]。
- 在寬度選項下,按兩下「Add Card」兩次。這會將資訊卡總數展開為 4 張。
- 在資訊卡 1 中輸入下列資訊:
- 資訊卡標題:香腸和義式臘腸
- 卡片說明:香腸、胡椒、橄欖和綠椒
- 映像檔/影片網址:https://storage.googleapis.com/df-rbm-codelab/sausage-cake.jpg
- 在資訊卡 3 中輸入下列資訊:
- 資訊卡標題:義大利文
- 資訊卡說明:番茄紅、起司和香腸
- 映像檔/影片網址:https://storage.googleapis.com/df-rbm-codelab/italian-cake.jpg
- 在資訊卡 2 中輸入下列資訊:
- 資訊卡標題:Margherita
- 卡片說明:San Marzano 番茄、莫札瑞起司、新鮮羅勒
- 映像檔/影片網址:https://storage.googleapis.com/df-rbm-codelab/margarita-zz.jpg
- 在資訊卡 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"」的回傳文字傳送至 Dialogflow,而 Dialogflow 會將此 ID 對應至「Default Fallback Intent」(預設備用意圖)。
為了在不立即回應的情況下擷取回傳資料,我們會建立使用訓練詞組與回傳資料相符的意圖,並刪除意圖的所有回應。Dialogflow 會將回傳資料與意圖進行比對,但不會回應,因為意圖沒有任何已定義的回應。
建立「無回應」意圖
為了涵蓋要忽略的動作,請建立「無回應」意圖:
- 在左側導覽面板中,按一下「意圖」旁的 +。
- 在「Intent name」(意圖名稱) 中,輸入「No response」(無回應)。
- 在「Training vocabularys」(訓練詞組) 下方,按一下「Add userexpression」(新增使用者運算式) 並輸入以下內容,然後在每個項目後方按下 Enter 鍵:
reply_view_website
- 向下捲動至「回應」,然後使用垃圾桶圖示移除所有回覆。
按一下「儲存」。
快來體驗看看吧!
在裝置上的 RBM 代理程式對話中,輸入「hi」並將訊息傳送給代理程式。這會觸發來自預設歡迎意圖的促銷優惠。按一下「查看網站」建議,然後發現網站會在瀏覽器中開啟,且不會傳送代理程式回應。
這樣就完成本教學課程了!
時間長度:1:00
做得好!
你已完成建構由 Dialogflow 提供的簡易 RBM 代理程式的所有階段。
如要瞭解詳情,請參閱進階程式碼研究室。
換上令人期待的這個全新平台!