Dialogflow から Actions Builder プロジェクトへの移行

Dialogflow デベロッパーは、既存のアクションを Actions Builder に移行したい場合があります。新しいコンソール内メソッドを使用してアクションを開発すると、多くのメリットがあり、既存の Dialogflow プロジェクトを簡単に移行できます。このページでは、Dialogflow/Actions Builder の移行ツールの使用方法について説明します。

このガイドに進む前に、Dialogflow から Actions Builder への移行の概要をご確認ください。ここには、Dialogflow と Actions Builder の重要なコンセプトおよび相違点が記載されています。

移行ツールの機能

Dialogflow から Actions Builder への移行ツールは、インテントやエンティティなどの特定の Dialogflow 要素を変換し、Action Builder と連携できるようにします。

移行ツールは、次の Dialogflow 要素を Actions Builder に自動的に移行します。

  • Dialogflow のデフォルトのウェルカム インテント(メイン呼び出しとして移行されます)。
  • アクションがサポートする各言語のすべてのトレーニング フレーズとエンティティ。
  • 入力コンテキストのないインテント。グローバル インテントとして移行されます。
  • 1 つの入力コンテキストを持つインテント。シーンとインテントとして移行されます。
  • 1 つの入力コンテキストとスロットフィルを持つインテントは、2 つのシーンと 1 つのインテントとなり、スロットフィル付きシーンへの移行を処理します。
  • Dialogflow のフォールバック、メディア、ウェルカム イベントを使用するインテントは、関連する Actions Builder ハンドラと、トレーニング フレーズを含むインテントになります。
  • Dialogflow の日付や数値のシステム エンティティを使用するインテントは、関連する Actions Builder のシステムタイプになります。

この移行ツールは、次の Dialogflow 要素を処理しません

  • 複数の入力コンテキストを持つインテントシーンは手動で作成する必要があります。
  • Dialogflow でカスタム イベントを使用するインテント。
  • 日付や数値ではない Dialogflow システム エンティティ。これらのエンティティは新しい型として作成されますが、類義語を手動で追加する必要があります。
  • Dialogflow フルフィルメントのソースコード。API バージョンの違いにより、このコードは Builder に移行されません。

移行ツールにアクセスする

移行ツールにアクセスするには、Actions Console で Dialogflow プロジェクトを開き、[Develop] > [Actions] に移動します。

Actions Console で使用されているプロジェクトがわからない場合は、Dialogflow コンソールに移動し、次の操作を行います。

  1. 移行するプロジェクトを開き、設定アイコンをクリックします。
  2. [全般] > [プロジェクト ID] で、[Action on Google] リンクをクリックします。このステップでは、特定のプロジェクトの Actions Console が表示されます。
  3. [Develop] > [Actions] に移動し、[Preview migration] をクリックします。

情報スライドを確認し、[Start migration] をクリックして移行ダッシュボードを表示します。

移行ダッシュボード

移行ダッシュボードには、移行オプションと、移行される項目に関連する情報が表示されます。

移行オプション

移行ツールには、Dialogflow プロジェクトを Actions Builder に移行するための 2 つのオプションがあります。

  • 新しいプロジェクトとして移行する(推奨)
    • 既存の Dialogflow プロジェクトをそのままにして、コピーを新しいプロジェクトに移行します。
    • 表示名とディレクトリ情報は、既存の本番環境プロジェクトに関連付けられたままになります。ライブ プロジェクトを移行したプロジェクトで上書きする方法については、推奨プロセスをご覧ください。
  • このプロジェクトを移行する
    • 既存の Dialogflow プロジェクトが置き換えられ、プロジェクトに定義した既存の表示名とアシスタント ディレクトリ情報が保持されます。

移行レポート

移行レポートの各セクションを展開すると、次の情報に関するプロジェクト固有の詳細を表示できます。

  • 完全に移行されるデータ
  • 移行対象だが、移行後の追加の設定が必要なデータ。
  • 移行されないデータで、必要に応じて手動で追加する必要があるデータ。
  • Dialogflow プロジェクトで使用している機能のうち、Actions Builder で使用できないもの。

移行レポートをダウンロードすることもできます。ダウンロードしたレポートは、移行後に変更をする際に参照できます。

移行後の設定

この移行ツールは、Dialogflow プロジェクトの重要な部分を Actions Builder に移行するのに役立ちますが、移行されなかった移行、プロンプト、Webhook を設定するには、追加の開発が必要です。

シーンを使用するように会話のフローを更新する

移行ツールは 1 つの入力コンテキストを持つ Dialogflow インテントに基づいてシーンを生成しますが、これは 1 対 1 の関係ではありません。移行されたシーンの一部は、新しい会話モデルを使用する Actions Builder では意味をなさない可能性があります。

どのようなシーンが必要かを評価して、会話の流れを見直す必要があるかもしれません。アクションの複雑さによっては、生成されたシーンが会話のフローに合わなくなった場合は、そのシーンを削除する方が簡単な場合があります。

グローバル インテントを確認して更新する

入力コンテキストのない Dialogflow インテントは、グローバル インテントとして Actions Builder に移行されます。グローバル インテントは会話全体を通してアクティブであるため、いつでもマッチングできます。

グローバル インテントを使用して、ユーザーがアクションを呼び出したときに、ユーザーを特定のフローにディープリンクすることもできます。生成されたグローバル インテントが、アクティブでグローバル スコープのユーザーがアクセスできるべきかどうかを検証することが重要です。グローバル インテントを通常のインテントに変更するには、インテントをクリックして、グローバル インテント処理オプションを [いいえ] に変更します。

類似のトレーニング フレーズを使用してインテントを統合する

複数のインテントが非常に類似したトレーニング フレーズを共有している場合は、インテントを 1 つの汎用インテントに統合する必要があります。これにより、インテント マッチングの精度が向上します。

たとえば、インテント A には次のトレーニング フレーズがあります。

  • 「準備が整っているか確認したい」
  • 「準備できました」
  • 「やってみる」

インテント B には、次のトレーニング フレーズがあります。

  • 「準備が整っているか確認したい」
  • 「承知しました」

2 つのインテントのトレーニング フレーズは似ているため、インテント Aインテント B をより一般的なインテント(インテント C)に統合し、元のフレーズを削除します。インテント A またはインテント B を参照しているシーンでインテント C を使用します。

インテント C には、次のトレーニング フレーズがあります。

  • 「準備が整っているか確認したい」
  • 「準備できました」
  • 「やってみる」
  • 「承知しました」

イベント処理を更新する

Dialogflow で特定のイベント(fallbackmediawelcome)を使用するインテントの場合、移行ツールはそのイベントに関連するシステム インテントを作成します。同じ Dialogflow インテントにトレーニング フレーズがある場合、同じトレーニング フレーズで別のインテントが作成されます。

Actions Builder でイベントの設定を完了するには、必要に応じて Webhook ハンドラと遷移を追加する必要があります。

システム インテントを追加してフォールバック インテントを処理する

Dialogflow では、ユーザーの入力をインテントが認識できない場合をフォールバック インテントが処理します。Actions Builder は、NO_MATCHNO_INPOUT のシステム インテントを利用して、このようなケースに対応します。

NO_MATCHNO_INPUT のシステム インテントは、どちらも最大 3 回シーンに追加できます。たとえば、シーンに 3 つの NO_MATCH インテントを追加すると、アクションがユーザーのレスポンスに何を求めているのかについて、段階的に詳細なレスポンスを返すことができます。

Dialogflow プロジェクトでフォールバック インテントを使用している場合は、システム インテントを追加することが重要です。よく使用される Actions Builder のシステム インテントの例には、NO_MATCHNO_INPUT などがあります。これらのシステム インテントについて詳しくは、システム インテントをご覧ください。

フルフィルメント戦略を更新する

Dialogflow フルフィルメント コードを Actions Builder に移行する作業は、移行プロセスの中でも特に重要な作業の一つです。Webhook 呼び出しと一般的なフルフィルメントのコンセプトは変わりませんが、Actions Builder には関数を再利用するオプションが用意されており、Webhook トリガーの機会を増やしています。

この点を念頭に置いて、Actions Builder の機能を利用できるよう、プロジェクトのフルフィルメントを再検討することをおすすめします。

  • カスタム Webhook ハンドラ名を使用すると、異なるシーンの複数の部分から同じ Webhook 関数を呼び出すことができます。
  • Webhook の呼び出しは、シーンの開始、条件付き検証、スロットフィル、インテント マッチングに基づいて行われます。Webhook 呼び出しをいつ、どこで行うかを細かく制御することで、よりクリエイティブなフルフィルメント ソリューションが可能になります。

フルフィルメント コードを更新するときは、Webhook 呼び出しをトリガーするタイミングと場所を検討します。[Webhook の呼び出し] オプションを使用すると、シーンの複数の部分で Webhook を有効にできます。Webhook の有効化について詳しくは、フルフィルメント移行ガイドの Webhook セクションをご覧ください。

移行の例

Dialogflow から Actions Builder に移行したプロジェクトは、各ツールで使用する会話モデルが異なるため、構造が大きく異なります。移行されたプロジェクトのコードは、Actions Builder のシーン、プロンプト、遷移を使用したり、再利用可能な Webhook ハンドラなどの機能で使用されたりするため、元のプロジェクトと大きく異なります。

移行されたプロジェクトを比較すると、Dialogflow から Actions Builder に移行する際に必要となる変更の種類と範囲を把握できます。次の移行済みのサンプル プロジェクトを参照して、実装を比較できます。

サンプル プロジェクト Dialogflow コード Actions Builder のコード
Google のファクト プロジェクト コード プロジェクト コード
トランザクション数 プロジェクト コード プロジェクト コード
アカウントのリンク プロジェクト コード プロジェクト コード

このセクションでは、推奨される移行プロセスについて説明します。現在の表示(呼び出し)名、ディレクトリ情報、履歴の分析を保持できます。

このプロセスでは、2 つの異なる Actions Builder プロジェクトで作業します。どちらも同じ Dialogflow プロジェクトから移行されます。わかりやすくするために、これらのプロジェクトは次のように呼んでいます。

  • 試験運用版: このプロジェクトは、移行の設定とテストに使用されます。
  • original: このプロジェクトは現在公開されており、ユーザーにサービス中です。

プロジェクトを移行するには、次の操作を行います。

  1. Dialogflow のエクスポート機能を使用して、Dialogflow プロジェクトのバックアップを作成します。
  2. Actions Console に移動し、移行するプロジェクトを開きます。
  3. [Develop] > [Actions] に移動し、[Preview migration] をクリックします。
  4. 各情報スライドをクリックし、[移行を開始] をクリックします。
  5. [Migrate as a new project(新しいプロジェクトとして移行)] を選択します。
  6. 移行レポートを確認し、必要に応じて後で参照するためにダウンロードします。
  7. [移行] をクリックします。
  8. 「試験運用版」プロジェクトの名前を入力し、[プロジェクトを作成] をクリックします。プロジェクト ID をメモします。
  9. 必要な移行後の設定をすべて行い、アクションが意図したとおりに機能していることを確認します。
  10. gactions CLI を使用して、「試験運用」プロジェクトのドラフトを pull します。

    gactions pull --project-id experimental-project-id

  11. Actions Console で「オリジナル」の Dialogflow プロジェクトを再度開きます。

  12. [Develop] > [Actions] に移動し、[Preview migration] をクリックします。

  13. [このプロジェクトを移行] を選択します。

  14. [移行] をクリックします。

  15. [その他] アイコン > [プロジェクト設定] をクリックし、プロジェクト ID をメモします。

  16. ローカル システムで、 pull した「試験運用」プロジェクトの settings.yaml ファイルを開き、projectId を「元の」プロジェクトのプロジェクト ID に置き換えます。

  17. gactions CLI を使用して、ローカルに保存したプロジェクトのドラフトを push します。

    gactions push

  18. アルファ版またはベータ版のチャンネルで公開する手順に沿って操作するか、アクションを本番環境に公開します。