多言語エージェント

Dialogflow は多くの言語をサポートしています。完全なリストは、言語のリファレンス ページをご覧ください。エージェントの作成時に選択した言語が、デフォルト言語として設定されます。また、追加の言語を設定できます。

ルート言語およびロケール固有の言語

言語には次の 2 つのカテゴリがあります。

  • ルート言語: English (en) のように、地域を限定しない言語です。
  • ロケール固有の言語: English - US (en-US) のように、特定の地域や国などを限定するロケール固有の言語です。

一部の言語は、ルート言語とロケール言語の両方として機能します。このような言語にはロケールに大幅な相違があるため、共通のルート言語を使用することができません。例:

  • 中国語(広東語) - 香港(zh-HK)
  • 中国語(簡体字)- (zh-CN)
  • 中国語(繁体字)- 台湾(zh-TW)
  • ポルトガル語 - ブラジル(pt-BR)
  • ポルトガル語 - ポルトガル(Pt)

エージェントを主にルート言語向けに設計し、必要な場合に限り、ロケール固有の言語向けにカスタマイズしてください。

言語を追加する

Dialogflow コンソールを使用して言語またはロケールを追加するには:

  1. Dialogflow CX コンソールを開きます。
  2. エージェント用の Google Cloud プロジェクトを選択します。
  3. リストでエージェントを見つけます。
  4. エージェントの表示名をクリックします。
  5. [エージェント設定] をクリックします。
  6. [言語] タブをクリックします。
  7. 必要に応じて言語を追加または削除します。
  8. [保存] をクリックします。

言語固有のデータ

ほとんどのエージェント データは、多言語エージェントのすべての言語で共通です。ただし、エンドユーザーとのやり取りに使用されるテキストは、言語固有です。多言語エージェントを作成するときは、言語ごとにその言語固有のデータを指定する必要があります。コンソールから言語を選択するか、API に言語を指定すると、その言語の言語固有のデータにアクセスできます。言語固有のデータの完全なリストは次のとおりです。

コンソールで言語固有のデータにアクセスするには、コンソールの上部にある言語ボタンをクリックします。

言語スクリーンショットの選択

たとえば、以下の「size」エンティティ タイプは T シャツを注文する際に使用されます。当初、このエージェントは英語で構成されたため、エンティティには「S」とその同義語の「small」といったエントリがあります。スペイン語が言語として追加されると、Dialogflow によって新しい言語のエンティティが作成されますが、エンティティのエントリはユーザーがスペイン語で指定する必要があります。

エンティティのスクリーンショット

API を使用して言語固有のデータにアクセスするには、EntityTypeIntent または 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 はそれを検出して自動的にエンドユーザーの言語に切り替えます。この機能で使用できる言語の一覧については、言語リファレンスのページをご覧ください。WebhookRequestLanguageInfo フィールドは、言語検出が有効な場合の、入力言語、解決済み言語、信頼スコアを識別します。

言語の自動検出を有効にする

エージェント レベルとフロー レベルの両方で言語の自動検出を有効にする必要があります。

  1. [エージェントの設定] に移動し、[言語] タブを選択します。

  2. [言語の自動検出と切り替えを有効にする] の横にあるチェックボックスをオンにして、エージェントに対してこの機能を有効にします。[保存] をクリックして、変更を保存します。

  3. フローを選択し、[フロー設定] に移動します。フロー設定パネルで [言語の自動検出と切り替えを有効にする] の横にあるチェックボックスをオンにします。

  4. [言語] プルダウン メニューで、Dialogflow が応答できる言語を選択します。言語の自動検出機能でサポートされている言語のみを選択するようにしてください。

  5. [保存] をクリックして、変更を保存します。

エージェントの言語を指定しないリクエスト

Dialogflow が、エージェントでサポートされている言語を提供しないリクエストを受信すると、以下のルールが適用されます。

  • リクエストによって言語が提供されない場合、Dialogflow は自動的に入力言語を判別し、自動言語検出が有効な場合は、その言語で応答します。言語の自動検出が無効になっている場合、Dialogflow はデフォルトの言語を使用してリクエストを処理します。
  • リクエストがエージェントでサポートされていないロケール固有の言語を指定していても、関連付けられているルート言語がエージェントでサポートされている場合、Dialogflow はルート言語を使用してリクエストを処理します。
  • システム エンティティの抽出は、前述のルールの例外です。システム エンティティの抽出では、ロケール固有の言語がエージェントによってサポートされない場合でも、提供されたロケール固有の言語を使用します。

統合

テキストベースの統合によるエージェントの対話では、エージェントのデフォルトの言語のみが使用されます。