准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Enable the Dialogflow and AI Applications APIs
/ 20
Create an Agent
/ 30
Test the agent
/ 50
Conversational Agents 提供了一种简单、可视化的机器人构建方法,可用于设计对话代理。机器人设计人员现在可以更清楚地了解整个机器人构建流程,多位设计人员还可轻松协作,共同构建同一代理。Conversational Agents 支持多种语言,可供代理使用和理解,但本实验将仅使用英语。
在本实验中,您将使用 Conversational Agents 控制台构建对话代理。
您应该大致熟悉对话式 AI 的基本概念。建议仔细阅读这些对话示例,了解客户对话的大致形式。创建代理的第一步通常是通读客户对话记录和/或其他上下文数据,以便了解应用场景和具体业务需求。
请阅读以下说明。实验会以定时的方式进行,且您无法暂停实验。定时器(点击“开始实验”即可启动)会显示云资源可供您使用的时间。
Qwiklabs 实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud Platform。
要完成此实验,您需要:
注意:如果您已拥有个人 GCP 帐号或项目,请不要使用其进行此实验。
点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示“登录”页面。
提示:将这些标签页安排在不同的窗口中,并排显示。
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
您也可以在“实验详细信息”窗格中找到“用户名”。
点击下一步。
复制下面的密码,然后将其粘贴到欢迎对话框中。
您也可以在“实验详细信息”窗格中找到“密码”。
点击下一步。
继续在后续页面中点击以完成相应操作:
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
点击“检查我的进度”,验证已完成以下目标:
Conversational Agents 随即会在一个新页面中打开。如果出现项目选择弹出式窗口,请选择您的项目 ID
在 Get started with Conversational Agents 弹出式窗口中,选择 Build your own。
在 Create agent 页面上,输入 Flight booker 作为代理显示名称。
选择 global 作为位置。
将 Conversation start 设置为 Playbook,然后点击 Create 按钮。
如需为代理启用日志记录,请在 Agent Settings 页面上点击 General 标签页。然后,向下滚动到 Logging settings 部分,并勾选 Enable Cloud Logging 和 Enable Conversation History 旁边的复选框。设置完成后,系统将为此代理生成日志。
点击 Save。
点击检查我的进度,查验以下目标是否已完成:
知识测验
意图是指最终用户与代理互动的原因,例如订购商品。您可以为用户可能想要浏览的每个主题创建意图。
意图可在多个页面和流中重复使用。每个意图都由最终用户通常会提出的训练短语定义。您可以为这些训练短语添加注解或“标签”,以便收集特定参数,例如到达城市或出发日期。
当您为意图添加训练短语时,Conversational Agents 会推荐注解;您也可以手动添加注解,以便收集您希望从最终用户与代理的互动中提取的参数值。
建议:为了方便重复使用意图,并简化维护工作,请为意图指定清晰明确的名称。
意图格式:category.some_description
格式设置示例:
main.book_a_flight
supplemental.flight_emissions
confirmation.yes、confirmation_no、redirect.live_agent。如需创建新意图,请前往 Flows,然后点击 Manage 标签页,选择 Intents,最后点击 + Create。
对于 Display name,输入 main.book_a_flight。
在 Training Phrases 标题下,将以下每个短语添加到 Custom training phrase 字段中,并在输入每个短语后按 Enter 键:
点击 Save。
流用于定义主题和关联的对话路径。每个代理都有一个名为默认初始流的流。对于简单的代理,可能只需要这一个流。
较复杂的代理可能需要更多的流,不同的开发团队成员会负责构建和维护这些流。
每个流都以页面开头,并由一个或多个不同的后续页面组成,用于处理特定流中的对话。最终用户当前所在的页面被视为活跃页面。您可以将每个页面配置为从最终用户那里收集任何所需信息。
代理的启动页面称为“默认初始流”。页面会存储路由逻辑、响应(称为 fulfillment),以及在无法匹配意图(称为“无匹配”)或未收到输入(即代理未能及时收到响应)时要采取的特定操作。
在 Flows 控制台中,点击 Build 标签页。
点击 Start Page 以打开该页面。
在 Start Page 的展开选项中,选择 Routes 旁边的 + 图标。
从下拉菜单中选择意图 main.book_a_flight,然后点击 Save。
接下来,在 Routes 部分中,点击 main.book_a_flight 路由。
向下滚动到 Transition 部分,选择 Page 单选选项,然后从下拉菜单中选择 + new Page。
将页面命名为 Ticket information,然后点击 Save。
退出窗口,并返回到流的主界面,即可看到新的 Ticket information 页面已连接到 Start 页面。
流一开始会先展示问候语,然后在匹配到 main.book_a_flight 意图时会进入 Ticket information 页面。在 Ticket information 页面上,您将从最终用户那里收集参数,以便他们预订航班。
实体用于定义您希望从最终用户那里提取的信息类型,例如想要飞往的城市。使用 Conversational Agents 内置的系统实体来匹配日期、时间、颜色、邮箱等。
系统实体也可以进行“扩展”,以纳入默认系统值以外的值。如果需要创建完全自定义的实体,可以创建自定义实体类型,以匹配业务特有且系统实体未包含的数据。
参数是指最终用户在会话期间提供的信息,例如日期、时间和目的地城市。每个参数都有一个名称和一个实体类型。它们采用蛇形命名法(通过下划线连接小写单词)。
接下来,您将使用实体从最终用户那里提取必要参数。
点击 Ticket Information 页面,然后点击 Parameters 旁边的 +,以收集航班数据。
在 Display name 字段中,输入 departure_city。
从 Entity type 下拉菜单中选择 @sys.geo-city。
向下滚动到 Initial prompt Fulfillment 部分。在 Agent Responses 下点击 + Add dialogue response,接着选择 Agent dialogue,然后添加 What city would you like the flight to depart from?。
点击 Save。
退出此窗口以创建其他参数。
再次点击 Parameters 旁边的 +,并按照以下名称、实体类型以及代理向最终用户提出的问题,依次创建另外 4 个参数。
| 显示名称 | 实体类型 | 代理对话 |
|---|---|---|
| departure_date | @sys.date | What is the month and day of the departure? |
| destination_city | @sys.geo-city | What is your destination city? |
| return_date | @sys.date | What is the month and day for the returning flight? |
| passenger_name | @sys.any | What is the passenger's name? |
创建完成后,这些参数会按以下形式列出:
知识测验
代理收集到必要的 5 个航班预订参数后,您就需要使用路由条件将最终用户路由到另一个页面,接下来您将创建条件。
退出参数窗口,再次返回到 Ticket information 页面。
向下滚动到 Routes,然后点击旁边的 + 符号。
向下滚动到 Condition,然后在 Condition rules 下选择“Match AT LEAST ONE rule (OR)”
在 Parameter 字段中,输入 $page.params.status。
从 Operand 下拉菜单中选择 = 符号。
在 Value 字段中输入 "FINAL"(务必要加上双引号)。
点击 Save。
知识测验
现在添加一个响应,以便在收集到最终用户的所有 5 个预订参数时告知对方。这些响应称为 fulfillment。
在刚才创建条件的页面上,稍微向下滚动一点,找到 Fulfillment 部分。
向下滚动到 Fulfillment 部分。在 Agent Responses 下点击 + Add dialogue response,接着选择 Agent dialogue,然后添加 Thank you for that information. Let me check on the availability of your ticket。
(现在请不要关闭此页面,并继续阅读下一个步骤“确认信息”。)
提供响应(或 fulfillment)后,您需要创建转到新页面的过渡,该页面会向最终用户重复显示收集到的旅行信息(参数),以供他们确认信息是否正确无误。
继续向下滚动(越过上一步操作所在的“Fulfillment”部分),找到 Transition 部分。
选择 Page 单选选项,然后从下拉菜单中选择 + new Page。
在 Page name 字段中输入 Confirm trip。
点击 Save。
退出窗口。
看一下这个包含 3 个页面的流。
会话参数用于存储之前从最终用户那里收集到的信息,并在整个会话期间持续有效,方便您向最终用户重复显示信息。
例如,可以让代理重复显示乘客的姓名:Thanks for providing that information, $session.params.passenger_name。最终用户会看到以下内容:Thanks for providing information, John Day.
格式如下:
因此,引用出发城市的格式将如下所示:$session.params.departure_city
从“Build”视图开始,依次点击 Confirm Trip 页面 > Entry fulfillment > Edit fulfillment 字段。
您使用了 5 个参数,因此可以通过以下会话参数,向用户重复显示这些参数。依次前往 Agent responses > + Add dialogue response > Agent dialogue 部分,然后在其中粘贴以下文本:
然后点击 Save。
对话代理重复显示收集到的会话参数时,最终用户看到的内容如下所示:
退出窗口,返回到 Confirm Trip 页面。点击 Routes 旁边的 +。
点击 Intents 下拉菜单,然后点击 + new Intent。
在 Display name 中,输入 confirmation.yes。
在 Training phrases 中输入 yes,然后点击 Add(您可以添加更多短语,例如“correct”“yup”等,以改进此意图的 NLU 匹配)。
点击 Save。
保存后,向下滚动到 Fulfillment 部分。在 Agent Responses 下点击 + Add dialogue response,接着选择 Agent dialogue,然后输入 Great, your flight is booked!
然后点击 Save。
点击 Route 旁边的返回箭头。
现在添加另一个逻辑,在最终用户表示信息不正确时,引导其重新提供航班参数。
同样是在“Routes”部分中选择 Add route。
从“Intents”下拉菜单中选择 + new Intent。
在 Display name 字段中,将意图命名为 confirmation.no。
向下滚动到 Training phrases 部分,输入 no,然后点击 Add。
点击 Save。
接下来,向下滚动到 Transition > Page 部分,然后从下拉菜单中选择 Ticket information。
向上滚动到 Parameter presets,然后点击 Add parameter。输入以下 5 个值,并将其值指定为 null(不加引号)。
| 参数 | 值 |
|---|---|
departure_city |
null |
destination_city |
null |
departure_date |
null |
return_date |
null |
passenger_name |
null |
这样做的目的是移除之前从最终用户那里收集的值,以便他们提交新值。如果错过这一步,聊天机器人可能会陷入无限循环!
点击 Save。
退出窗口,并返回到“Build”视图,您现在将看到这 3 个页面的流向。请注意,最后一个页面在 Confirm trip 和 Ticket information 页面之间有两个箭头,因为 confirmation.no 意图被关联回上一个页面。
知识测验
如需测试代理是否按预期运行,请点击屏幕右上角的 Toggle Simulator 图标。
在 Preview: Default Start Flow 页面的 Start Resource 部分中,选择 Default Start Flow,然后测试您的代理。
像最终用户一样与代理互动。在浏览主要流时,请注意您创建的页面、意图和过渡。
根据参数收集的安排方式,您可以尝试输入以下示例对话:
您的代理应该能够顺利完成交易,也就是通常所说的理想路径。
以下是在“Test Agent”控制台中测试上述代理的示例:
点击“检查我的进度”,验证已完成以下目标:
为一个项目构建代理后,可以将其导出以在其他项目中使用。您可以导出代理并保存,以便在未来的实验中使用,也可以在自己的个人项目中继续构建!
在 Conversational Agents 控制台顶部的 Agent 下拉菜单中,点击 View all agents。
在代理列表屏幕上,点击代理旁边的上下文菜单,然后点击 Export。
在“Export agent”屏幕上,选择 Download 以下载到本地文件,然后点击 Export。
您已成功构建完整的对话代理流!您创建了代理、定义了意图、构建了流和页面,并使用实体和参数提取了数据。您还定义了条件、fulfillment 响应,并对代理进行了全面测试。通过本实验,您深入掌握了对话代理的开发技巧。
上次更新手册的时间:2025 年 5 月 29 日
上次测试实验的时间:2025 年 5 月 29 日
版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验