地址收集预构建组件用于从最终用户处收集地址,并使用 Google Address Validation API 验证地址。
限制
除了常见的预构建组件限制之外,此预构建组件还存在以下限制:
- 仅支持 地址验证 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,国家/地区为美国。对吗?请说“是”或“否”。 |
|
| 是 | |
| 太棒了,我已经收集了地址。 |
无法识别的输入内容
最终用户提供无法识别的输入内容 3 次后,组件会退出流程。
| 用户输入 | 智能体回答 |
|---|---|
| 请先告诉我您的完整地址。 | |
| 没关系 | |
| 抱歉,我没听明白。请先告诉我您的完整地址。 | |
| nice | |
| 嗯,我还是没听明白。请先告诉我您的完整地址。 | |
| 非常好 | |
| 抱歉,我难以理解你的回答。 |
不支持的地址
在最终用户提供的地址不受 Address Validation API 目前支持时,组件会退出流程。
| 用户输入 | 智能体回答 |
|---|---|
| 请先告诉我您的完整地址。 | |
| 印度 | |
| 很抱歉,我目前无法验证该区域的地址。 |
地址验证
如需了解地址收集组件如何验证地址,请参阅 Address Validation API 概览。
地址收集组件使用 @sys.address 系统实体捕获最终用户输入,并将捕获的地址发送到地址验证 API 以提取地址元素,供进一步处理。
地址验证 API 会返回以下地址元素,这些元素由该组件用于收集和验证完整地址:
- administrative_area_level_1
- archipelago
- 国家/地区
- locality
- postal_code
- 路线
- street_number
您可以尝试使用受支持区域的任何地址来试用 Google 地址验证演示。
命名规则
此预构建组件使用以下命名惯例:
| 功能 | 格式 | 示例 |
|---|---|---|
| Flow | [组件名称] | 地址收集 |
| 特定于组件的 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 项目。
- 选择您的代理。
- 选择构建标签页。
- 点击流部分中导入的组件。
- 点击页面部分中的“起始页”。
- 点击起始页中的 true 路线。
- 在“路线”窗口中,根据需要修改参数预设值。
- 点击保存。
输出参数
输出参数是会话参数,在退出组件后仍会保持有效。这些参数包含组件收集的重要信息。此预构建组件可为以下输出参数提供值:
| 参数名称 | 说明 | 输出格式 |
|---|---|---|
| address_collection_address | 如果组件捕获了地址,此参数会返回地址对象 | { |
| address_collection_status | 此参数会返回所收集地址的状态。返回的值为以下之一:VALID_ADDRESS:地址已由地址验证 API 收集并验证。INVALID_ADDRESS:地址已由最终用户确认,但一个或多个元素未通过验证,或被地址验证 API 标记为 UNCONFIRMED_BUT_PLAUSIBLE。MAPS_API_ERROR:由于地址验证 API 错误,地址未被收集。COUNTRY_NOT_SUPPORTED:由于地址验证 API 不支持相应地区,地址未被收集。NO_USER_CONFIRMATION:由于最终用户未确认地址,地址未被确认。 |
string |
基本设置
如需设置此预建组件,请执行以下操作:
- 导入预构建组件。
- 启用地址验证 API。
- 使用您的 Maps API 密钥配置所提供的灵活的 Webhook,请参阅下文中的“Webhook 设置”。
网络钩子设置
如需使用 Address Validation API 验证地址,您需要使用正确的凭据配置所提供的灵活的 Webhook。
地址验证 webhook
此 Webhook 执行以下操作:
- 处理捕获到的 Dialogflow CX 参数,生成请求,并使用 Address Validation API 验证地址。
- 从 Google Address Validation API 响应中提取已确认、未确认、缺失和推断的地址元素。
如需为此组件配置网络钩子,您需要使用 Maps API 密钥更新网络钩子设置。
- 如需检索您的 API 密钥,请前往 Google Cloud Platform 控制台 > API 和服务 > 凭据,选择您的 Maps API 密钥,然后复制“API 密钥”字段。
如需配置网络钩子,请执行以下操作:
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择管理标签页。
- 点击网络钩子。
- 选择 prebuilt_components_address_collection:address_validation webhook。
- 将 Dialogflow CX Webhook 网址字段中的网址替换为包含您的 Maps API 密钥的网址:https://addressvalidation.googleapis.com/v1:validateAddress?key=MAPS_API_KEY
- 在身份验证设置中,将用户名配置为
key,并将密码设置为您的 Maps API 密钥。 - 点击保存。
完成
您的代理及其 Webhook 现在应已设置完毕,可以进行测试了。