Dialogflow 支持多种语言。 如需查看完整列表,请参阅语言参考页面。 您在创建代理时选择的语言会设置为默认语言,您也可以添加其他语言。
根语言和区域特定语言
语言分为两类:
- 根语言:这种语言不指定语言区域,例如“英语 (en)”。
- 区域特定语言:这种语言将语言区域指定为特定国家或地区,例如“英语 - 美国 (en-US)”。
某些语言既是根语言又是区域特定语言。这些语言的语言区域明显不同,因此这些语言区域不能共享共同的根语言。示例:
- 中文 - 粤语(zh-HK)
- 简体中文 (zh-CN)
- 繁体中文 (zh-TW)
- 葡萄牙语 - 巴西 (pt-BR)
- 葡萄牙语 - 葡萄牙 (pt)
您应该主要针对根语言设计代理,并仅在需要时针对区域特定语言进行自定义。
添加语言
要使用 Dialogflow 控制台添加语言或语言区域,请按照以下步骤操作:
- 打开 Dialogflow CX 控制台。
- 为代理选择 Google Cloud 项目。
- 在列表中找到代理。
- 点击代理显示名。
- 点击代理设置。
- 点击语言标签页。
- 根据需要添加或移除语言。
- 点击保存。
语言特定数据
大多数代理数据对于多语言代理的所有语言都通用。但是,用于与最终用户互动的文本针对特定语言。构建多语言代理时,必须为每种语言提供此语言特定数据。当您从控制台中选择语言或向 API 提供语言时,您可以访问指定语言的这些语言特定数据。以下是特定语言数据的完整列表:
如需使用控制台访问特定语言的数据,请点击控制台顶部的语言按钮。
例如,下例中的“size”(尺寸)实体类型用于订购 T 恤。这个代理最初以英语配置,因此该实体具有“S”及同义词“small”这样的条目。 当添加了西班牙语时,Dialogflow 会针对新语言创建实体,但您需要以西班牙语提供实体条目。
如需使用 API 访问特定语言数据,请在获取、创建或更新 EntityType
、Intent
或Page
类型时提供 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
字段用于标识输入语言、解析语言和置信度得分。
启用自动检测语言
您必须在客服人员和流程级别启用语言自动检测功能。
前往客服人员设置,然后选择语言标签页。
选中启用语言自动检测和切换旁边的复选框,为客服人员启用此功能。点击保存以保存更改。
选择一个数据流,然后前往数据流设置。在流程设置面板中,选中启用语言自动检测和切换旁边的复选框。
在语言下拉菜单中,选择您希望 Dialogflow 能够以哪些语言进行回复。请确保您仅选择语言自动检测功能支持的语言。
点击保存以保存更改。
未提供代理语言的请求
当 Dialogflow 收到未提供代理支持的语言的请求时,需遵循以下规则:
- 当请求未提供语言时,Dialogflow 会自动确定输入语言,并在启用自动语言检测功能的情况下使用该语言进行回复。如果自动检测语言功能处于停用状态,Dialogflow 会使用默认语言处理该请求。
- 当请求提供代理不支持的区域特定语言,但代理支持其关联的根语言时,Dialogflow 使用根语言处理该请求。
- 上述规则不适用于系统实体提取。 系统实体提取使用提供的区域特定语言,即使代理不支持该区域特定语言也是如此。
集成
通过基于文本的集成进行的代理交互仅使用代理的默认语言。