地址收集預先建構的元件會向使用者收集地址,並使用 Google Address Validation API 驗證地址。
限制
除了常見的預先建構元件限制外,這個預先建構元件還有下列限制:
- 僅支援地址驗證 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,國家/地區為美國。對嗎?請回答「要」或「不要」。 |
|
| 是 | |
| 太棒了,我已收集到地址。 |
無法辨識的輸入內容
如果使用者提供無法辨識的輸入內容三次,元件就會結束流程。
| 使用者輸入內容 | 代理回覆 |
|---|---|
| 請先提供完整地址。 | |
| 沒關係 | |
| 抱歉,我聽不懂,請先提供完整地址。 | |
| nice | |
| 抱歉,我還是沒聽清楚。請先提供完整地址。 | |
| 很棒 | |
| 抱歉,我不太瞭解你的回覆。 |
不支援的地址
如果使用者提供的地址目前不支援 Address Validation API,元件就會結束流程。
| 使用者輸入內容 | 代理回覆 |
|---|---|
| 請先提供完整地址。 | |
| 印度 | |
| 很抱歉,我目前無法驗證該地區的地址。 |
地址驗證
如要瞭解地址收集元件如何驗證地址,請參閱「Address Validation API 總覽」。
地址收集元件會使用 @sys.address 系統實體擷取使用者輸入內容,並將擷取的地址傳送至 Address Validation API,以擷取地址元素供後續處理。
Address Validation API 會傳回下列地址元素,元件會使用這些元素收集及驗證完整地址:
- administrative_area_level_1
- archipelago
- country
- locality
- postal_code
- 路徑
- 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 網路連線服務呼叫的重試次數上限 | 整數 |
如要設定這個元件的輸入參數,請展開查看操作說明。
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「Build」(建構) 分頁標籤。
- 在「流程」部分中,按一下匯入的元件。
- 按一下「頁面」部分中的「開始頁面」。
- 在「開始頁面」中,按一下「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 設定。
- 如要擷取 API 金鑰,請前往 Google Cloud Platform 控制台 >「API 和服務」>「憑證」,選取 Maps API 金鑰,然後複製「API 金鑰」欄位。
如要設定 Webhook:
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 按一下「Webhooks」。
- 選取 prebuilt_components_address_collection:address_validation Webhook。
- 將 Dialogflow CX「Webhook URL」欄位中的網址,替換為包含 Maps API 金鑰的網址:https://addressvalidation.googleapis.com/v1:validateAddress?key=MAPS_API_KEY
- 在「驗證」設定中,將使用者名稱設為
key,並將密碼設為 Maps API 金鑰。 - 按一下 [儲存]。
完成
代理程式及其 Webhook 現在應已設定完成,可供測試。