Dialogflow から Actions Builder への移行ツール

Actions Builder を使用すると、会話型アクションをシンプルかつ合理的に構築できるため、Google アシスタント向けの開発方法として最適です。Actions Builder は、Actions Console に統合されたウェブベースの IDE で、次の機能を備えています。

  • アクションの会話を制御するための視覚的なワークフローと状態ベースの方法。
  • プロトタイピングの高速化とレイテンシの短縮
  • 会話型アクションを構築、分析、デバッグするための単一のインターフェース。

Dialogflow を使用して作成した会話型アクションがある場合は、Actions Console 内でプロジェクトを Actions Builder に移行するを選択できます。

移行の理由

Dialogflow エージェントを移行するための要件は特になく、アクションは Google アシスタント デバイスで引き続き機能しますが、Actions Builder と Actions SDK を使用するメリットはあります。

  • Actions SDK と CLI によるツールの改善

    • Actions SDK と CLI を使用すると、複雑なプロジェクトを構築し、チームと簡単にコラボレーションできます。会話デザイナーは、まず Actions Builder で会話フローを構築できます。デベロッパーは、プロジェクトをファイルベース構造にダウンロードし、好みの開発ツールやバージョン管理システムを使用して引き続き機能を構築できます。プロジェクトを Actions Builder に戻すことで、他のチームメイトがアクションの構築、テスト、デプロイを続行できます。
  • 会話デザインのベスト プラクティスとのインテグレーションを改善

    • 各シーン内のフォールバック インテントをカスタマイズすると、会話のどの時点でも、入力なしレスポンスと一致しないレスポンスを提供できます。
    • 状態ベースのグラフィカルな方法で対話型エクスペリエンスを構築できるため、デザイナーとデベロッパー間のコラボレーションが容易になります。
  • ローカライズが容易に

    • インテント、シーン、タイプに関するローカライズ可能なすべてのコンテンツ(トレーニング フレーズ、プロンプト、タイプの類義語など)を 1 つのページで編集できます。

会話型実装の改善

Actions Builder は、Actions Console に多くの改善をもたらし、開発プロセスを簡素化しています。このセクションでは、Actions Builder でアクションの開発プロセスを効率化および簡素化する方法について説明します。

インテントの再利用性

Dialogflow では、Webhook ロジックがインテントに関連付けられます。つまり、インテントを他の Webhook と再利用することはできません。同じトレーニング フレーズを使いながら Webhook ロジックが異なる場合は、Webhook ロジックケースごとに異なるハンドラ名を参照する追加のインテントを作成する必要があります。

Actions Builder では、インテントにはトレーニング フレーズとエンティティが含まれますが、Webhook は独立しています。このアプローチでは、同じインテントに異なる Webhook ハンドラを使用できるため、柔軟性が高くなります。

会話フローの可視化の改善

Dialogflow では、コンテキストとは会話の特定の時点でどのインテントが一致する可能性が高いかを示します。

Actions Builder は、コンテキストではなくシーンを使用して、会話のさまざまな部分でどのインテントにアクセスできるかを処理します。

ユーザーがシーンに入ると、遷移によって、ユーザーがたどる会話の経路が定義されます。遷移は、カスタム インテントまたはシステム インテント マッチングだけでなく、条件付きロジックに基づいてもかまいません。

Builder の UI では、遷移がどのようにシーンをつなぐかを簡単に理解できます。図 1 では、シーン guess_gamesuggested_new_game シーン(1)に遷移しています。また、シーン内には generic_nogeneric_yes の 2 つのアクセス可能なインテントが表示されています。一致したインテントに応じて、suggested_new_game シーンは show_menu シーンまたは routing_game シーンのいずれかに移行します(2)。

図 1. シーンの遷移(1)とインテント処理(2)を含むシーンのグラフィカル ビュー

シナリオに基づいたカスタマイズ可能なプロンプト

Dialogflow では、Webhook でシンプルなレスポンスを送信したり、Dialogflow コンソールで静的レスポンスを定義したりすることができます。

Actions Builder では、プロンプト キューという概念が導入されています。プロンプトは、シーンの複数のセクションだけでなく、Webhook でも定義できます。すべてのプロンプトがプロンプト キューに追加され、1 つのレスポンスに統合されて、ユーザーに配信されます。このアプローチにより、一致したインテントだけでなく、ユーザーの発言や行動に基づいてレスポンスをつなぎ合わせることができます。

たとえば、シーンと Webhook でプロンプトが定義されている場合、Webhook プロンプトが最初にプロンプト キューに追加され、シーンのプロンプトが次に追加されます。

Actions Builder でプロンプトを定義できる場所と、プロンプト キューに追加する順序を以下のリストに示します。

  1. 開始時
  2. 条件
  3. スロットフィル
  4. シーン

組み込みの会話デザインのベスト プラクティス

Dialogflow プロジェクトをセットアップすると、デフォルトのウェルカム インテントと同様に、グローバル フォールバック インテントが自動的に生成されます。デフォルトのフォールバック インテントは、ユーザーの発言が既存のインテントに一致しない場合や、ユーザー入力がない場合にマッチングされます。

エラーを適切に処理するには、各会話ターンのフォールバック インテントにフォローアップ インテントを追加する必要があります。

Actions Builder では、新規プロジェクトに NO_MATCHNO_INPUT の 2 つのグローバル インテントが自動的に含まれます。

アシスタントの NLU が NO_MATCH または NO_INPUT システム インテントと一致すると、それぞれのデフォルト プロンプトまたはカスタマイズされたプロンプトがユーザーに送信されます。NO_MATCH または NO_INPUT が 3 回一致すると、最後のメッセージがユーザーに送信され、アシスタントはアクションとの会話を終了します。

各シーンに 3 つの NO_MATCH ハンドラと NO_INPUT ハンドラを追加できます。この機能により、マッチしなかった場合やユーザーによる入力がない場合に生じる一般的なフォールバックではなく、特定のエラー処理用のプロンプトをカスタマイズできます。

図 2. 1 つのシーンに割り当てられた 3 つの NO_MATCH インテント ハンドラ