Dialogflow は多くの言語をサポートしています。完全なリストは、言語のリファレンス ページをご覧ください。エージェントの作成時に選択した言語が、デフォルト言語として設定されます。また、追加の言語を設定できます。
ルート言語およびロケール固有の言語
言語には次の 2 つのカテゴリがあります。
- ルート言語: English (en) のように、地域を限定しない言語です。
- ロケール固有の言語: English - US (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 | インテント リソース | インテント リソース |
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
フィールドは、言語検出が有効な場合の、入力言語、解決済み言語、信頼スコアを識別します。
言語の自動検出を有効にする
エージェント レベルとフロー レベルの両方で言語の自動検出を有効にする必要があります。
[エージェントの設定] に移動し、[言語] タブを選択します。
[言語の自動検出と切り替えを有効にする] の横にあるチェックボックスをオンにして、エージェントに対してこの機能を有効にします。[保存] をクリックして、変更を保存します。
フローを選択し、[フロー設定] に移動します。フロー設定パネルで [言語の自動検出と切り替えを有効にする] の横にあるチェックボックスをオンにします。
[言語] プルダウン メニューで、Dialogflow が応答できる言語を選択します。言語の自動検出機能でサポートされている言語のみを選択するようにしてください。
[保存] をクリックして、変更を保存します。
エージェントの言語を指定しないリクエスト
Dialogflow が、エージェントでサポートされている言語を提供しないリクエストを受信すると、以下のルールが適用されます。
- リクエストによって言語が提供されない場合、Dialogflow は自動的に入力言語を判別し、自動言語検出が有効な場合は、その言語で応答します。言語の自動検出が無効になっている場合、Dialogflow はデフォルトの言語を使用してリクエストを処理します。
- リクエストがエージェントでサポートされていないロケール固有の言語を指定していても、関連付けられているルート言語がエージェントでサポートされている場合、Dialogflow はルート言語を使用してリクエストを処理します。
- システム エンティティの抽出は、前述のルールの例外です。システム エンティティの抽出では、ロケール固有の言語がエージェントによってサポートされない場合でも、提供されたロケール固有の言語を使用します。
統合
テキストベースの統合によるエージェントの対話では、エージェントのデフォルトの言語のみが使用されます。