Dialogflow は多くの言語をサポートしています。完全なリストは、言語のリファレンス ページをご覧ください。エージェントの作成時に選択した言語が、デフォルト言語として設定されます。また、追加の言語を設定できます。
コンソールと API での言語選択の範囲
コンソールまたは API で言語を選択すると、その選択はエージェントのフローにのみ影響します。ハンドブックでの言語選択については、ハンドブックの言語サポートをご覧ください。
ルート言語およびロケール固有の言語
言語には次の 2 つのカテゴリがあります。
- ルート言語: English (en) のように、地域を限定しない言語です。
- ロケール固有の言語: English - US (en-US) のように、特定の地域や国などを限定するロケール固有の言語です。
一部の言語は、ルート言語とロケール言語の両方として機能します。このような言語にはロケールに大幅な相違があるため、共通のルート言語を使用することができません。例:
- 中国語(広東語) - 香港(zh-HK)
- 中国語(簡体字)- (zh-CN)
- 中国語(繁体字)- 台湾(zh-TW)
- ポルトガル語 - ブラジル(pt-BR)
- ポルトガル語 - ポルトガル(Pt)
エージェントを主にルート言語向けに設計し、必要な場合に限り、ロケール固有の言語向けにカスタマイズしてください。
言語を追加する
Dialogflow CX コンソールを使用して言語またはロケールを追加するには:
- Dialogflow CX コンソールを開きます。
- エージェントの Google Cloud プロジェクトを選択します。
- リストでエージェントを見つけます。
- エージェントの表示名をクリックします。
- [エージェント設定] をクリックします。
- [言語] タブをクリックします。
- 必要に応じて言語を追加または削除します。
- [保存] をクリックします。
言語固有のデータ
ほとんどのエージェント データは、多言語エージェントのすべての言語で共通です。ただし、エンドユーザーとのやり取りに使用されるテキストは、言語固有です。多言語エージェントを作成するときは、言語ごとにその言語固有のデータを指定する必要があります。コンソールから言語を選択するか、API に言語を指定すると、その言語の言語固有のデータにアクセスできます。言語固有のデータの完全なリストは次のとおりです。
Console で言語固有のデータにアクセスするには、コンソールの上部にある言語ボタンをクリックします。
たとえば、以下の「size」エンティティ タイプは T シャツを注文する際に使用されます。当初、このエージェントは英語で構成されたため、エンティティには「S」とその同義語の「small」といったエントリがあります。スペイン語が言語として追加されると、Dialogflow によって新しい言語のエンティティが作成されますが、エンティティのエントリはユーザーがスペイン語で指定する必要があります。
エンティティ | 類義語 |
---|---|
XS | XS、extra pequeño |
S | S、pequeño |
M | M、medio |
L | L、grande |
XL | XL、extra grande |
AI による言語固有のデータの生成
会話エージェント(Dialogflow CX)では、AI 生成を使用して言語固有のデータを自動的に提供し、手動で入力する手間を省くことで、データ追加プロセスを高速化できます。これは、インテント、エンティティ、フルフィルメントのレベルでプレビュー機能として行うことができます。
AI 生成を使用しない場合でも、デフォルト以外の言語のデータを手動で入力できます。
インテント AI 生成
デフォルト以外の言語でトレーニング フレーズを自動生成する:
- [エージェントの設定] > [言語] に移動し、エージェントで 1 つ以上のデフォルト以外の言語が有効になっていることを確認します。
- コンソールの上部にある言語のプルダウン メニューに移動し、選択したデフォルト以外の言語を選択します。
- [管理] タブに移動し、[インテント] をクリックして、インテントのいずれかを選択します。[説明] フィールドにインテントの目的の説明が入力されていることを確認します。説明は、デフォルトの言語または表示中の言語で表示できます。
- デフォルト以外の言語を有効にしても、会話エージェント(Dialogflow CX)は既存のトレーニング フレーズを新しい言語に翻訳しません。新しい言語で新しいトレーニング フレーズを作成するには、[__ 新しく LLM で生成されたフレーズ] ラジオボタンをクリックします。デフォルト値は 3 です。既存のトレーニング フレーズをコピーして自動的に翻訳するには、[AI 生成によって翻訳されたデフォルト言語のすべてのトレーニング フレーズ] を選択します。
- [+ 追加] をクリックします。指定した数のトレーニング フレーズが生成され、選択した言語でテーブルに入力されます。生成されたすべてのトレーニング フレーズの正確性を確認してください。
(プレビュー)エンティティ AI 生成
デフォルト以外の言語で参照値と同義語を自動生成して自動翻訳する:
- [エージェントの設定] > [言語] に移動し、エージェントで 1 つ以上のデフォルト以外の言語が有効になっていることを確認します。
- コンソールの上部にある言語のプルダウンに移動し、デフォルト以外の言語を選択します。
- [管理] タブに移動し、[エンティティ タイプ] をクリックして、エンティティ タイプを 1 つ選択します。
- デフォルト以外の言語を有効にしても、会話エージェント(Dialogflow CX)は既存の参照値やシノニムを自動的に変換しません。これらの値を新しい言語に自動翻訳するには、[+ デフォルトの言語からコピー] をクリックします。デフォルト言語のエンティティ タイプから元のデータがすべて新しい言語に翻訳され、テーブルに挿入されます。一度に 50 個を超えるアイテムを翻訳すると、エラーが発生する可能性があります。参照値と同義語の各値は 1 つのアイテムとしてカウントされます。
- [+ 新しいエントリを追加] をクリックして、新しい参照値を追加することもできます。参照値をデフォルトの言語で入力すると、参照値とその同義語の両方が新しい言語に自動的に翻訳されます。
(プレビュー)Fulfillment AI の生成
AI 生成は、ルート、ルートグループ、イベント ハンドラのフルフィルメント タイプで使用できます。これらのルートタイプの詳細については、ルートとイベント ハンドラのドキュメントをご覧ください。
この機能は、エージェントをデフォルト以外の言語で表示し、指定されたルートタイプのいずれかで表示している場合にのみ表示されます。ルートの [Fulfillment] セクションに移動します。エージェントの返信をデフォルト言語から表示中の言語に自動的にコピーして翻訳するには、[コピーして翻訳] をクリックします。一度に 50 件を超えるレスポンスを翻訳すると、エラーが発生する可能性があります。
API を使用する場合の言語固有のデータ
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 はルート言語を使用してリクエストを処理します。
- システム エンティティの抽出は、前述のルールの例外です。システム エンティティの抽出では、ロケール固有の言語がエージェントによってサポートされない場合でも、提供されたロケール固有の言語を使用します。
統合
テキストベースの統合によるエージェントの対話では、エージェントのデフォルトの言語のみが使用されます。