カスタム コマンドの概念と定義

重要

Custom Commands は 2026 年 4 月 30 日に廃止される予定です。 2023 年 10 月 30 日以降、Speech Studio 内で新しい Custom Commands アプリケーションを作成することはできません。 この変更に関連して、LUIS は 2025 年 10 月 1 日に廃止される予定です。 2023 年 4 月 1 日以降、新しい LUIS リソースを作成することはできません。

この記事は、カスタム コマンド アプリケーションの概念と定義のリファレンスとしてお使いいただけます。

コマンドの構成

コマンドは、カスタム コマンド アプリケーションの基本的な構成要素です。 コマンドは、ユーザーが定義した特定のタスクを完了するために必要な構成のセットです。

例文

発話の例は、ユーザーが特定のコマンドをトリガーするために言うことができるセットの例です。 完全な一覧ではなく、発話のサンプルのみを指定する必要があります。

パラメーター

パラメーターは、コマンドがタスクを完了するために必要な情報です。 複雑なシナリオでは、パラメーターを使用して、カスタム アクションをトリガーする条件を定義することもできます。

完了ルール

完了ルールは、コマンドが実行される準備が整ったら (たとえば、ルールのすべての条件が満たされたときに)、実行される一連のルールです。

相互作用ルール

相互作用ルールは、より具体的または複雑な状況に対処するための追加ルールです。 さらに検証を追加したり、確認やワンステップ修正などの高度な機能を構成したりすることができます。 独自のカスタム相互作用ルールを作成することもできます。

パラメーターの構成

パラメーターは、コマンドがタスクを完了するために必要な情報です。 複雑なシナリオでは、パラメーターを使用して、カスタム アクションをトリガーする条件を定義することもできます。

名前

パラメーターは、name プロパティによって識別されます。 パラメーターには、常にわかりやすい名前を付ける必要があります。 パラメーターは、条件、音声応答、またはその他のアクションを構築しているときなど、さまざまなセクションで参照できます。

必須

このチェック ボックスでは、コマンドの実行または完了に、このパラメーターの値が必要かどうかが示されます。 パラメーターが必須とマークされている場合は、ユーザーに値を指定するように求める応答を構成する必要があります。

既定値が含まれるように必須のパラメーターを構成した場合も、システムによってパラメーターの値が引き続き求められます。

Type

カスタム コマンドでは、次のパラメーターの型がサポートされています。

  • Age
  • 通貨
  • DateTime
  • Dimension
  • 電子メール
  • [地理的な場所]
  • Number
  • Ordinal
  • パーセント
  • PersonName
  • PhoneNumber
  • String
  • 気温
  • url

すべてのロケールで "文字列" パラメーター型がサポートされますが、その他の型を使えるかどうかはロケールによって異なります。 Custom Commands では、LUIS の事前構築済みエンティティ ソリューションが使用されます。そのため、あるロケールであるパラメーター型が使えるかどうかは、そのロケールにおける LUIS の事前構築済みエンティティのサポートによって決まります。 LUIS の事前構築済みエンティティのロケール別サポートに関するページに詳細があります。 現在、カスタム LUIS エンティティ (機械学習エンティティなど) はサポートされていません。

Number、String、DateTime のような一部のパラメーター型では、ポータルから構成できる既定値の構成がサポートされています。

構成

構成は、String 型に対してのみ定義されるパラメーター プロパティです。 サポートされている値を次に示します。

  • なし
  • [Accept full input](完全な入力を受け入れる) : 有効にすると、パラメーターには任意の入力発話を指定できます。 このオプションは、ユーザーが完全な発話を持つパラメーターを必要とする場合に便利です。 例として郵便の宛先が挙げられます。
  • [Accept predefined input values from an external catalog](外部カタログから定義済み入力値を受け取る) : この値は、さまざまな値を想定できるパラメーターを構成するために使用します。 例として、販売カタログがあります。 この場合、カタログは外部 Web エンドポイント上でホストされ、個別に構成することができます。
  • [Accept predefined input values from internal catalog](内部カタログから定義済み入力値を受け取る) : この値は、いくつかの値を想定できるパラメーターを構成するために使用します。 この場合は、Speech Studio で値を構成する必要があります。

検証

検証は、特定のパラメーターの型に適用できるコンストラクトであり、パラメーターの値に対して制約を構成する場合に使用できます。 現在、カスタム コマンドでは、次のパラメーターの型に対する検証がサポートされています。

  • DateTime
  • Number

ルールの構成

カスタム コマンドのルールは、一連の "条件" によって定義され、条件が満たされると、一連の "アクション" が実行されます。 ルールを使用すると、実行後の状態や次のターンの期待される回答を構成することもできます。

カスタム コマンドでは、次のルール カテゴリがサポートされています。

  • 完了ルール: これらのルールは、コマンドのフルフィルメント時に実行する必要があります。 このセクションで構成される条件が真であるすべてのルールが実行されます。
  • 相互作用ルール: これらのルールは、追加のカスタム検証、確認、ワンステップ修正を構成したり、その他のカスタム ダイアログ ロジックを実行したりするために使用できます。 相互作用ルールは、処理の各ターンで評価され、完了ルールをトリガーするために使用できます。

ルールの一部として構成されるさまざまなアクションは、作成ポータルに表示される順序で実行されます。

条件

条件は、ルールを実行するために満たす必要がある要件です。 ルールの条件は次のいずれかの種類になります。

  • [Parameter value equals](パラメーター値が等しい) : 構成されているパラメーターの値が特定の値と同じです。
  • [No parameter value](パラメーター値がない) : 構成済みのパラメーターに値を指定することはできません。
  • [Required parameters](必須のパラメーター) : 構成済みのパラメーターに値があります。
  • [All required parameters](すべての必須パラメーター) : 必須とマークされたすべてのパラメーターに値があります。
  • [Updated parameters](更新されたパラメーター) : 現在の入力 (発話またはアクティビティ) を処理した結果として 1 つまたは複数のパラメーター値が更新されました。
  • [Confirmation was successful](確認が成功した) : 入力の発話またはアクティビティは正常に確認されました (yes)。
  • 確認が拒否されました: 入力の発話またはアクティビティは正常に確認されませんでした (no)。
  • [Previous command needs to be updated](前のコマンドの更新が必要) : この条件は、更新と共に否定確認をキャッチする場合に、インスタンスで使用されます。 この条件は、バックグラウンドで、意図が前のターンと同じであるという否定的な確認がダイアログ エンジンによって検出され、ユーザーが更新で応答したときのために構成されます。

Actions

  • [Send speech response](音声応答の送信) : クライアントに音声応答を送り返します。
  • [Update parameter value](パラメーター値の更新) : コマンド パラメーターの値を指定された値に更新します。
  • [Clear parameter value](パラメーター値のクリア) : コマンド パラメーター値をクリアします。
  • [Call web endpoint](Web エンドポイントの呼び出し) : Web エンドポイントを呼び出します。
  • [Send activity to client](クライアントへのアクティビティの送信) : クライアントにカスタム アクティビティを送信します。

期待される回答

期待される回答は、次のユーザー入力の処理に対してヒントを構成するために使用されます。 次の種類がサポートされています。

  • [Expecting confirmation from user](ユーザーからの確認が必要) : この期待される回答では、次のユーザー入力に対する確認 (yes または no) をアプリケーションが要求していることが指定されます。
  • [Expecting parameter(s) input from user](ユーザーからのパラメーター入力が必要) : この期待される回答では、ユーザー入力に対してアプリケーションが要求しているコマンド パラメーターが 1 つまたは複数指定されます。

実行後の状態

実行後の状態は、現在の入力を処理した後のダイアログの状態です (発話またはアクティビティ)。 次のいずれかの種類になります。

  • [Keep current state](現在の状態を維持する) :現在の状態のみを維持します。
  • コマンドが完了: コマンドを完了し、これ以上コマンドのルールは処理されません。
  • [Execute completion rules](完了ルールの実行) : 有効なすべての完了ルールを実行します。
  • [Wait for user's input](ユーザーの入力を待機) : 次のユーザー入力を待機します。

次のステップ