本頁面將說明如何建構 Google Chat 應用程式, 以自然語言提供 Dialogflow。本指南採用 Dialogflow CX 直接與 Google Chat 整合您也可以使用 Dialogflow ES: Dialogflow ES Google Chat 應用程式,操作步驟如下: 這個 Dialogflow ES Google Chat 指南。
舉例來說,假設有 Chat 應用程式 汽車使用者可能會輸入「我想租車」, 即時通訊應用程式可能會回覆以下問題: 「你想在哪裡取車?」一開始要像人類一樣 與 Chat 應用程式 也能理解並回應租車服務。
這只是一個範例,Dialogflow Chat 應用程式 各種互動方式如果需要自然的人類語音 Dialogflow Chat 應用程式。 預先建構的代理程式 協助您快速上手,並展示 Dialogflow 的各項功能,例如:
- 預訂機票
- 安排醫師預約
- 訂購餐點外送
- 回答零售產品目錄的相關問題,例如:商品是否為商品 有其他顏色可供選擇
-
圖 1.為 Dialogflow Chat 應用程式選取預先建構的代理程式。 -
圖 2.在 Dialogflow CX 中測試代理程式,確保代理程式的邏輯和設定能正常運作。此圖顯示一系列主題頁面,內容圍繞在對話的特定步驟 (例如設定租車的上車和退貨地點),以及設定連結車輛的邏輯。系統會在模擬器中測試對話。 -
圖 3.在 Google Cloud 控制台的 Chat API 設定頁面,設定 Chat 擴充應用程式,使用 Dialogflow CX 代理程式處理回應。 -
圖 4.使用 Google Chat 中的 Dialogflow Chat 應用程式預約租車。
目標
- 設定環境。
- 建立及部署 Dialogflow CX 虛擬服務專員。
- 建立及部署採用 Dialogflow CX 虛擬服務專員。
- 測試 Chat 應用程式。
必要條件
- 企業或企業 具有存取權的 Google Workspace 帳戶 Google Chat。
- 已啟用計費功能的 Google Cloud 專案。如要確認現有專案是否啟用了計費功能, 請參閱驗證 專案帳單狀態如要建立專案及設定帳單,請參閱 建立 Google Cloud 專案。
架構
下圖顯示 使用 Dialogflow 建構的即時通訊應用程式:
在上圖中,使用者與 Dialogflow 互動 Chat 應用程式提供以下資訊流:
- 使用者在 Chat 中傳送訊息給 透過即時訊息或 Chat 聊天室。
- Google Cloud 中的 Dialogflow 虛擬服務專員 並處理訊息以產生回應
- 視需要使用 Dialogflow Webhook Dialogflow 代理程式可與外部第三方服務互動,例如 做為專案管理系統或支援單工具使用
- Dialogflow 代理程式會將回應傳回 Chat 中的即時通訊應用程式服務。
- 系統會將回覆內容傳送至 Chat 聊天室。
設定環境
您必須先在 Google Cloud 專案中啟用這些 Google API,才能使用這些 API。 您可以在單一 Google Cloud 專案中啟用一或多個 API。在 Google Cloud 控制台中,啟用 Google Chat API 和 Dialogflow API。
確認您已在正確的位置啟用 API Cloud 專案,然後點選「下一步」。
確認您要啟用的 API 正確無誤,然後按一下「啟用」。
建立 Dialogflow CX 虛擬服務專員
A 罩杯 Dialogflow CX 虛擬服務專員 是處理並行對話的虛擬服務專員 與使用者進行密切合作這是自然語言理解模組 理解人類語言的細微差異Dialogflow 翻譯使用者文字 應用程式/服務的結構化資料對話過程 一個重點您將設計並建構 Dialogflow 虛擬服務專員來處理 系統所需的對話
Dialogflow 虛擬服務專員就像是真人客服中心的虛擬服務專員。由您訓練兩者 因應預期的對話情境,而且訓練不一定要具備 過於明確。
以下說明如何建立 Dialogflow CX 代理程式:
在 Dialogflow CX 控制台中,開啟 Dialogflow CX 控制台。按一下 選單 >「Dialogflow CX」。
選擇 Google Cloud 專案。如要尋找專案,您可能需要執行以下動作: 請點選「全部」並搜尋。
您現在可以選擇預先建構的代理程式 您可以自行建立如果你偏好虛擬服務專員 請在稍後選擇 預先建構的代理程式 這也有助於瞭解代理程式的功能
如要選擇預先建構的代理程式,請按照下列步驟操作:
- 按一下「使用預先建構的代理程式」。
選取預先建構的代理程式。本指南選取 旅遊:租車。
服務專員的評為「初學者」 中階或進階級,視代理程式使用的功能數量而定 並考量對話邏輯的複雜程度選擇 中階或進階服務專員可能需要特定代理程式 自訂項目和設定,包括在 存取 Google Cloud 控制台
按一下「Import as agent」。
如要建立自己的虛擬服務專員,請按照下列步驟操作:
- 按一下「Create agent」。
- 選取「自動產生」,即可建立 資料儲存庫代理程式 或選取「Build your own」(建構自己的項目) 來建立其他種類的代理程式。
如需代理程式建構程序的詳細逐步操作說明,請參閱 建立 Dialogflow CX 虛擬服務專員。
調整基本代理程式設定:
按一下「建立」,Dialogflow CX 開始建立代理程式,然後 會顯示代理程式的預設開始流程。
您也可以自訂代理程式。如需代理程式的詳細逐步操作說明 自訂程序,請參閱 建立 Dialogflow CX 虛擬服務專員。
最佳做法是測試代理程式:
- 按一下「Test agent」。
- 選取「Test agent in 在環境中」。
- 在「環境」中,選取「草稿」。
- 在 Flow 中,選取「Default Start Flow」。
- 在「頁面」中選取「起始網頁」。
- 在「Talk to agent」撰寫列中,輸入
Hello
並按下 Enter 鍵。 服務專員會自行提供回應。 - 使用測試對話範例完成測試。
建立 Dialogflow CX 虛擬服務專員。返回 Dialogflow CX 主控台。 按一下「選單」圖示 >「Dialogflow CX」。
。在「Agents」下方,按一下 >「複製名稱」。將此名稱儲存為 協助您設定 Chat 擴充應用程式
>
建立 Chat 應用程式,並將該應用程式連結至 Dialogflow 虛擬服務專員
建立 Dialogflow CX 虛擬服務專員後,請按照下列步驟將代理程式轉換成 Chat 擴充應用程式:
前往 Google Cloud 控制台中的 Google Chat API。搜尋「Google Chat API」和 依序按一下「Google Chat API」和「管理」。
按一下「設定」,然後設定 Chat 應用程式:
- 在「App name」(應用程式名稱) 中輸入
Dialogflow App
。 - 在「顯示圖片」中輸入
https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png
。 - 在「Description」(說明) 中輸入
Responds to real human conversation
。 - 在「功能」下方,選取「接收 1:1 訊息」, 加入聊天室和群組對話。
- 在「連線設定」下方,選取「Dialogflow」。
- 在「Dialogflow 設定」下方,選取「Dialogflow CX」。
- 在「代理程式或環境資源名稱」中,貼上 Dialogflow CX 代理程式 後面複製的名稱 建立 Dialogflow CX 虛擬服務專員。
- 將這個即時通訊應用程式提供給特定使用者和群組 ,然後輸入您的電子郵件地址。
- 在「記錄」底下,選取 [將錯誤記錄至 Logging]。
- 在「App name」(應用程式名稱) 中輸入
按一下 [儲存]。
Chat 應用程式已準備好接收及回覆 Chat 訊息。
測試 Chat 應用程式
透過以下方式測試 Dialogflow CX Chat 應用程式: Google Chat。
使用你使用的 Google Workspace 帳戶開啟 Google Chat (在您將自己新增為信任的測試人員時提供)。
- 按一下「新的即時通訊」圖示 。
- 在 [新增 1 或多位使用者] 欄位中,輸入你的使用者名稱 Chat 應用程式。
從搜尋結果中選取 Chat 應用程式。直接 訊息隨即開啟。
在與應用程式互傳的新即時訊息中,輸入
Hello
並 按下enter
。Dialogflow Chat 應用程式會透過 機器學習是向機器提供資料和答案 讓機器自行探索規則的科學
- 使用 測試對話範例。
測試對話範例
如要在 在 Dialogflow CX 控制台或 Google Chat 中,進行下列對話。 此說明可協助您瞭解 Dialogflow CX 代理程式如何解讀 並產生專屬的自然語言回應 對話中的每個步驟這個對話範例是根據 預先建構的代理程式 稱為「旅遊:租車」。
對話方塊 | 說明 |
---|---|
使用者:您好: 代理程式:您好!我是虛擬租車服務專員。我可以 協助您進行新的租車預約。需要什麼協助嗎? 你今天? |
|
使用者:我想租車, 服務專員:你想在哪裡取車? |
|
使用者:拉斯維加斯 服務專員:好的,上車地點會在拉斯維加斯執行。 服務專員:下車地點是否與 上車地點? |
|
使用者:是。我會在洛杉磯送車 服務專員:沒問題,下車地點會在洛杉磯。 服務專員:你想在何時抵達上車地點? |
|
使用者:我想在 3 月 5 日中午取貨。 服務專員:您希望下車的日期和時間? |
|
使用者:3 月 15 日中午。 代理程式:那表示確認: 你即將上車 拉斯維加斯 2024-03-05 12:00:00 再關掉 (在洛杉磯) 2024-03-15 12:00:00 這樣方便嗎? |
|
使用者:沒錯,謝謝。 代理程式:太好了!現在請選擇車輛 虛擬服務專員:您想購買經濟型或奢華服務 車輛? |
|
使用者:經濟型, 服務專員:你想去 Cymbal Car 還是 Cymbal Truck? |
|
使用者:Cymbal Truck。 代理程式:Cymbal Truck 每天 $50.33 美元。 可容納 4 人,隨附 AM/FM 收音機。 要繼續付款嗎? 使用者:是的,謝謝。 |
|
代理程式:您會使用哪種卡片類型? 使用者:Altostrat 服務專員:請輸入卡號。 使用者:1234 1234 1234 1234 服務專員:卡片上的姓名為何? 使用者:Charlie 代理程式:帳單街道地址是什麼? 使用者:1800 Amphibious Blvd。Mountain View, CA , USA 代理程式:什麼是帳單郵遞區號? 使用者:94045 服務專員:您將挑選 Cymbal Car 然後到了 2024-03-05 12:00:00,然後就在拉斯維加斯 2024-03-15 12:00:00。這趟行程的總金額將為 $175.38 美元。 服務專員:感謝你向我們租借服務,祝你有美好的一天! |
|
透過 Dialogflow 傳送卡片訊息
Dialogflow 能透過以下方式回應: text 或 資訊卡訊息。使用資訊卡回應 訊息時,請將其指定為 自訂酬載 英吋 執行要求。
下列 JSON 顯示如何在 執行要求:
json
{
'cardsV2': [{
'cardId': 'createCardMessage',
'card': {
'header': {
'title': 'A card message!',
'subtitle': 'Sent from Dialogflow',
'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png',
'imageType': 'CIRCLE'
},
'sections': [
{
'widgets': [
{
'buttonList': {
'buttons': [
{
'text': 'Read the docs!',
'onClick': {
'openLink': {
'url': 'https://developers.google.com/workspace/chat'
}
}
}
]
}
}
]
}
]
}
}]
}
限制和注意事項
- 即時通訊互動事件
僅提供有限支援和部分考量:
- 下列
互動事件類型
支援:
MESSAGE
ADDED_TO_SPACE
CARD_CLICKED
- 如果是
MESSAGE
或ADDED_TO_SPACE
事件,則查詢輸入內容會傳送至 Dialogflow 代理程式則是對應以下欄位中argumentText
欄位的值: Chat 訊息。如果訊息包含 斜線指令,則 而是使用text
欄位。 - 如果是
CARD_CLICKED
事件,系統會將查詢輸入內容傳送至 Dialogflow 虛擬服務專員 格式為CARD_CLICKED.functionName
,其中functionName
即為function
欄位的 Action 物件 附加至互動式資訊卡元素 (例如按鈕)。 - 每個 Chat 互動事件的完整 JSON 酬載
會做為查詢參數中的自訂酬載傳送至 Dialogflow,且
都能透過
Dialogflow Webhook
方法是查詢
WebhookRequest.payload
欄位的值。
- 下列
互動事件類型
支援:
- 回應注意事項
斜線指令和
接收資訊卡或對話方塊的資料:
- 當 Dialogflow Chat 應用程式收到含有斜線的訊息時
則查詢輸入內容只會包含
text
欄位的值。text
欄位是以斜線指令名稱開頭 (例如:/command
),可用來設定 Dialogflow 虛擬服務專員的意圖 偵測斜線指令 - 如果 Dialogflow 代理程式需要處理 即時通訊互動事件 JSON 酬載 方法是使用 Dialogflow Webhook 檢查查詢參數中的自訂酬載。
- 如要顯示對話方塊
Dialogflow 代理程式,使用單一自訂 JSON 酬載回應
包含一則含有
DIALOG
的訊息 動作回應。 - 為了處理從卡片輸入的資料,Dialogflow 代理程式可偵測
意圖以
CARD_CLICKED
文字開頭,並以 單一自訂 JSON 酬載 action。
- 當 Dialogflow Chat 應用程式收到含有斜線的訊息時
則查詢輸入內容只會包含
- 不支援連結預覽。
- 如果 Dialogflow 虛擬服務專員只回覆一則訊息,則以訊息形式回應
會同步傳送至 Google Chat。如果 Dialogflow 虛擬服務專員回應
傳送多則訊息,然後將所有訊息傳送至 Chat 中
方法是呼叫
create
方法分別針對spaces.messages
Chat API 資源中的 撰寫新的電子郵件訊息 - 使用 Dialogflow CX 與 Chat 整合時, 請務必設定 Dialogflow 代理程式和 Chat 應用程式 都屬於同一項 Google Cloud 專案如果您需要設定 Dialogflow 以及在不同的 Cloud 專案中進行即時通訊 設定中繼伺服器以促進連線。如要瞭解操作方式 可以看見 Dialogflow CX 的 Chat 整合範例 。
疑難排解
Google Chat 應用程式或 card 會傳回錯誤, 即時通訊介面會顯示「發生錯誤」的訊息。 或「無法處理你的要求」。有時使用 Chat UI 不會顯示任何錯誤訊息,但 Chat 應用程式或 資訊卡產生非預期的結果例如資訊卡訊息 顯示。
雖然 Chat UI 中可能不會顯示錯誤訊息, 提供描述性錯誤訊息和記錄資料,協助您修正錯誤 。如需觀看說明, 偵錯及修正錯誤,請參閱 疑難排解並修正 Google Chat 錯誤。
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取 建議將資源刪除 Cloud 專案
- 在 Google Cloud 控制台中,前往「管理資源」頁面。按一下 選單 > IAM 與管理員 >「管理資源」。
- 在專案清單中選取要刪除的專案,然後按一下 刪除 。
- 在對話方塊中輸入專案 ID,然後按一下「Shut down」(關閉) 即可刪除 專案。
相關主題
- Dialogflow CX 提供
州立機器
方便您清楚明確地瞭解
Dialogflow 代理程式設計的哪些方法
有助於改善使用者體驗
開發工作流程建構 Dialogflow 時
即時通訊應用程式,建議使用 Dialogflow CX。
- 如要進一步瞭解如何建構及設定代理程式,請參閱 Dialogflow CX 代理程式。
- 如需有關建構和設定方法的詳細逐步操作說明 代理程式,請參閱 建立 Dialogflow CX 虛擬服務專員。
- 使用 Gemini 建構支援 Google Chat 的應用程式。 程式碼研究室:有關如何建構 Dialogflow CX 資料的範例 或是商店服務專員,請參閱 本程式碼研究室
- 使用 Gemini 建構支援 Google Chat 的應用程式。 程式碼研究室:有關如何建構 Dialogflow CX 的範例 對話式虛擬服務專員,請參閱「Feedback Chat」應用程式 練習過程
- Dialogflow 西班牙文 是搭配 Chat 應用程式使用 Dialogflow 的另一種方式。