Skip to main content

 

 

 

 

Template:OutSystems/Documentation_KB/Breadcrumb_New_Layout

 

 

Template:OutSystems/OSLanguageSwitcher

 

 

 

OutSystems

高度なロジックを作成してカードで応答する

高度なロジックを作成し、Azure AIプロバイダの機能と既存のOutSystemsアプリやサービスを組み合わせます。このドキュメントでは、チャットボットロジックがAzureバックエンドと直接通信しない高度なロジックの例を示します。直接通信しない代わりに、チャットボットWebhookモジュールを使用し、Azureからのレスポンスを処理および変更してからUIに応答メッセージを表示します。

Azure Bot ServiceとOutSystemsの両方とやりとりするロジックを追加するには、チャットボットWebhookモジュールを追加して構成する必要があります。

エコーメッセージで応答する

新しく作成したWebhookモジュールには、エコーチャットボットのロジックが含まれています。このロジックは、チャットボットからのメッセージを受け取って「ECHO:」を追加し、チャットの応答として返送します。

Webhookモジュールを開き、[Logic]のServer Actions > Utilities > GetMessageResponseに移動します。このサーバーアクションのロジックを確認します。

サンプルレスポンス

カードで応答する

カードは、通常は画像、ボタン、添付ファイルをダウンロードするためのリンクを備えたUI要素です。チャットボットの会話でプレーンテキストよりもリッチなエクスペリエンスを提供します。OutSystemsのOutSystems.AI Chatbotコンポーネントのデータストラクチャは、Azure Bot Frameworkのカードの必要なストラクチャに基づいています。

GetMessageResponseサーバーアクションでレスポンスを作成して、カードを作成します。チャットボットのデモをインストールして、使用するカードに関連するロジックを開くことを推奨します。

レスポンスの作成方法の詳細を以下に示します。このロジックではAzure Bot Frameworkの要素を組み合わせているため、理解を深めるのに役立ちます。

利用可能なカード

以下のタイプのカードがサポートされています。

  • サムネイルカード
  • カードコレクション

カード内では要素を組み合わせることができます。以下のような要素があります。

  • サムネイル画像
  • テキスト
  • ボタン
  • 添付ファイル

カードの構造

チャットボットカードは、Azure Bot Frameworkに基づいています。フレームワークで必要なJSONに対応するデータストラクチャは、Azure Bot Frameworkコネクタで参照されます。[Data]のStructures > AzureBotFrameworkConnectorでそれらを参照することができます。

GetMessageResponseアクションで、コネクタがAzure Bot Serviceに送信するJSONカードストラクチャを作成します。これにより、メッセージがボットのUIに表示されます。カードの詳細については、Microsoftデベロッパーセンターの以下のページをご覧ください。

  • 「Cards Reference」。カードの詳細が示されています。ただし、OutSystemsで使用できないカードもあります。
  • 「Card actions」では、カードで使用できるアクションの一覧が示されています。

ファイルをダウンロードするカードで応答する

チャットウィンドウでPDF添付ファイルを送信するチャットボットロジックの例を以下に示します。ユーザーがチャットウィンドウ内のテキストをクリックすると、ブラウザがPDFファイルを読み込みます。

カードによるチャットボットレスポンスの作成

ボットロジックには複数のブランチが含まれることが一般的ですが、この簡単な例では、ダウンロードカードの作成のロジックを重点的に説明するために、1つのフローのみを使用しています。

  1. GetMessageResponseアクションには以下のパラメータがあります。

    • Message - GetMessageResponseのデフォルトの入力パラメータ。
    • ResponseMessage - GetMessageResponseのデフォルトの出力パラメータ。なお、ResponseMessageのデータ型の1つはAttachmentsです。
    • Attachment - Azure Bot Frameworkコネクタのデータストラクチャ([Data]のStructures > AzureBotFrameworkConnector)から得られるAttachmentデータ型のローカル変数。
  2. AssignツールでAttachmentローカル変数のプロパティを設定します。この例では以下のとおりです。

    • ContentType - メディアのタイプを識別します。ここではPDFです。
    • Name - 添付ファイルの名前。チャットウィンドウのファイルのラベルです。
    • ContentUrl - ファイルへのリンク。この例では、このファイルはモジュール内のリソースであり、リンクは相対リンクです。
  3. アクションによってAttachmentResponseMessage.Attachmentsリストに追加されます。Systemプロデューサ(Ctrl+Qを押して(System)を検索します)のListAppendサーバーアクションを参照する必要がある場合があります。

  4. Response MessageというラベルのAssignツールは、共通する値を割り当てる汎用ノードです。Webhookモジュールに含まれており、デフォルトのGetMessageResponseサーバーアクションを含んでいます。

この例のロジックを実行すると、チャットボットは以下のメッセージで応答します。

カードによるチャットボットレスポンスの作成

画像やボタンを含むカードで応答する

以下に示す別の例では、ロジックの概要とデータストラクチャを重点的に説明します。ボットロジックには複数のブランチが含まれることが一般的ですが、この簡単な例では、概要をわかりやすく示すために、1つのフローのみを使用しています。

サムネイルカードによるチャットボットレスポンスの作成

  1. CardActionデータ型のCardActionローカル変数はクリックできるボタンに対応し、このAssignツールで値が割り当てられます。
  2. ListAppendアクションは、CardAction変数をAttachment.Content.Buttonsのボタンのリストに追加します。
  3. Attachment.Content.TextAttachment.Content.Titleは、カードのテキスト本文とタイトルを定義します。
  4. Attachment.ThumbnailUrlは画像のURLを参照し、Attachment.ContentType="thumbnail"とすることによって画像がサムネイルとして表示されます。
  5. ListAppendアクションは、Attachment変数をResponseMessage.Attachmentsの添付ファイルのリストに追加します。
  6. Response Messageは汎用ノードで、ResponseMessageの共通する値を割り当てます。

チャットボットを実行すると、ユーザーに以下のメッセージが返されます。

カードによるチャットボットレスポンスの作成

複数のサジェスチョンカードで応答する

以下は、複数のサジェスチョンをユーザーに示すカードです。詳細については、チャットボットのデモアプリをご覧ください。

カードによるチャットボットレスポンスの作成