多语言代理

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 会针对新语言创建实体,但您需要以西班牙语提供实体条目。

实体 同义词
XS XS,超小号
S S, pequeño
M M, medio
L L, grande
XL XL,特大号

AI 生成语言特定数据

借助 Conversational Agents (Dialogflow CX),您可以选择使用 AI 生成功能为您提供语言专属数据,从而加快添加数据的流程,而无需手动输入数据。作为预览版功能,您可以在意图、实体和履单级别执行此操作。

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

意向 AI 生成

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

  1. 前往代理设置 > 语言,确保您已为代理启用一种或多种非默认语言。
  2. 前往控制台顶部的语言下拉菜单,然后选择您选择的非默认语言。
  3. 前往管理标签页,然后点击意图并选择一个意图。确保说明字段中已填入 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 意图资源 意图资源
RPC 意图界面 意图界面
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 使用根语言处理该请求。
  • 上述规则不适用于系统实体提取。 系统实体提取使用提供的区域特定语言,即使代理不支持该区域特定语言也是如此。

集成

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