エージェントの検証

エージェントの設計ページで説明したように、エージェントの設計はエージェントの品質に大きく影響します。Dialogflow には検証機能があり、エージェント設計者が高品質のエージェントを作成できるようにします。エージェントの検証結果は、エージェントのトレーニングが実行され、完了したときに、自動的に提供されます。検証の結果には、Dialogflow コンソールや API からアクセスできます。

検証結果はあくまで情報提供を目的としたものです。これは、エージェントの品質とパフォーマンスを改善する目的で修正すべきエラーのリストを表示します。エージェントにエラーがある場合も、無視してエージェントを起動できます。エージェントの検証がエージェントの動作に影響することはありません。

結果の例をいくつか紹介します。

  • インテント内の複数のトレーニング フレーズの類似性が高すぎる。
  • インテントにはトレーニング フレーズで十分に使用されていないパラメータが含まれている。
  • フォールバック インテントにはネガティブ サンプルが存在しない。
  • このテキストは、トレーニング フレーズによって注釈が付けられるかどうかが一定しない。

自動検証の有効化と無効化

デフォルトでは、エージェントがトレーニングを受けるたびにエージェントの検証が自動的に実行されます。この設定の有効と無効を切り替えるには、次の手順を行います。

  1. Dialogflow ES コンソールに移動します。
  2. エージェントを選択します。
  3. エージェント名の横にある設定 アイコンをクリックします。
  4. [ML Settings] タブをクリックします。
  5. [Agent Validation] の設定のオン(デフォルト)とオフを切り替えます。

エージェント検証のスクリーンショット

エージェント検証ページ

エージェントの検証データにアクセスするには、次の手順を行います。

  1. Dialogflow ES コンソールに移動します。
  2. エージェントを選択します。
  3. サイドバーのメニューの [Validation] をクリックします。

エージェント検証のスクリーンショット

インテントとエンティティの検証結果

インテント リストまたはエンティティ リストのページを表示すると、検証エラーがあるインテントやエンティティの名前の横にエラー()インジケーターが表示されます。

エージェント検証エラーのスクリーンショット

検証エラーがある特定のインテントやエンティティのページにアクセスすると、エラー()インジケーターが [Save] ボタンの近くに表示されます。

エージェント検証エラーのスクリーンショット

このボタンをクリックすると、そのインテントまたはエンティティのエラーのリストが表示されます。デフォルトでは、エラーの重大度は CRITICAL または ERROR が表示されます。重大度の種類を切り替えて、WARNINGINFO を表示することもできます。

エージェント検証エラーのスクリーンショット

また、特定のトレーニング フレーズやパラメータにもエラー インジケーターが表示され、これらのインジケータにマウスカーソルを置くと詳細を確認できます。

エージェント検証エラーのスクリーンショット

バージョンと環境の検証結果

バージョンと環境を表示する場合、各エージェントのバージョンには固有の検証エラーが存在することがあります。エラーが存在する場合は、バージョンの横に検証アイコンが表示されます。

エージェント検証エラーのスクリーンショット

アイコンをクリックすると詳細が表示されます。

エージェント検証エラーのスクリーンショット

API による検証結果

ほとんどの場合、検証結果は Dialogflow コンソールを使用して表示されます。ただし、このデータには API からもアクセスできます。

REST とコマンドライン

Agents タイプの getValidationResult メソッドを呼び出します。

下記のリクエストのデータを使用する前に、次のように置き換えます。

  • project-id: GCP プロジェクト ID

HTTP メソッドと URL:

GET https://dialogflow.googleapis.com/v2/projects/project-id/agent/validationResult?languageCode=en

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "validationErrors": [
    {
      "severity": "ERROR",
      "entries": [
        "projects/my-project/agent/intents/58b44b2d-4967-4a81-b017-12623dcd5d28/parameters/bf6fdf55-b862-4101-b5b1-36f1423629d0"
      ],
      "errorMessage": "Parameter 'test' has an empty value."
    },
    {
      "severity": "WARNING",
      "entries": [
        "projects/my-project/agent/intents/271e3808-3c91-4e6b-89e8-47951abcec8d"
      ],
      "errorMessage": "Intent 'app.current.update' does not have enough unique training phrases. Consider adding more different examples."
    },
    {
      "severity": "ERROR",
      "entries": [
        "projects/my-project/agent/intents/26e64b1b-eaa7-4ce2-be46-631a501fccbe/trainingPhrases/a650375e-083c-4bb5-9794-ba9453e51282",
        "projects/my-project/agent/intents/58b44b2d-4967-4a81-b017-12623dcd5d28/trainingPhrases/1d947780-22d3-4f80-8d7a-3f86efbf0be3"
      ],
      "errorMessage": "Multiple intents share training phrases which are too similar:\n - Intent 'app.notifications.open': training phrase 'open allo notifications settings'\n - Intent 'app.current.notifications.open': training phrase 'open notifications settings'"
    },
  ]
}

重大度の状態

検証は、次の重大度レベルを表示することがあります。

重要度 説明
情報 エージェントがベスト プラクティスに従っていません。
WARNING エージェントが意図したとおりに動作しない可能性があります。
エラー エージェントで部分的なエラーが発生することがあります。
重大 エージェントが完全に失敗する可能性があります。
SEVERITY_UNSPECIFIED 指定なし。この値は使用しないでください。(この重大度は API を使用した場合に表示される可能性があります。)

強制検証

エージェントの検証結果は、エージェントのトレーニングが実行され、完了したときに、自動的に提供されます。新しい検証を強制するには、自動検証を無効にして手動でトリガーします。コンソールのエージェントの ML 設定のページをご覧ください。

多くの問題への対処

多数の問題が見つかった場合、次の点を考慮してください。

  • 小さいバッチ単位で問題を修正します。類似する問題が多数ある場合、そのうちの 1 つを修正すると、エージェントを再トレーニングした後に同様の問題が修正される可能性があります。
  • 一度に表示される問題は最大 5,000 件です。5,000 件を超える問題がある場合、5,000 件未満になるまでカウントは減少しません。