コンポーネント

ダイアログ・フローの状態は、ユーザー入力の受入れ、入力の検証、テキストによる応答などのアクションを実行するコンポーネントに基づいています。

ダイアログ・フローで使用できるコンポーネントには、組込みコンポーネントとカスタム・コンポーネントの2つのタイプがあります。ダイアログ・エンジンは、ダイアログ・フロー内の状態に入るときにコンポーネントを評価します。組込みコンポーネントの1つを検出した場合、メッセージの表示やユーザーに対するテキストの入力の要求など、汎用タスクの1つを実行します。ダイアログ・エンジンがカスタム・コンポーネントを検出した場合は、1つ以上のカスタム・コンポーネントをホストするコンポーネントのサービスをコールします。

組込みコンポーネント

デジタル・アシスタントには、セキュリティ、ユーザー入力の解析、そのユーザー入力に基づくダイアログ・フローのルーティング、様々な方法によるスキルのレスポンスの出力など、どのスキルでも使用できる様々な汎用アクションをサポートするコンポーネントのセットが用意されています。バックエンドとの統合や非常に複雑なロジックの実行が必要な場合を除き、これらのコンポーネントによって、状態に必要なアクションが提供されます。

コンポーネントへのアクセス方法は、ビジュアル・フロー・デザイナでダイアログ・フローを設計するか、YAMLモードで設計するかによって異なります。

  • Visual Flow Designerを使用している場合は、組込みコンポーネントの最初の状態をフローに追加するには、その「開始」タイルにマウス・ポインタを重ね、メニュー「Add State」メニューアイコンをクリックして「開始状態の追加」を選択し、「状態の追加」ダイアログからコンポーネント・テンプレートを選択します。状態メニューから「状態の追加」を選択するか、2つの状態間の「この遷移に状態を追加」アイコンをクリックして、後続の状態を追加できます。「フローの設計」を参照してください。
  • YAMLモードでスキルを設計する場合は、「+コンポーネント」を選択し、メニューからコンポーネント・テンプレートを選択して、組込みコンポーネントの状態をダイアログ・フローに追加します。

ダイアログ・フローを検証すると、デジタル・アシスタントによってコンポーネントのプロパティが確認されます。たとえば、必須プロパティを指定し忘れた場合はそのことが報告されます。

ビジュアル・フロー・デザイナで使用可能なコンポーネント・テンプレートの詳細は、「コンポーネント・テンプレート」を参照してください

YAMLモードで使用可能なコンポーネントの詳細は、「組込みコンポーネント: プロパティ、遷移および使用方法」を参照してください。

カスタム・コンポーネント

ほとんどのスキルでは、リモート・システムのデータと統合するか、なんらかのバックエンド処理を実行する必要があります。たとえば、スキルで製品のリストを取得したり、オーダー情報を保存することが必要な場合があります。別の例として、スキルでは、FreeMarkerまたはエンティティ・イベント・ハンドラを使用して実現できない複雑なロジックの実行が必要になる場合があります。カスタム・コンポーネントを使用すると、バックエンドと統合したり、組込みコンポーネントでカバーされていないタスクを実行できます。

カスタム・コンポーネントをビルドする方法の詳細は、「カスタム・コンポーネントの実装」を参照してください。スキルで使用するためにカスタム・コンポーネントを追加する方法の詳細は、スキルへのコンポーネント・パッケージの追加を参照してください。スキルに追加されているカスタム・コンポーネントについて学習するには、スキルの「コンポーネント」「コンポーネント」アイコンページに移動し、コンポーネント・サービスを展開して、コンポーネントを選択します。コンポーネントの名前、プロパティおよびサポートされているアクションが表示されます。この情報を使用して、ダイアログ・フロー内にコンポーネントの状態を構築します。

ヒント:

異なるサービスのコンポーネントに同じ名前が付いている可能性があるため、コンポーネント名の先頭にサービス名に続けてコロン(:)を追加することで、使用するそれぞれのカスタム・コンポーネントを確実に一意に参照できるようになります。

YAMLモードで開発されたダイアログ・フローにおけるカスタム・コンポーネントの状態の例を次に示します。hello.worldコンポーネントは、customサービスのものです。

  start:
    component: "custom:helloWorld"
    properties:
      human: "${human.value}"
    transitions:
      next: "askAge"

埋込みコンポーネント・サービスを使用してカスタム・コンポーネントをホストすると、「コンポーネント」「コンポーネント」アイコンページからコンポーネントのビュー・ログおよびクラッシュ・レポートにアクセスできます。サービスを選択し、「診断」をクリックします。

YAMLモードでカスタム・コンポーネントで使用可能なその他のプロパティ

YAMLモードでダイアログ・フローを開発する場合、コンポーネントの定義済プロパティに加えて、これらのプロパティをカスタム・コンポーネントの状態に含めることができます。

名前 説明 必須?
autoNumberPostbackActions trueに設定すると、このオプションによって、ボタン・オプションおよびリスト・オプションの先頭に番号が付けられます。このオプションをtrueに設定していない場合でも、デジタル・アシスタントの「ポストバック・アクションでの自動採番の有効化」構成がtrueに設定されている場合は、カード・アイテムに自動採番を適用できます。デフォルトはfalseです。 いいえ
insightsEndConversation trueに設定すると、インサイト・レポート用の会話の記録を停止します。デフォルトはfalseです。 いいえ
insightsInclude インサイト・レポートに状態を含めるかどうかを指定します。デフォルトはtrueです。 いいえ
translate このプロパティを使用して、autotranslateコンテキスト変数に対して設定したブール値をオーバーライドします。autotranslate変数を設定していない場合、またはfalseに設定した場合、このプロパティをtrueに設定して、このコンポーネントに対してのみ自動翻訳を有効にすることができます。autotranslation変数をtrueに設定した場合、このプロパティをfalseに設定して、このコンポーネントを自動翻訳から除外できます。スキルでの翻訳サービスを参照してください。デフォルトは、autotranslateコンテキスト変数の値です。 いいえ

これらのプロパティは、ビジュアル・フロー・デザイナで開発したダイアログ・フローの状態では使用できません。