实验设置说明和要求
保护您的账号和进度。请务必在无痕浏览器窗口中,使用实验凭证运行此实验。

构建基本的对话代理流

实验 1 小时 30 分钟 universal_currency_alt 5 个点数 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。

Google Cloud 自定进度实验

概览

Conversational Agents 提供了一种简单、可视化的机器人构建方法,可用于设计对话代理。机器人设计人员现在可以更清楚地了解整个机器人构建流程,多位设计人员还可轻松协作,共同构建同一代理。Conversational Agents 支持多种语言,可供代理使用和理解,但本实验将仅使用英语。

在本实验中,您将使用 Conversational Agents 控制台构建对话代理。

前提条件

您应该大致熟悉对话式 AI 的基本概念。建议仔细阅读这些对话示例,了解客户对话的大致形式。创建代理的第一步通常是通读客户对话记录和/或其他上下文数据,以便了解应用场景和具体业务需求。

设置

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验会以定时的方式进行,且您无法暂停实验。定时器(点击“开始实验”即可启动)会显示云资源可供您使用的时间。

Qwiklabs 实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud Platform。

要求

要完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
  • 为完成实验留出时间。

注意:如果您已拥有个人 GCP 帐号或项目,请不要使用其进行此实验。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

    • “打开 Google Cloud 控制台”按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示“登录”页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在“实验详细信息”窗格中找到“用户名”。

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在“实验详细信息”窗格中找到“密码”。

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

启用 Dialogflow 和 AI Applications API

  1. 在 Google Cloud 控制台的搜索字段中,输入“Dialogflow API”。
  2. 选择 Dialogflow API 图块。
  3. 点击启用按钮。
  4. 如需激活 AI Applications API,请前往 AI Applications 控制台,然后点击继续并激活 API

点击“检查我的进度”,验证已完成以下目标: 启用 Dialogflow 和 AI Applications API

任务 1. 创建代理

  1. 如需创建新的对话代理,请在 AI Applications 控制台中选择对话代理作为应用类型,然后点击创建
  1. Conversational Agents 随即会在一个新页面中打开。如果出现项目选择弹出式窗口,请选择您的项目 ID

    注意:如果您的项目 ID 未列出,请查看右侧的用户,确认您是以学生身份使用 Conversational Agents。

    ca_console.png

  2. Get started with Conversational Agents 弹出式窗口中,选择 Build your own

  3. Create agent 页面上,输入 Flight booker 作为代理显示名称。

  4. 选择 global 作为位置。

  5. Conversation start 设置为 Playbook,然后点击 Create 按钮。

  1. 在 Conversational Agents 控制台中,前往 Agent Overview。点击 Default Generative Playbook,然后点击 Settings 标签页,最后点击 (Agent) Settings 按钮。
  1. 如需为代理启用日志记录,请在 Agent Settings 页面上点击 General 标签页。然后,向下滚动到 Logging settings 部分,并勾选 Enable Cloud LoggingEnable Conversation History 旁边的复选框。设置完成后,系统将为此代理生成日志。

    “Agent Settings”页面的“General”标签页,其中已勾选“Enable Cloud Logging”选项
  2. 点击 Save

点击检查我的进度,查验以下目标是否已完成:

创建代理

知识测验

任务 2. 意图

意图是指最终用户与代理互动的原因,例如订购商品。您可以为用户可能想要浏览的每个主题创建意图

意图可在多个页面和流中重复使用。每个意图都由最终用户通常会提出的训练短语定义。您可以为这些训练短语添加注解或“标签”,以便收集特定参数,例如到达城市或出发日期。

当您为意图添加训练短语时,Conversational Agents 会推荐注解;您也可以手动添加注解,以便收集您希望从最终用户与代理的互动中提取的参数值。

建议:为了方便重复使用意图,并简化维护工作,请为意图指定清晰明确的名称。

意图格式:category.some_description

格式设置示例:

  • 核心意图:main.book_a_flight
  • 常见但非核心的意图:supplemental.flight_emissions
  • 可重复使用的意图:confirmation.yesconfirmation_noredirect.live_agent

创建第一个意图

  1. 如需创建新意图,请前往 Flows,然后点击 Manage 标签页,选择 Intents,最后点击 + Create

    “Intents”标签页:其中突出显示了“Create”按钮
  2. 对于 Display name,输入 main.book_a_flight

  3. Training Phrases 标题下,将以下每个短语添加到 Custom training phrase 字段中,并在输入每个短语后按 Enter 键:

    • 预订航班
    • 可以帮我预订下个月飞往旧金山的航班吗
    • 我想使用奖励积分预订 10 月份从米兰出发的航班
    • 我的家人下周要来,我们需要预订 6 张往返机票
    • 4 张从台湾飞往迪拜的商务舱机票,出发日期为 6 月 2 日至 30 日
    • 我需要预订周六从洛杉矶飞往圣何塞的航班
    • 预订 8 月 10 日从旧金山国际机场飞往迈阿密的单程机票
    • 请帮我预订 4 月 10 日至 4 月 15 日从墨西哥城到哥伦比亚麦德林的机票
    • 我想为妈妈安排一次惊喜旅行,可以帮忙规划 5 月 10 日至 5 月 25 日飞往哥斯达黎加的行程吗
    • 有没有本周末飞往纽约市的特价机票
    • 我想为亲戚预订 8 月 8 日从蒙特利尔飞过来的机票
    • 我想预订两张 7 月 4 日飞往巴拿马城的机票
    • 我们计划在结婚纪念日去西雅图过圣诞节
    注意:为了提高模型准确率,建议使用 20-50 个训练短语,并同时提供简单和详细的回答选项。
  4. 点击 Save

    “Intents”标签页:其中突出显示了“Save”按钮
注意:您还可以创建训练短语 CSV 文件并将其上传到 Conversational Agents,以此来批量添加训练短语。

任务 3. 流和页面

用于定义主题和关联的对话路径。每个代理都有一个名为默认初始流的流。对于简单的代理,可能只需要这一个流。

较复杂的代理可能需要更多的流,不同的开发团队成员会负责构建和维护这些流。

“默认初始流”图表

每个流都以页面开头,并由一个或多个不同的后续页面组成,用于处理特定流中的对话。最终用户当前所在的页面被视为活跃页面。您可以将每个页面配置为从最终用户那里收集任何所需信息。

从默认初始流开始构建

代理的启动页面称为“默认初始流”。页面会存储路由逻辑、响应(称为 fulfillment),以及在无法匹配意图(称为“无匹配”)或未收到输入(即代理未能及时收到响应)时要采取的特定操作。

  1. Flows 控制台中,点击 Build 标签页。

  2. 点击 Start Page 以打开该页面。

  3. Start Page 的展开选项中,选择 Routes 旁边的 + 图标。

    突出显示的“Routes”和加号图标
  4. 从下拉菜单中选择意图 main.book_a_flight,然后点击 Save

    “Route”窗口:其中选中了 main.book_a_flight 意图,且突出显示了“Save”按钮
  5. 接下来,在 Routes 部分中,点击 main.book_a_flight 路由。

    “Routes”部分:其中突出显示了 main.book_a_flight 路由
  1. 向下滚动到 Transition 部分,选择 Page 单选选项,然后从下拉菜单中选择 + new Page

  2. 将页面命名为 Ticket information,然后点击 Save

    突出显示的“Page name”字段,其中已填充“Ticket information”
  3. 退出窗口,并返回到流的主界面,即可看到新的 Ticket information 页面已连接到 Start 页面。

    包含流图表的主界面

    流一开始会先展示问候语,然后在匹配到 main.book_a_flight 意图时会进入 Ticket information 页面。在 Ticket information 页面上,您将从最终用户那里收集参数,以便他们预订航班。

任务 4. 实体和参数

  • 实体用于定义您希望从最终用户那里提取的信息类型,例如想要飞往的城市。使用 Conversational Agents 内置的系统实体来匹配日期、时间、颜色、邮箱等。

  • 系统实体也可以进行“扩展”,以纳入默认系统值以外的值。如果需要创建完全自定义的实体,可以创建自定义实体类型,以匹配业务特有且系统实体未包含的数据。

  • 参数是指最终用户在会话期间提供的信息,例如日期、时间和目的地城市。每个参数都有一个名称和一个实体类型。它们采用蛇形命名法(通过下划线连接小写单词)。

创建第一组参数

接下来,您将使用实体从最终用户那里提取必要参数。

  1. 点击 Ticket Information 页面,然后点击 Parameters 旁边的 +,以收集航班数据。

  2. Display name 字段中,输入 departure_city

  3. Entity type 下拉菜单中选择 @sys.geo-city

  4. 向下滚动到 Initial prompt Fulfillment 部分。在 Agent Responses 下点击 + Add dialogue response,接着选择 Agent dialogue,然后添加 What city would you like the flight to depart from?

    “Initial prompt Fulfillment”部分,其中“Agent dialogue”字段已填充
  1. 点击 Save

  2. 退出此窗口以创建其他参数。

  3. 再次点击 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?

    创建完成后,这些参数会按以下形式列出:

    显示已添加参数列表的“Parameters”页面

注意:参数的列出顺序会影响航班预订代理询问各项相应信息的顺序。上下拖动参数即可轻松更改顺序。

知识测验

任务 5. 条件

代理收集到必要的 5 个航班预订参数后,您就需要使用路由条件将最终用户路由到另一个页面,接下来您将创建条件。

  1. 退出参数窗口,再次返回到 Ticket information 页面。

  2. 向下滚动到 Routes,然后点击旁边的 + 符号。

  3. 向下滚动到 Condition,然后在 Condition rules 下选择“Match AT LEAST ONE rule (OR)”

  4. Parameter 字段中,输入 $page.params.status

  5. Operand 下拉菜单中选择 = 符号。

  6. Value 字段中输入 "FINAL"(务必要加上双引号)。

    突出显示“Parameter”字段的“Condition”部分
  7. 点击 Save

知识测验

任务 6. Fulfillment

现在添加一个响应,以便在收集到最终用户的所有 5 个预订参数时告知对方。这些响应称为 fulfillment

  1. 在刚才创建条件的页面上,稍微向下滚动一点,找到 Fulfillment 部分。

  2. 向下滚动到 Fulfillment 部分。在 Agent Responses 下点击 + Add dialogue response,接着选择 Agent dialogue,然后添加 Thank you for that information. Let me check on the availability of your ticket

    (现在请不要关闭此页面,并继续阅读下一个步骤“确认信息”。)

    “Fulfillment”部分,其中突出显示已填充的“Agent dialogue”字段
  1. 点击 Save

任务 7. 确认信息

提供响应(或 fulfillment)后,您需要创建转到新页面的过渡,该页面会向最终用户重复显示收集到的旅行信息(参数),以供他们确认信息是否正确无误。

  1. 继续向下滚动(越过上一步操作所在的“Fulfillment”部分),找到 Transition 部分。

  2. 选择 Page 单选选项,然后从下拉菜单中选择 + new Page

  3. Page name 字段中输入 Confirm trip

    “Transition”部分,其中突出显示已填充的“Page name”字段
  4. 点击 Save

  5. 退出窗口。

  6. 看一下这个包含 3 个页面的流。

    包含流图表的主界面。流节点包括“Start”“Ticket information”和“Confirm Trip”

向最终用户重复显示收集到的参数

会话参数用于存储之前从最终用户那里收集到的信息,并在整个会话期间持续有效,方便您向最终用户重复显示信息。

例如,可以让代理重复显示乘客的姓名:Thanks for providing that information, $session.params.passenger_name。最终用户会看到以下内容:Thanks for providing information, John Day.

格式如下:

  • 前缀$session.params.
  • 实体名称passenger_name

因此,引用出发城市的格式将如下所示:$session.params.departure_city

  1. 从“Build”视图开始,依次点击 Confirm Trip 页面 > Entry fulfillment > Edit fulfillment 字段。

    突出显示“Edit Fulfillment”字段的“Confirm trip”窗口
  2. 您使用了 5 个参数,因此可以通过以下会话参数,向用户重复显示这些参数。依次前往 Agent responses > + Add dialogue response > Agent dialogue 部分,然后在其中粘贴以下文本:

    This is to confirm that $session.params.passenger_name will fly From: $session.params.departure_city To: $session.params.destination_city Leaving on: $session.params.departure_date Returning on: $session.params.return_date Is this correct? “Fullfillment”窗口,其中“Agent dialogue”字段已填充
  3. 然后点击 Save

  4. 对话代理重复显示收集到的会话参数时,最终用户看到的内容如下所示:

    显示收集到的会话参数的对话代理

肯定确认路由

  1. 退出窗口,返回到 Confirm Trip 页面。点击 Routes 旁边的 +

    突出显示加号按钮的“Confirm trip”页面
  2. 点击 Intents 下拉菜单,然后点击 + new Intent

    突出显示“+ new intent”选项的“Intent”下拉菜单
  3. Display name 中,输入 confirmation.yes

  4. Training phrases 中输入 yes,然后点击 Add(您可以添加更多短语,例如“correct”“yup”等,以改进此意图的 NLU 匹配)。

    “Training phrases”部分,文本字段中填充了“yes”和“correct”
  5. 点击 Save

  6. 保存后,向下滚动到 Fulfillment 部分。在 Agent Responses 下点击 + Add dialogue response,接着选择 Agent dialogue,然后输入 Great, your flight is booked!

    突出显示的“Agent dialogue”字段,其中显示了以下消息:“Great, your flight is booked!”
  1. 然后点击 Save

  2. 点击 Route 旁边的返回箭头。

    突出显示的返回箭头

否定确认路由

现在添加另一个逻辑,在最终用户表示信息不正确时,引导其重新提供航班参数。

  1. 同样是在“Routes”部分中选择 Add route

    突出显示的“Add route”按钮
  2. 从“Intents”下拉菜单中选择 + new Intent

  3. Display name 字段中,将意图命名为 confirmation.no

    突出显示的“Display name”字段,其中已输入“confirmation.no”
  4. 向下滚动到 Training phrases 部分,输入 no,然后点击 Add

  5. 点击 Save

  6. 接下来,向下滚动到 Transition > Page 部分,然后从下拉菜单中选择 Ticket information

    “Transition”部分,其中“Page”下拉菜单中已选择“Ticket information”信息 注意:这是为了再次提示用户输入航班信息。
  7. 向上滚动到 Parameter presets,然后点击 Add parameter。输入以下 5 个值,并将其值指定为 null(不加引号)。

    注意:您需要删除值列中的引号,然后输入 null。这是为了删除从最终用户那里收集的参数。
    参数
    departure_city null
    destination_city null
    departure_date null
    return_date null
    passenger_name null
    “Parameter presets”部分,其中五个参数的值均为 null

    这样做的目的是移除之前从最终用户那里收集的值,以便他们提交新值。如果错过这一步,聊天机器人可能会陷入无限循环!

  8. 点击 Save

  9. 退出窗口,并返回到“Build”视图,您现在将看到这 3 个页面的流向。请注意,最后一个页面在 Confirm tripTicket information 页面之间有两个箭头,因为 confirmation.no 意图被关联回上一个页面。

    显示流图表的“Build”视图

    知识测验

任务 8. 测试

  1. 如需测试代理是否按预期运行,请点击屏幕右上角的 Toggle Simulator 图标。

    显示流图表的“Build”视图
  2. Preview: Default Start Flow 页面的 Start Resource 部分中,选择 Default Start Flow,然后测试您的代理。

    Default Start Flow
  3. 像最终用户一样与代理互动。在浏览主要流时,请注意您创建的页面、意图和过渡。

    根据参数收集的安排方式,您可以尝试输入以下示例对话:

    • I'd like to book a flight
    • Austin
    • Tomorrow
    • Boston
    • Next Friday
    • Mickey Mouse
    • Yes

    您的代理应该能够顺利完成交易,也就是通常所说的理想路径

    以下是在“Test Agent”控制台中测试上述代理的示例:

    呈现模拟器流示例的“Test Agent”控制台

点击“检查我的进度”,验证已完成以下目标: 测试代理

任务 9. 导出代理

为一个项目构建代理后,可以将其导出以在其他项目中使用。您可以导出代理并保存,以便在未来的实验中使用,也可以在自己的个人项目中继续构建!

  1. 在 Conversational Agents 控制台顶部的 Agent 下拉菜单中,点击 View all agents

    展开的“Agent”下拉菜单,其中突出显示“View all agents”按钮
  2. 在代理列表屏幕上,点击代理旁边的上下文菜单,然后点击 Export

    展开的上下文菜单,其中突出显示“Export”按钮
  3. 在“Export agent”屏幕上,选择 Download 以下载到本地文件,然后点击 Export

    “Export agent”页面,其中突出显示已选中的“Download”选项

恭喜!

您已成功构建完整的对话代理流!您创建了代理、定义了意图、构建了流和页面,并使用实体和参数提取了数据。您还定义了条件、fulfillment 响应,并对代理进行了全面测试。通过本实验,您深入掌握了对话代理的开发技巧。

后续步骤/了解详情

上次更新手册的时间:2025 年 5 月 29 日

上次测试实验的时间:2025 年 5 月 29 日

版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

使用无痕模式或无痕浏览器窗口是运行此实验的最佳方式。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。