多语言代理

Dialogflow 支持多种语言。 如需查看完整列表,请参阅语言参考页面。 您在创建代理时选择的语言会设置为默认语言,您也可以添加其他语言。

根语言和区域特定语言

语言分为两类:

  • 根语言:这种语言不指定语言区域,例如“英语 (en)”
  • 区域特定语言:这种语言将语言区域指定为特定国家或地区,例如“英语 - 美国 (en-US)”

某些语言既是根语言又是区域特定语言。这些语言的语言区域明显不同,因此这些语言区域不能共享共同的根语言。示例:

  • 中文 - 粤语(zh-HK)
  • 简体中文 (zh-CN)
  • 繁体中文 (zh-TW)
  • 葡萄牙语 - 巴西 (pt-BR)
  • 葡萄牙语 - 葡萄牙 (pt)

您应该主要针对根语言设计代理,并仅在需要时针对区域特定语言进行自定义。

添加语言

如需使用 Dialogflow CX 控制台添加语言或语言区域,请按以下步骤操作:

  1. 打开 Dialogflow CX 控制台
  2. 为代理选择 Google Cloud 项目。
  3. 在列表中找到代理。
  4. 点击代理显示名。
  5. 点击代理设置
  6. 点击语言标签页。
  7. 根据需要添加或移除语言。
  8. 点击保存

语言特定数据

大多数代理数据对于多语言代理的所有语言都通用。但是,用于与最终用户互动的文本针对特定语言。构建多语言代理时,必须为每种语言提供此语言特定数据。当您从控制台中选择语言或向 API 提供语言时,您可以访问指定语言的这些语言特定数据。以下是特定语言数据的完整列表:

如需使用控制台访问特定语言的数据,请点击控制台顶部的语言按钮。

选择语言屏幕截图

例如,下例中的“size”(尺寸)实体类型用于订购 T 恤。代理最初是用英语配置的,因此该实体具有“S”及同义词“small”这样的条目。当添加了西班牙语时,Dialogflow 会针对新语言创建实体,但您需要以西班牙语提供实体条目。

实体屏幕截图

AI 生成语言特定数据

借助对话式 AI 客服 (Dialogflow CX),您可以选择使用 AI 生成功能为您提供特定于语言的数据,而不是手动输入数据,从而加快添加特定于语言的数据的速度。这可以在 intent、实体和执行级别作为预览版功能完成。

如果您选择不使用 AI 生成功能,仍然可以手动输入非默认语言的数据。

(预览版)intent AI 生成功能 { :#ai-intent}

自动生成非默认语言的训练短语

  1. 依次前往代理设置 > 语言,确保为您的客服人员启用了一种或多种非默认语言。
  2. 前往控制台顶部的语言下拉菜单,然后选择您选择的非默认语言。
  3. 前往管理标签页,然后点击intent 并选择其中一个 intent。确保在 Description 字段中填入了 intent 用途的说明。说明可以采用您的默认语言,也可以采用您正在查看的语言。
  4. 启用非默认语言后,Conversational Agents (Dialogflow CX) 不会将任何现有训练短语翻译成新语言。如需用新语言创建新的训练短语,请点击 __ LLM 新生成的短语放射状按钮。默认值为 3。如需复制并自动翻译现有的训练短语,请选择由 AI 生成的默认语言的所有训练短语
  5. 点击 + 添加。系统会生成您指定数量的训练短语,并以您选择的语言将其填充到表格中。请务必检查所有生成的训练短语,确保其准确无误。

(预览版)实体 AI 生成

自动生成和自动翻译非默认语言的参考值和同义词

  1. 依次前往代理设置 > 语言,确保为您的客服人员启用了一种或多种非默认语言。
  2. 前往控制台顶部的语言下拉菜单,然后选择您选择的非默认语言。
  3. 前往管理标签页,然后点击实体类型,然后选择一个实体类型。
  4. 启用非默认语言后,Conversational Agents (Dialogflow CX) 不会自动翻译任何现有引用值和同义词。如需将这些值自动翻译成新语言,请点击 + 从默认语言复制。默认语言实体类型的所有原始数据都将翻译成新语言并填充到表中。请注意,一次翻译超过 50 项内容可能会导致错误。每个引用值和同义词值都算作一个项。
  5. 您还可以点击 + 添加新条目来添加新的参考值。您可以使用默认语言输入引用值,系统会自动将引用值及其同义词翻译成新语言。

(预览版)执行 AI 生成

AI 生成功能适用于路线、路线组和事件处理脚本类型。如需详细了解这些路由类型,请参阅路由事件处理脚本文档。

只有当您以非默认语言查看客服人员,并且使用的是指定的某种路线类型时,才会看到此功能。前往路线的 Fulfillment 部分。如需自动将客服人员的回答从您的默认语言翻译成您正在查看的语言,请点击复制并翻译。请注意,一次翻译超过 50 条回复可能会导致错误。

使用 API 时语言特定数据

如需使用 API 访问特定语言数据,请在获取、创建或更新 EntityTypeIntentPage 类型时提供 languageCode 参数。

为 EntityType 参考选择协议和端口

协议 V3 V3beta1
REST EntityType 资源 EntityType 资源
RPC EntityType 接口 EntityType 接口
C++ EntityTypesClient 不可用
C# EntityTypesClient 不可用
Go EntityTypesClient 不可用
Java EntityTypesClient EntityTypesClient
Node.js EntityTypesClient EntityTypesClient
PHP 不可用 不可用
Python EntityTypesClient EntityTypesClient
Ruby 不可用 不可用

为意图参考选择协议和版本

协议 V3 V3beta1
REST intent 资源 intent 资源
RPC Intent 接口 Intent 接口
C++ IntentsClient 不可用
C# IntentsClient 不可用
Go IntentsClient 不可用
Java IntentsClient IntentsClient
Node.js IntentsClient IntentsClient
PHP 不可用 不可用
Python IntentsClient IntentsClient
Ruby 不可用 不可用

为页面参考选择协议和版本

协议 V3 V3beta1
REST 页面资源 页面资源
RPC 页面接口 页面接口
C++ PagesClient 不可用
C# PagesClient 不可用
Go PagesClient 不可用
Java PagesClient PagesClient
Node.js PagesClient PagesClient
PHP 不可用 不可用
Python PagesClient PagesClient
Ruby 不可用 不可用

您必须对每种语言分别进行 API 调用才能访问所有特定语言的数据。如果您的 API 调用更新了通用语言数据,则该数据将针对所有语言进行更新。

在模拟器中测试

使用模拟器时,可在代理名称下选择要使用的语言。

使用 API 提供语言

通过 API 发送请求时,请设置 detectIntent 方法的 queryInput.languageCode 字段。如需了解详情,请参阅 Sessions 类型。

选择会话引用的协议和版本

协议 V3 V3beta1
REST 会话资源 会话资源
RPC 会话接口 会话接口
C++ SessionsClient 不可用
C# SessionsClient 不可用
Go SessionsClient 不可用
Java SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP 不可用 不可用
Python SessionsClient SessionsClient
Ruby 不可用 不可用

自动检测语言

如果最终用户的询问语言与请求中指定的语言不同,Dialogflow 可以检测到这一点,并自动切换到最终用户的语言。如需查看此功能支持的语言列表,请参阅语言参考页面。启用语言检测后,WebhookRequest 中的 LanguageInfo 字段用于标识输入语言、解析语言和置信度得分。

启用自动检测语言

您必须在客服人员和流程级别启用语言自动检测功能。

  1. 前往客服人员设置,然后选择语言标签页。

  2. 选中启用语言自动检测和切换旁边的复选框,为客服人员启用此功能。点击保存以保存更改。

  3. 选择一个数据流,然后前往数据流设置。在流程设置面板中,选中启用语言自动检测和切换旁边的复选框。

  4. 语言下拉菜单中,选择您希望 Dialogflow 能够以哪些语言进行回复。请确保您仅选择语言自动检测功能支持的语言

  5. 点击保存以保存更改。

未提供代理语言的请求

当 Dialogflow 收到未提供代理支持的语言的请求时,需遵循以下规则:

  • 当请求未提供语言时,Dialogflow 会自动确定输入语言,并在启用自动语言检测功能的情况下使用该语言进行回复。如果自动检测语言功能处于停用状态,Dialogflow 会使用默认语言处理该请求。
  • 当请求提供代理不支持的区域特定语言,但代理支持其关联的根语言时,Dialogflow 使用根语言处理该请求。
  • 上述规则不适用于系统实体提取。 系统实体提取使用提供的区域特定语言,即使代理不支持该区域特定语言也是如此。

集成

通过基于文本的集成进行的代理交互仅使用代理的默认语言。