地址收集預先建構元件

地址收集預先建構的元件會向使用者收集地址,並使用 Google 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,國家/地區為美國。對嗎?請回答「要」或「不要」。
太棒了,我已收集到地址。

無法辨識的輸入內容

如果使用者提供無法辨識的輸入內容三次,元件就會結束流程。

使用者輸入內容 代理回覆
請先提供完整地址。
沒關係
抱歉,我聽不懂,請先提供完整地址。
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 網路連線服務呼叫的重試次數上限 整數

如要設定這個元件的輸入參數,請展開查看操作說明。

  1. 開啟 Dialogflow CX 控制台
  2. 選擇 Google Cloud 專案。
  3. 選取代理程式。
  4. 選取「Build」(建構) 分頁標籤。
  5. 在「流程」部分中,按一下匯入的元件。
  6. 按一下「頁面」部分中的「開始頁面」。
  7. 在「開始頁面」中,按一下「true」路徑。
  8. 在「Route」視窗中,視需要編輯「Parameter Presets」值。
  9. 按一下「儲存」

輸出參數

輸出參數是工作階段參數,在結束元件後仍會保持啟用狀態。這些參數包含元件收集的重要資訊。這個預先建構的元件會提供下列輸出參數的值:

參數名稱 說明 輸出格式
address_collection_address 如果元件擷取了地址,這個參數就會傳回地址物件
{
"admin-area": string,
"city": string,
"country": string,
"island": string,
"route": string,
"zip-code": string,
"street-number": string
}
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

基本設定

如要設定這個預先建構的元件,請按照下列步驟操作:

  1. 匯入預先建構的元件
  2. 啟用 Address Validation API。
  3. 使用 Maps API 金鑰設定提供的彈性 Webhook,請參閱下方的 Webhook 設定。

設定 Webhook

如要使用 Address Validation API 驗證地址,您必須使用正確的憑證設定提供的彈性 Webhook。

地址驗證 webhook

這個 Webhook 會執行下列動作:

  1. 處理擷取的 Dialogflow CX 參數、表單要求,並使用 Address Validation API 驗證地址。
  2. Google Address Validation API 回應中擷取已確認、未確認、遺漏和推斷的地址元素。

如要為這個元件設定 Webhook,請使用 Maps API 金鑰更新 Webhook 設定。

  1. 如要擷取 API 金鑰,請前往 Google Cloud Platform 控制台 >「API 和服務」>「憑證」,選取 Maps API 金鑰,然後複製「API 金鑰」欄位。

如要設定 Webhook:

  1. 開啟 Dialogflow CX 控制台
  2. 選擇 Google Cloud 專案。
  3. 選取代理程式。
  4. 選取「管理」分頁標籤。
  5. 按一下「Webhooks」
  6. 選取 prebuilt_components_address_collection:address_validation Webhook。
  7. 將 Dialogflow CX「Webhook URL」欄位中的網址,替換為包含 Maps API 金鑰的網址:https://addressvalidation.googleapis.com/v1:validateAddress?key=MAPS_API_KEY
  8. 在「驗證」設定中,將使用者名稱設為 key,並將密碼設為 Maps API 金鑰。
  9. 按一下 [儲存]

完成

代理程式及其 Webhook 現在應已設定完成,可供測試。