生成式回退

生成式回退功能使用 Google 最新的生成式大语言模型 (LLM),在最终用户输入与用于表单填写的意图或参数不匹配时,生成虚拟客服响应。

该功能可配置文本提示,用于指示 LLM 如何做出响应。您可以使用预定义的文本提示,也可以添加自己的提示。通过预定义提示,虚拟客服就可以处理基本的对话场景。例如:

  • 向用户致以问候和告别。
  • 重复客服人员所说的话,以防用户无法理解。
  • 在用户要求时,保持竖线。
  • 总结对话。

您可以为流程、页面或参数填充期间使用的无匹配事件处理脚本启用生成式回退。为非匹配事件启用生成式回退后,无论何时触发该事件,Dialogflow 都会尝试生成生成的响应并向用户回复。如果响应生成失败,将改为发出常规规定的代理响应。

限制

该功能支持 Gemini API 支持的语言

启用生成式回退

您可以在代理中通过可在流程、页面或参数执行方式中使用的无匹配事件处理脚本启用生成式回退。

为整个流的不匹配事件启用生成式回退:

  1. 转到 Dialogflow CX 控制台
  2. 选择一个项目。
  3. 选择代理,然后选择流。
  4. 点击流的初始页以将其展开。
  5. 点击事件处理脚本下的 sys.no-match-default
  6. 选中代理响应下的启用生成式回退
  7. 点击保存

针对特定非匹配事件启用生成式回退:

  1. 导航到目标 No-match 事件处理脚本(任何以 No-match 开头的事件,例如 No-match defaultNo-match 1 等)。
  2. 选中代理响应下的启用生成式回退
  3. 点击保存

配置生成式回退

如上所述,生成式回退功能会将请求传递给大语言模型,以生成生成的响应。请求采用文本提示的形式,其中包含自然语言以及有关代理和对话当前状态的信息。系统会根据禁止的短语列表检查提示和生成的响应。如果它们包含任何禁止的短语,或被认为不安全,则生成将失败,而是改为发出常规规定的响应(在代理说,在同一执行中)。

您可以通过多种方式配置此功能:

  1. 选择预定义的提示。
  2. 定义自定义提示。
  3. 在被禁词组列表中添加或移除词组。

创建提示时,除了以自然语言描述应生成何种上下文之外,还可以使用以下placeholders

期限 定义
$conversation 代理与用户之间的对话,不包括用户最后一条话语。
${conversation USER:"<用户前缀>" AI:"<代理前缀>" TURNS:<turn count>} $conversation 占位符的参数化版本。您可以自定义最终用户前缀 (USER)、代理前缀 (AI) 以及要包含的先前轮次的次数 (TURNS)。必须指定所有占位符参数值。例如:${conversation USER:"Human says:" AI:"Agent says:" TURNS:4}
$last-user-utterance 用户上一次话语。
$flow-description 活跃流的流说明
$route-descriptions 活跃 intent 的 intent 说明

务必提供恰当的流程和意图描述。

选择预定义的提示

  1. 代理设置中,前往生成式 AI 标签页,然后进入生成式回退子标签页。
  2. 选择模板下拉菜单中的一个选项。
  3. 点击保存

该功能提供了两个模板提示:默认模板(不可见)和示例模板(可作为指导来编写您自己的提示)。

定义您自己的提示

  1. 代理设置中,前往生成式 AI 标签页,然后进入生成式回退子标签页。
  2. 模板下拉菜单中选择 + 新模板
  3. 添加模板名称
  4. 添加文本提示
  5. 点击保存

您也可以先修改 Example 模板,然后将其另存为新模板:

  1. 模板下拉菜单中选择示例
  2. 点击修改
  3. 修改模板名称
  4. 修改文本提示
  5. 点击保存

修改禁止的词组列表

  1. 代理设置中,进入生成式 AI 标签页,然后转到常规子标签页。
  2. 禁止的短语部分,检查短语、向列表中添加短语或从中移除短语。
  3. 点击保存

测试生成式回退

您可以在模拟器中测试生成式回退功能。当非匹配事件被配置为生成生成响应时,只要用户话语导致流/页面不匹配,代理就会输出生成的响应。

Codelab

另请参阅生成式回退 Codelab

问题排查

如果您想要调试该功能,可以在 Dialogflow 控制台模拟器中检查已解析的大语言模型 (LLM) 输入提示:

  1. 点击原始回答按钮:

    原始回复

  2. 找到“生成式回退提示”(Generative Fallback Prompt) 字段。以纯文本形式读取这些字段,并检查 LLM 输入是否合理。如果任何短语包含 $,请检查模拟器输入,并澄清提示中的 $ 是否是有意为之(例如,price is $10 中的 $ 可能是有意为之,而 visit $city 可能不是,并且可能意味着使用有误或存在 bug)。如果您不确定,请与支持团队联系

  3. 如果您使用的是非默认提示模板,但看不到“生成式回退提示”字段,请与支持团队联系