地址收集预构建组件

地址收集预构建组件会从客户那里收集地址,并使用 Google Address Validation API 验证该地址。

限制

除了常见的预构建组件限制之外,此预构建组件还具有以下限制:

其他功能

此预构建组件提供以下附加功能:

对话示例

以下示例对话演示了此预构建组件处理的常见场景。它们演示了使用电话服务调用组件时的行为,这会在对话开始时触发默认欢迎 intent 和第一个代理响应。

完整地址验证

用户提供完整地址,地址收集组件会对其进行验证。

用户输入 智能体回答
请先告诉我您的完整地址。
1600 Amphitheatre Parkway, Mountain View, CA 94043-1351, USA
我已收集最终地址:街道编号为 1600,路线为 Amphitheatre Parkway,城市为 Mountain View,行政区域为 CA,邮政编码为 94043,国家/地区为 USA。对吗?请说“是”或“不要”。
是
太棒了,我已经收集到地址。

包含推断元素的部分有效地址

  1. 用户提供部分地址。
  2. 智能体会猜测缺失的部分,并在用户确认后进行验证。
用户输入 智能体回答
请先告诉我您的完整地址。
1600 Amphitheatre Parkway
我已猜出地址的部分内容:城市是 Mountain View,邮政编码是 94043,行政区是 CA,国家/地区是 USA。

我已收集到最终地址:街道编号是 1600,路线是 Amphitheatre Parkway,城市是 Mountain View,行政区是 CA,邮政编码是 94043,国家/地区是 USA。对吗?请说“是”或“否”。
是
太棒了,我已经收集到地址。

包含用户提供元素的部分有效地址

  1. 用户提供部分地址。
  2. 用户拒绝了猜测的部分,并提供了自己的输入。
  3. 智能体接受用户提供的输入,并再次提示用户进行确认。
  4. 用户接受最终地址。
用户输入 智能体回答
请先告诉我您的完整地址。
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] 地址收集
组件特定 intent prebuilt_components_[component_name]_[intent_name] prebuilt_components_address_collection_locality
参数 [param_name] user_provided_address
网络钩子 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. 选择构建标签页。
  5. 在流部分中点击导入的组件。
  6. 点击页面部分中的“Start Page”。
  7. 点击“Start Page”中的 true 路由。
  8. 在“Route”(路线)窗口中,根据需要修改参数预设值。
  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. 使用您的地图 API 密钥配置提供的灵活 webhook。如需了解详情,请参阅 Webhook 设置。

Webhook 设置

如需使用 Address Validation API 验证地址,请使用正确的凭证配置提供的灵活 webhook。

地址验证 webhook

此 webhook 会执行以下操作:

  1. 处理捕获的 Dialogflow CX 参数,形成请求,并使用 Address Validation API 验证地址。
  2. 从 Address Validation API 响应中提取已确认、未确认、缺失和推断的地址元素。

使用正确的地图 API 密钥更新网络钩子设置,为此组件配置网络钩子。

如需检索 API 密钥,请依次前往 Google Cloud 控制台 > API 和服务 > 凭证,选择您的地图 API 密钥,然后复制 API 密钥字段。

如需配置 webhook,请执行以下操作:

  1. 前往 Dialogflow CX 控制台。
  2. 选择您的 Google Cloud 项目。
  3. 选择您的代理。
  4. 选择管理标签页。
  5. 点击网络钩子。
  6. 选择 prebuilt_components_address_collection:address_validation webhook。
  7. 将 Dialogflow CX 网络钩子网址字段中的网址替换为包含您的地图 API 密钥的网址:https://addressvalidation.googleapis.com/v1:validateAddress?key=<var>MAPS_API_KEY</var>。
  8. 在身份验证设置中,将用户名配置为 key,并为地图 API 密钥设置密码。
  9. 点击保存。

完成

预构建组件及其 webhook 现已设置完毕,可以进行测试。