地址集合预构建组件

地址收集预构建组件会从最终用户收集地址,并使用 Google Address Validation API 验证地址。

限制

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

其他功能

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

示例对话框

以下示例对话框演示了此预构建组件处理的常见场景。示例对话框演示了组件 通过电话调用,这将触发“默认欢迎 intent”和第一个 在对话开始时让客服人员回应你。

完整的有效地址

最终用户提供完整的地址,地址收集组件成功验证该地址。

用户输入 客服人员回复
首先,请告诉我您的完整地址。
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,国家/地区是 USA。对吗?请说“是”或“否”。
太棒了,我已收集地址。

无法识别的输入内容

最终用户提供无法识别的输入三次后,组件会退出流程。

用户输入 客服人员回复
首先,请告诉我您的完整地址。
没关系
抱歉,我没听明白。请先告诉我你的完整地址。
nice
呃,我还是没听明白。首先,请告诉我您的完整地址。
非常好
抱歉,我没听懂你的回答。

地址不受支持

在最终用户提供的地址验证 API 目前不支持的地址后,组件退出流程。

用户输入 客服人员回复
首先,请告诉我您的完整地址。
印度
抱歉,我目前无法验证该区域的地址。

地址验证

要了解地址集合组件如何验证地址,请参阅 Address Validation API 概览

地址收集组件使用 @sys.address 系统实体捕获最终用户输入,并将捕获的地址发送到 Address Validation API 以提取地址元素以供进一步处理。

Address Validation API 会返回以下地址元素 供组件用于收集和验证完整地址:

  • administrative_area_level_1
  • 群岛
  • country
  • 市行政区
  • postal_code
  • 路线
  • street_number

您可以使用受支持的地区中的任何地址试用 Google 地址验证演示

命名规则

此预构建组件使用以下命名惯例:

特征 格式 示例
流程 [组件名称] 地址收集
特定于组件的 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. 选择 Build 标签页。
  5. 点击部分中导入的组件。
  6. 点击页面部分的“初始页”。
  7. 点击初始页中的 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:未确认地址,原因是地址没有确认。
NO_USER_CONFIRMATION 地址验证 API 错误导致未收集地址。
NO_USER_CONFIRMATION
string

基本设置

如需设置此预构建组件,请执行以下操作:

  1. 导入预构建组件
  2. 启用 Address Validation API。
  3. 配置提供的 灵活网络钩子 Maps API 密钥,请参阅下面的网络钩子设置。

网络钩子设置

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

地址验证 Webhook

此 Webhook 会执行以下操作:

  1. 处理捕获的对话式客服 (Dialogflow CX) 参数、表单请求,并使用 Address Validation API 验证地址。
  2. Google Address Validation API 响应中提取已确认、未确认、缺失和推断出的地址元素。

如需为此组件配置 webhook,您需要使用 Google 地图 API 密钥更新 webhook 设置。

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

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

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

完成

现在,您的代理及其 webhook 应该已设置完毕并准备好进行测试。