多语言代理

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

根语言和区域特定语言

语言分为两类:

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

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

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

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

添加语言

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

  1. 在左侧边栏菜单中,点击现有语言旁边的添加语言 按钮。
    系统随即会转到代理设置的语言标签页。
  2. 选择其他语言 (Select Additional Language) 下拉菜单中选择一种语言。
  3. 要添加语言区域,请将鼠标悬停在所选的根语言上,然后点击 + 添加语言区域 (+ Add locale)。
  4. 点击保存

语言特定数据

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

要使用控制台访问特定语言的数据,请点击代理名称下的语言按钮。

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

实体屏幕截图

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

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

在模拟器中测试

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

使用 API 提供语言

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

未提供代理语言的请求

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

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

集成

基于文本和电话网关集成的代理交互仅使用代理的默认语言。