地址收集預建元件會收集使用者的地址,並使用 Google Address Validation API 驗證地址。
限制
除了常見的預建元件限制外,這項預建元件還有下列限制:
- 僅支援 Address Validation API 涵蓋範圍詳細資料所列國家/地區的地址。
其他功能
這項預建元件提供下列額外功能:
對話範例
下列對話範例說明這項預建元件處理的常見情境。範例對話會示範透過電話呼叫元件時的行為,這會觸發預設歡迎意圖,並在對話開始時觸發第一個代理回覆。
完整有效的地址
使用者提供完整地址,且地址收集元件成功驗證。
| 使用者輸入內容 | 代理回覆 |
|---|---|
| 請先告訴我你的完整地址。 | |
| 1600 Amphitheatre Parkway, Mountain View, CA 94043-1351, USA | |
| 我已收集最終地址:門牌號碼是 1600,街道是 Amphitheatre Parkway,城市是 Mountain View,行政區是 CA,郵遞區號是 94043,國家/地區是 USA。對嗎?請回答「要」或「不要」。 | |
| 是 | |
| 太好了,我已取得地址。 |
部分有效地址,含有推論元素
使用者提供部分地址,服務專員猜測缺少的資訊,並在使用者確認後成功驗證。
| 使用者輸入內容 | 代理回覆 |
|---|---|
| 請先告訴我你的完整地址。 | |
| 1600 Amphitheatre Parkway | |
| 我猜測了部分地址,城市是 Mountain View,郵遞區號是 94043,行政區是 CA,國家/地區是 USA。 我已收集最終地址,門牌號碼是 1600,路線是 Amphitheatre Parkway,城市是 Mountain View,行政區是 CA,郵遞區號是 94043,國家/地區是 USA。對嗎?請回答「要」或「不要」。 |
|
| 是 | |
| 太好了,我已取得地址。 |
部分有效地址,包含使用者提供的元素
使用者提供部分地址,代理猜測缺少的資訊,但使用者說「不」後提供自己的輸入內容,代理成功接受地址。
| 使用者輸入內容 | 代理回覆 |
|---|---|
| 請先告訴我你的完整地址。 | |
| 1600 Amphitheatre Parkway | |
| 我猜測地址的部分資訊,城市是 Mountain View,郵遞區號是 94043,行政區是 CA,國家/地區是 USA。 我已收集最終地址,門牌號碼是 1600,路線是 Amphitheatre Parkway,城市是 Mountain View,行政區是 CA,郵遞區號是 94043,國家/地區是 USA。對嗎?請回答「要」或「不要」。 |
|
| 否 | |
| 好的,請告訴我需要變更地址的哪個部分。 | |
| 郵遞區號 | |
| 方便提供郵遞區號嗎? | |
| 94044 | |
| 我已完成這項更新。還有其他要變更的地方嗎?請回答「要」或「不要」。 | |
| 否 | |
| 驗證後,我將郵遞區號替換為 94043。 我已收集最終地址:門牌號碼為 1600、街道為 Amphitheatre Parkway、城市為 Mountain View、行政區為 CA、郵遞區號為 94043、國家/地區為 USA。對嗎?請回答「要」或「不要」。 |
|
| 是 | |
| 太好了,我已取得地址。 |
無法辨識的輸入內容
使用者提供無法辨識的輸入內容三次後,元件就會退出流程。
| 使用者輸入內容 | 代理回覆 |
|---|---|
| 請先告訴我你的完整地址。 | |
| 沒關係 | |
| 抱歉,我聽不懂,請先告訴我你的完整地址。 | |
| nice | |
| 嗯,我還是聽不清楚。請先告訴我你的完整地址。 | |
| 很棒 | |
| 抱歉,我不懂你的意思。 |
不支援的地址
使用者提供 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 地址驗證試用版。
命名慣例
這個預建元件採用下列命名慣例:
| 功能 | 格式 | 範例 |
|---|---|---|
| Flow | [Component Name] | 地址收集 |
| 元件專屬意圖 | 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」(建構) 分頁標籤。
- 在「Flows」(流程) 部分,點選匯入的元件。
- 按一下「Pages」部分中的「Start Page」。
- 在「Start Page」中,點選「true」路徑。
- 在「Route」視窗中,視需要編輯「Parameter Presets」值。
- 按一下「儲存」。
輸出參數
輸出參數是工作階段參數,在退出元件後仍會保持有效。這些參數包含元件收集的重要資訊。這個預建元件會提供下列輸出參數的值:
| 參數名稱 | 說明 | 輸出格式 |
|---|---|---|
| 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 會執行下列動作:
- 處理擷取的 Dialogflow CX 參數、表單要求,並使用 Address Validation API 驗證地址。
- 從 Google Address Validation API 回應中,擷取已確認、未確認、遺漏和推論的地址元素。
如要設定這個元件的 Webhook,請使用 Maps API 金鑰更新 Webhook 設定。
如要設定 Webhook,請按照下列步驟操作:
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 按一下「Webhooks」。
- 選取 prebuilt_components_address_collection:address_validation Webhook。
- 將 Dialogflow CX Webhook 網址欄位中的網址,替換為包含 Maps API 金鑰的網址:https://addressvalidation.googleapis.com/v1:validateAddress?key=MAPS_API_KEY
- 在「Authentication」(驗證) 設定中,將使用者名稱設為
key,並將密碼設為 Maps API 金鑰。 - 按一下 [儲存]。
完成
代理和 Webhook 現在應已設定完成,可以開始測試。