定义操作 (Dialogflow)

如需在 Dialogflow 中定义 Action,您需要在 Dialogflow 代理中创建 intent,并将其指定为 Action 的入口点。您可以创建以下类型的 Action:

  • 默认操作:每个 Dialogflow 代理必须有且仅有一个在用户通过名称(例如,“Ok Google”聊聊有关 Google 的常识”“Ok, Google. 让我讲讲关于 Google 的事实信息”)。
  • 可深层链接到对话中的其他 intent:当用户通过其名称调用您的 Action 并指定调用短语(例如,“talk to Facts about Google for history facts”(与 Google 的事实信息交谈))时,就会触发这些 Action。

如需详细了解这些调用模型的工作原理,请参阅意图和调用

定义默认 Action

每个 Dialogflow 代理必须有且只能有一个意图处理 GOOGLE_ASSISTANT_WELCOME 事件。当用户通过 Action 的名称(例如“Ok Google, talk to Tacts about Google”)调用 Action 时,就会触发此 intent。

您可以通过以下方式定义 GOOGLE_ASSISTANT_WELCOME 事件:

在 Dialogflow 控制台的 intent 编辑器中,执行以下操作

  1. 点击导航菜单中的意图
  2. 选择要设置为欢迎事件的意图。
  3. 在 intent 的 Events 部分,输入 GOOGLE_ASSISTANT_WELCOME
  4. 点击保存

    图 1. Dialogflow 意图的“事件”部分的屏幕截图。

在 Google 助理集成模态窗口中

  1. 点击导航菜单中的 Integrations(集成),然后点击 Google Assistant
  2. 点击 X 移除显式调用字段中的当前项。
  3. 欢迎 intent 框中,选择要设置为欢迎事件的 intent。

    图 2. Dialogflow 控制台上 Google 助理集成模态窗口的屏幕截图。

当您查看 intent 的 Events 部分时,您应该会看到该 intent 现在已设置 GOOGLE_ASSISTANT_WELCOME 事件(参见图 1)。

启用 fulfillment

默认情况下,Dialogflow 意图会返回静态响应,该响应在意图的响应 (Response) 部分指定。对于需要在调用时仅用同一消息进行响应的简单 Action,此设置可能足够了。但是,如果您希望 intent 返回动态响应,则需要提供可以处理复杂逻辑并实时为 intent 编写响应的执行方式。

如需为 intent 启用 fulfillment,请执行以下操作:

  1. 滚动到 intent 的 intent 编辑器的底部。
  2. 点击 Fulfillment 然后选择为此意图启用 webhook 调用 (Enable webhook call for this intent)。

    图 3. Dialogflow intent 的 Fulfillment 部分的屏幕截图。

如需了解如何在 intent 被触发时对其进行处理,请参阅构建 fulfillment

定义其他操作

您可以提供其他 Action 作为对话的入口点。通过此设置,用户可以指定关于他们想要做什么的更多详细信息(例如,“了解 Google 的事实信息,帮我查找历史记录”)。

如需在 Dialogflow 中定义其他操作,请按以下步骤操作:

  1. 为您要构建的特定 Action 创建 intent。
  2. 在 intent 的训练短语部分中,指定触发此操作的模式。例如,如果您想要通过短语“Talk to Facts about Google to find me history 发短信 s”这一短语调用 Action,请提供以下训练短语

    • “查找历史事实”
    • “查询历史记录”
    • “我想了解公司的发展历史”
    • “给我播报一些总部相关信息”
    • “告诉我一些关于公司总部的信息”

    我们建议为每个意图至少使用 10 个训练短语。

  3. 如需为该 intent 启用 fulfillment,请滚动到屏幕底部,点击 Fulfillment,然后选择为此 intent 启用 webhook 调用。(如需详细了解 fulfillment,请参阅构建 fulfillment。)

  4. 点击保存

  5. 点击导航菜单中的 Integrations(集成),然后点击 Google Assistant。 (系统会显示 Google 助理模态窗口)。

  6. 隐式调用部分中,添加 intent。

    图 4. Google 助理集成模态窗口中的“隐式调用”部分的屏幕截图。

定义 Action 时,请遵循以下限制和准则:

  • 请勿在调用短语中包含预留字词
    • 例如,不要以“talk to”或“let me talk to”开头您的调用短语。
  • 请勿指定仅包含 @sys.any 实体的训练短语。
    • 要具体得多,例如 find recipes for @sys.any

处理无法识别的操作

当用户尝试调用您的 Action 无法识别的 Action 时,Dialogflow 可以触发 intent 来处理这些情况。

如需启用此行为,请创建一个输入上下文为 google_assistant_welcome 的新 intent,并指定对用户的适当响应:

  1. 在导航菜单中,点击 Intents
  2. 点击 Create intent 并为您的 intent 命名。
  3. 上下文部分中,指定 google_assistant_welcome 作为输入上下文,然后按 Enter 键。(进入输入上下文后,google_assistant_welcome 会显示为输出上下文)。
  4. 点击 x 可移除该输出上下文。

  5. 训练短语中,添加 banana(或任何其他名词)作为用户表达式。

  6. 双击 banana,然后选择 @sys.any。(我们使用 @sys.any 实体告知 Dialogflow 将表达式泛化为任何语法,而不仅仅是“香蕉”。)

  7. 响应部分中,使用 $any 指定响应。例如,使用以下响应:

    • I'm sorry, I don't know how to help with $any.

  8. 点击保存