地址收集 预构建组件 会从最终用户处收集地址,并使用 Google Address Validation API 验证地址。
限制
除了 常见的预构建组件限制之外, 此预构建组件还具有以下限制:
- 仅支持 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,国家/地区是 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 地址验证演示 试用 受支持区域中的任何地址。
命名规则
此预构建组件使用以下命名规则:
| 功能 | 格式 | 示例 |
|---|---|---|
| 流 | [组件名称] | 地址收集 |
| 组件专用意图 | prebuilt_components_[component_name]_[intent_name] | prebuilt_components_address_collection_locality |
| 参数 | [参数名称] | 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 网络钩子调用的最大重试次数上限 | 整数 |
如需为此组件配置输入参数,请展开即可查看说明。
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择构建 标签页。
- 点击流 部分中导入的组件。
- 点击页面 部分中的“起始页”。
- 点击起始页中的 true 路由。
- 在“路由”窗口中,根据需要修改参数预设 值。
- 点击保存 。
输出参数
输出参数是会话参数,在退出组件后仍处于活动状态。这些参数包含组件收集的重要信息。此预构建组件为以下输出参数提供值:
| 参数名称 | 说明 | 输出格式 |
|---|---|---|
| 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 验证地址,您需要使用正确的凭据配置提供的灵活网络钩子。
地址验证 网络钩子
此网络钩子执行以下操作:
- 处理捕获的 Dialogflow CX 参数,形成请求,并使用 Address Validation API 验证 地址。
- 从 Google Address Validation API 响应中提取已确认、未确认、缺失和推断出的地址元素。
如需为此组件配置网络钩子,您需要使用您的地图 API 密钥更新网络钩子设置。
- 如需检索您的 API 密钥,请依次前往 Google Cloud Platform 控制台 > API 和服务 > 凭据,选择您的地图 API 密钥,然后复制 API 密钥字段。
如需配置网络钩子,请执行以下操作:
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择管理标签页。
- 点击网络钩子 。
- 选择 prebuilt_components_address_collection:address_validation 网络钩子。
- 将 Dialogflow CX 网络钩子网址 字段中的网址替换为包含您的地图 API 密钥的网址:https://addressvalidation.googleapis.com/v1:validateAddress?key=MAPS_API_KEY
- 在身份验证 设置中,将“用户名”配置为
key,并将“密码”设置为您的地图 API 密钥。 - 点击保存 。
完成
您的代理及其网络钩子现在应已设置完毕,可以进行测试了。