地址收集预构建组件会从最终用户收集地址,并使用 Google Address Validation API 验证地址。
限制
除了 常见的预构建组件限制, 此预构建组件具有以下限制:
- 仅支持 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 调用的最大重试次数限制 | 整数 |
若要配置此组件的输入参数,请展开即可查看相关说明。
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择 Build 标签页。
- 点击流部分中导入的组件。
- 点击页面部分的“初始页”。
- 点击初始页中的 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 :未确认地址,原因是地址没有确认。NO_USER_CONFIRMATION 地址验证 API 错误导致未收集地址。NO_USER_CONFIRMATION |
string |
基本设置
如需设置此预构建组件,请执行以下操作:
网络钩子设置
如需使用 Address Validation API 验证地址,您需要使用正确的凭据配置提供的灵活 webhook。
地址验证 Webhook
此 Webhook 会执行以下操作:
- 处理捕获的对话式客服 (Dialogflow CX) 参数、表单请求,并使用 Address Validation API 验证地址。
- 从 Google Address Validation API 响应中提取已确认、未确认、缺失和推断出的地址元素。
如需为此组件配置 webhook,您需要使用 Google 地图 API 密钥更新 webhook 设置。
- 如需检索您的 API 密钥,请依次前往 Google Cloud Platform 控制台 > API 和服务 > 凭据,选择您的 Google 地图 API 密钥,然后复制“API 密钥”字段。
如需配置该 webhook,请执行以下操作:
- 打开 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择管理标签页。
- 点击网络钩子。
- 选择 prebuilt_components_address_collection:address_validation webhook。
- 将 Conversational Agents (Dialogflow CX) Webhook 网址 字段中的网址替换为网址 (包括您的 Maps API 密钥):https://addressvalidation.googleapis.com/v1:validateAddress?key=MAPS_API_KEY
- 在身份验证设置中,将用户名配置为
key
, 将密码设置为您的 Maps API 密钥。 - 点击保存。
完成
现在,您的代理及其 webhook 应该已设置完毕并准备好进行测试。