Oracle Cloud Infrastructureドキュメント

コンポーネント

コンポーネントにより、スキルの実際の機能が提供されます。 ダイアログのフロー定義のstateノードは、ノードの周りに構築されます。 これらの再利用可能な作業ユニットでは、ダイアログ・フローの基本管理からケース固有のアクションまで、タスクと機能のすべての方法が実行されます。

ダイアログ・ボックスのすべての状態で、ユーザー入力の受入れ、入力の確認、テキストへの応答など、アクションを実行するコンポーネントの名前を指定します。 各コンポーネントには、コンポーネントの動作を制御するだけでなく、値を渡して受信できるプロパティのセットが指定されています。 たとえば、次の州ではSystem.Listコンポーネントを使用して、ユーザーが選択できる値リストを表示します。 この状態では、optionsプロパティを使用してリストの値を指定し、maxPromptsプロパティを使用して、ユーザーが2の無効な値を入力するたびに次の状態に遷移するように状態を指定します。 variableプロパティは、選択肢を格納する変数に名前を付けます。

  size:
    component: "System.List"
    properties:
      prompt: "What size pizza do you want?"
      options: "${size.type.enumValues}"
      variable: "size"
      maxPrompts: 2
    transitions:
      actions:
        cancel: "setDefaultSize"

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

組込みコンポーネント

様々な一般的な処理をサポートするコンポーネント・セットが提供され、これらは任意のスキルで使用できます: セキュリティ、ユーザー入力の解析、ダイアログ・ボックスのユーザー入力に基づいたルーティング、スキル・レスポンスの様々な方法での出力。 バックエンドに統合する必要がないか、非常に複雑なロジックを実行する必要がないかぎり、これらのコンポーネントは州で必要なアクションを提供します。

組込みコンポーネントの状態をダイアログ・フローに追加するには、フロー・タブで+コンポーネントをクリックし、コンポーネント・タイプを選択して、コンポーネントを選択します。 コンポーネント・テンプレートが表示され、各テンプレートの目的を説明するコンポーネント・プロパティと説明が一覧表示されます。 コンポーネントを適用する際、コンポーネントに追加される状態に説明を含めるかどうかを選択できます。

ダイアログ・ボックスを検証すると、Oracle Digital Assistantでコンポーネントのプロパティが検証されます。 たとえば、必須プロパティを含め忘れた場合にレポートします。

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

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

ほとんどのスキルは、リモート・システムのデータと統合する必要があります。 たとえば、スキルによっては、製品のリストを取得したり、オーダー情報を保存することが必要になる場合があります。 カスタム・コンポーネントを使用して、スキルをバックエンドと統合します。 また、FreeMarkerでは達成できない複雑なロジックを実行することもできます。

カスタム・コンポーネントについて学習するには、スキル・コンポーネント・「コンポーネント」アイコンページに移動し、コンポーネント・サービスを展開して、コンポーネントを選択します。 コンポーネント名、プロパティおよびサポートされているアクションが表示されます。 この情報を使用して、ダイアログ・フローでコンポーネントの状態をビルドします。

ヒント:

異なるサービスのコンポーネントに同じ名前を付けることができるため、使用する各カスタム・コンポーネントを確実に一意に参照するために、コンポーネント名をサービス名の後にコロン(:)を付加できます。

以降に、ダイアログ・フローのカスタム・コンポーネント状態の例を示します。 hello.worldコンポーネントは、customサービスのものです。

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

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

カスタム・コンポーネントのビルド方法の詳細は、「タスク1: カスタム・コンポーネントの実装」を参照してください。