地址收集預先建構元件

地址收集預先建構元件會向使用者收集地址,並使用 Google 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 呼叫的重試上限 整數

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

  1. 開啟 Dialogflow CX 控制台
  2. 選擇 Google Cloud 專案。
  3. 選取所需的代理程式。
  4. 選取「Build」分頁標籤。
  5. 在「流程」部分中,按一下匯入的元件。
  6. 按一下「網頁」部分中的「首頁」。
  7. 按一下「Start」頁面中的「true」路徑。
  8. 在路徑視窗中,視需要編輯「參數預設值」值。
  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. 處理擷取的 Conversational Agents (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. 按一下「Webhook」
  6. 選取 prebuilt_components_address_collection:address_validation webhook。
  7. 將「Conversational Agents (Dialogflow CX)」Webhook URL 欄位的網址,替換為含有 Google Maps API 金鑰的網址:https://addressvalidation.googleapis.com/v1:validateAddress?key=MAPS_API_KEY
  8. 在「Authentication」設定中,將「Username」設為 key,並將「Password」設為 Maps API 金鑰。
  9. 按一下 [儲存]

完成

代理程式和 Webhook 應已設定完成,可以開始測試。