地址收集预构建组件会从最终用户处收集地址,并使用 Google Address Validation API 验证地址。
限制
除了常见的预构建组件限制之外,此预构建组件还具有以下限制:
- 仅支持 Address Validation API 覆盖范围详情中列出的国家/地区的地址。
其他功能
此预构建组件提供以下附加功能:
对话示例
以下示例对话展示了此预构建组件处理的常见场景。示例对话演示了通过电话呼叫组件时的行为,这会在对话开始时触发默认欢迎 intent 和第一个代理响应。
完整有效地址
最终用户提供完整地址,地址收集组件成功验证该地址。
| 用户输入 | 智能体回答 |
|---|---|
| 请先告诉我您的完整地址。 | |
| 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
- 国家/地区
- 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 调用的重试次数上限 | 整数 |
如需为此组件配置输入参数,请展开以查看相关说明。
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择构建标签页。
- 在流部分中点击导入的组件。
- 点击页面部分中的“Start Page”。
- 点击“Start Page”中的 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 |
基本设置
如需设置此预构建组件,请执行以下操作:
Webhook 设置
如需使用 Address Validation API 验证地址,您需要使用正确的凭证配置提供的灵活 webhook。
地址验证 webhook
此 webhook 会执行以下操作:
- 处理捕获的 Dialogflow CX 参数,形成请求,并使用 Address Validation API 验证地址。
- 从 Google Address Validation API 响应中提取已确认、未确认、缺失和推断的地址元素。
如需为此组件配置网络钩子,您需要使用地图 API 密钥更新网络钩子设置。
- 如需检索 API 密钥,请前往 Google Cloud Platform 控制台 > API 和服务 > 凭据,选择您的地图 API 密钥,然后复制“API 密钥”字段。
如需配置 webhook,请执行以下操作:
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择管理标签页。
- 点击网络钩子。
- 选择 prebuilt_components_address_collection:address_validation webhook。
- 将 Dialogflow CX 网络钩子网址字段中的网址替换为包含地图 API 密钥的网址:https://addressvalidation.googleapis.com/v1:validateAddress?key=MAPS_API_KEY
- 在身份验证设置中,将用户名配置为
key,并将密码设置为您的地图 API 密钥。 - 点击保存。
完成
您的代理及其 webhook 现在应该已设置完毕,可以进行测试了。