地址收集預先建構元件會向使用者收集地址,並使用 Google Address Validation API 驗證地址。
限制
除了常見的預先建構元件限制外,這個預先建構元件還有以下限制:
- 僅支援 Address Validation API 涵蓋範圍詳細資料中所列國家/地區的地址。
其他功能
這個預先建構的元件會提供下列額外功能:
對話方塊範例
以下對話方塊範例說明這個預先建構元件處理的常見情境。以下對話方塊範例說明透過電話呼叫元件時的行為,這會在對話開始時觸發預設歡迎意圖和第一個服務專員回應。
完整的有效地址
使用者提供完整地址,地址收集元件成功驗證該地址。
使用者輸入內容 | 服務專員回應 |
---|---|
請先告訴我完整地址。 | |
1600 Amphitheatre Parkway, Mountain View, CA 94043-1351, USA | |
我已收集到最終地址:街道號碼為 1600,路線為 Amphitheatre Parkway,城市為 Mountain View,行政區為 CA,郵遞區號為 94043,國家/地區為美國。對嗎?請說「是」或「否」。 | |
是 | |
太好了,我已收集到地址。 |
含有推測元素的部分有效地址
使用者提供部分地址,服務專員猜測缺少的部分,並在使用者確認後成功驗證。
使用者輸入內容 | 服務專員回應 |
---|---|
請先告訴我你的完整地址。 | |
1600 Amphitheatre Parkway | |
我猜測了部分地址,城市是 Mountain View,郵遞區號是 94043,行政區是 CA,國家是美國。 我已收集到最終地址:街道號碼是 1600,路線是 Amphitheatre Parkway,城市是 Mountain View,行政區是 CA,郵遞區號是 94043,國家是美國。對嗎?請說「是」或「否」。 |
|
是 | |
太好了,我已收集到地址。 |
含有使用者提供元素的部分有效地址
使用者提供部分地址,代理程式會猜測缺少的部分,但使用者在說出「否」後提供自己的輸入內容,代理程式則成功接受地址。
使用者輸入內容 | 服務專員回應 |
---|---|
請先告訴我你的完整地址。 | |
1600 Amphitheatre Parkway | |
我猜測了部分地址,城市是 Mountain View,郵遞區號是 94043,行政區是 CA,國家是美國。 我已收集到最終地址:街道號碼是 1600,路線是 Amphitheatre Parkway,城市是 Mountain View,行政區是 CA,郵遞區號是 94043,國家是美國。對嗎?請說「是」或「否」。 |
|
否 | |
好的,請告訴我地址的哪個部分需要變更。 | |
郵遞區號 | |
可以請你提供郵遞區號嗎? | |
94044 | |
我已完成這次更新。還有其他需要變更的內容嗎?請說「是」或「否」。 | |
否 | |
驗證後,我已將郵遞區號改為 94043。 我已收集最終地址:街道門牌號碼為 1600,路線為 Amphitheatre Parkway,城市為 Mountain View,行政區為 CA,郵遞區號為 94043,國家/地區為美國。對嗎?請說「是」或「否」。 |
|
是 | |
太好了,我已收集到地址。 |
無法辨識的輸入內容
當使用者三次提供未識別的輸入內容,元件就會退出流程。
使用者輸入內容 | 服務專員回應 |
---|---|
請先告訴我你的完整地址。 | |
沒關係 | |
抱歉,我沒聽清楚。請先告訴我你的完整地址。 | |
不錯 | |
嗯,我還是沒聽清楚。請先告訴我你的完整地址。 | |
很棒 | |
抱歉,我不懂你的意思。 |
不支援的地址
當使用者提供的地址目前不受 Address Validation API 支援時,元件就會退出流程。
使用者輸入內容 | 服務專員回應 |
---|---|
請先告訴我你的完整地址。 | |
印度 | |
很抱歉,我目前無法驗證該地區的地址。 |
地址驗證
如要瞭解地址收集元件如何驗證地址,請參閱「Address Validation API 總覽」。
地址收集元件會使用 @sys.address 系統實體擷取使用者輸入內容,並將擷取到的地址傳送至 Address Validation API,以便擷取地址元素供後續處理。
Address Validation API 會傳回下列地址元素,並由元件用於收集及驗證完整地址:
- administrative_area_level_1
- archipelago
- country
- locality
- postal_code
- route
- street_number
您可以使用支援地區的任何地址,試用 Google 地址驗證示範。
命名慣例
這個預先建構的元件採用下列命名慣例:
功能 | 格式 | 範例 |
---|---|---|
心流狀態 | [元件名稱] | 地址收集 |
元件專屬意圖 | prebuilt_components_[component_name]_[intent_name] | prebuilt_components_address_collection_locality |
參數 | [param_name] | user_provided_address |
Webhook | prebuilt_components_[component_name]:[webhook_action] | prebuilt_components_address_collection:address_validation |
輸入參數
輸入參數是用來設定元件特定行為的參數。參數會由工作流程中的一或多個條件使用,用於決定元件的行為方式。流程範圍參數必須在元件的起始頁面中設定,如下所述。您可以透過呼叫流程或此元件的起始頁面,設定會話範圍參數。
您可以修改流程的起始頁面中的參數預設值,設定這個元件需要的地址元素。
這個預先建構的元件可接受下列輸入參數:
參數名稱 | 說明 | 輸入格式 |
---|---|---|
$flow.zip_code | 如果需要郵遞區號地址元素,請設為 true ,否則設為 false 。 |
布林值 |
$flow.city | 如果需要城市地址元素,請設為 true ,否則設為 false 。 |
布林值 |
$flow.admin_area | 如果需要行政區域地址元素,請設為 true ,否則設為 false 。 |
布林值 |
$flow.street_number | 如果需要門牌號碼地址元素,請設為 true ,否則設為 false 。 |
布林值 |
$flow.route | 如果需要路徑地址元素,請將其設為 true ,否則設為 false 。 |
布林值 |
$flow.country | 如果需要國家/地區地址元素,請設為 true ,否則設為 false 。 |
布林值 |
$flow.island | 如果需要島嶼地址元素,請設為 true ,否則設為 false 。 |
布林值 |
$flow.retry_num | 設定 Maps Address Validation API webhook 呼叫的重試上限 | 整數 |
如要設定此元件的輸入參數,請展開操作說明。
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取所需的代理程式。
- 選取「Build」分頁標籤。
- 在「流程」部分中,按一下匯入的元件。
- 按一下「網頁」部分中的「首頁」。
- 按一下「Start」頁面中的「true」路徑。
- 在路徑視窗中,視需要編輯「參數預設值」值。
- 按一下 [儲存]。
輸出參數
輸出參數是會在退出元件後仍保持啟用的會話參數。這些參數包含元件收集的重要資訊。這個預先建構的元件會為下列輸出參數提供值:
參數名稱 | 說明 | 輸出格式 |
---|---|---|
address_collection_address | 如果元件擷取了地址,這個參數會傳回地址物件 | { |
address_collection_status | 這個參數會傳回收集到的地址狀態。系統會傳回下列其中一個值:VALID_ADDRESS :Address Validation API 已收集並驗證地址。INVALID_ADDRESS :使用者已確認地址,但 Address Validation API 未驗證一或多個元素,或已將其標示為「UNCONFIRMED_BUT_PLAUSIBLE」。MAPS_API_ERROR :Address Validation API 發生錯誤,因此未收集地址。COUNTRY_NOT_SUPPORTED :Address Validation API 不支援該區域,因此未收集地址。NO_USER_CONFIRMATION :使用者未確認地址,因此未確認地址。 |
string |
基本設定
如要設定這個預先建構的元件,請按照下列步驟操作:
- 匯入預先建構的元件。
- 啟用 Address Validation API。
- 使用 Maps API 金鑰設定提供的彈性 Webhook,請參閱下方的 Webhook 設定。
設定 Webhook
如要使用 Address Validation API 驗證地址,您必須使用正確的憑證設定提供的彈性 webhook。
地址驗證 webhook
這個 webhook 會執行下列動作:
- 處理擷取的 Conversational Agents (Dialogflow CX) 參數、表單要求,並使用 Address Validation API 驗證地址。
- 從 Google Address Validation API 回應中擷取已確認、未確認、缺少和推斷的地址元素。
如要為此元件設定 webhook,您必須使用 Maps API 金鑰更新 webhook 設定。
- 如要擷取 API 金鑰,請依序前往 Google Cloud Platform 主控台 >「API 和服務」>「憑證」,選取 Maps API 金鑰,然後複製「API 金鑰」欄位。
如要設定 Webhook,請按照下列步驟操作:
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 按一下「Webhook」。
- 選取 prebuilt_components_address_collection:address_validation webhook。
- 將「Conversational Agents (Dialogflow CX)」Webhook URL 欄位的網址,替換為含有 Google Maps API 金鑰的網址:https://addressvalidation.googleapis.com/v1:validateAddress?key=MAPS_API_KEY
- 在「Authentication」設定中,將「Username」設為
key
,並將「Password」設為 Maps API 金鑰。 - 按一下 [儲存]。
完成
代理程式和 Webhook 應已設定完成,可以開始測試。