Oracle Cloud Infrastructureドキュメント

チャネルの基本

チャネルとは

チャネルでは、様々なメッセージング・プラットフォームのユーザーからデジタル・アシスタントや様々なスキル・ボットにチャットを進めます。 また、イベント開始の会話およびテストもサポートしています。

チャネル・タイプ

左のメニューのチャネルをクリックしてアクセスできるチャネル・ページから、次のチャネル・タイプを作成および管理できます。 各タイプにはタブがあります。

チャネル・タイプ 用途
ユーザー
アプリケーション
  • 外部アプリケーションからスキルに通知が送信されるようにアプリケーション・チャネルを構成し、会話をトリガーできるようにします。 「AIC構成」では、通知に応答するようにスキルを構成するプロセスについて説明します。

  • この通知を送信しないようにアプリケーションを有効化または無効化します(したがって、スキル開始された会話を回避します)。

システム
  • すべてのスキル開発者に対して、スキル・テスターでチャットを有効化または無効化します。

  • すべてのスキル開発者のチャット・セッションをリセットします。

ユーザー・チャネル・ルーティング

ユーザーが使用する各チャネルを、デジタル・アシスタントまたはスキルの1つのバージョンにルーティングできます。


routing_menu.pngの説明が続きます
「図routing_menu.pngの説明」

特定の時点で1つのチャネルで実行できるスキルまたはデジタル・アシスタントのバージョンは1つのみです。 スキルの新規バージョンを作成する場合、ルーティングを古いバージョンに停止して、更新されたバージョンに割り当てることができます。

それぞれに個別のチャネルを作成することで、スキルまたはデジタル・アシスタントの2つのバージョンの実行を同時にサポートできます。 たとえば、ベータ・テスト実施者は1つのチャネルを通じてスキルにアクセスしながら、カスタマは別のチャネルによるチャットを中断することなく続行できます。

チャネルのルート(またはルート変更)

  1. サイド・メニューを開くアイコンをクリックしてサイド・メニューを開き、開発>チャネル>ユーザーを選択します。

  2. ユーザータブを選択し、チャネルを選択します。
  3. チャネルで、ルーティング先フィールドの横にあるルート先...ドロップダウンのアイコンを選択し、チャネルをルーティングするデジタル・アシスタントまたはスキルを選択します。

Digital Assistantユーザー・チャネルのルーティングの仕組み

スキルをデジタル・アシスタントに登録すると、そのスキルによって送受信されるメッセージは、デジタル・アシスタントのユーザー・チャネルを介して中継されます。 デジタル・アシスタントのルーティングは、スキルに他のチャネルがすでにルーティングされている場合でも引き継がれます。

たとえば、2つのスキルがあり、それぞれのスキルに独自のwebチャネルが登録されていて、デジタル・アシスタントが自分のWebチャネルおよびFacebookチャネルにルーティングするとします。 ユーザーがデジタル・アシスタントからwebチャネルを通じてデジタル・アシスタントにメッセージを送信すると、インテントが判別され、適切なスキルにメッセージが送信されます。 スキルの返信の場合、そのメッセージは、スキルのwebチャネルを経由せずに、デジタル・アシスタントのWebチャネルを介してユーザーに返信されます。 同様に、デジタル・アシスタントがFacebookサブスクライバからメッセージをインターセプトすると、スキル独自のwebチャネルではなく、デジタル・アシスタントのFacebookチャネルを介してユーザーへのスキルのレスポンスが返信されます。

チャネルのテスト・レンダリング

デジタル・アシスタントまたは個々のスキルがある会話が特定のユーザー・チャネルでレンダリングされる方法を確認するには、テスターを使用します。

  1. テストするデジタル・アシスタントまたはスキルを開きます。

  2. デジタル・アシスタントまたはスキルの左側のナビゲーションの下部にあるテスターのアイコンをクリックします。

  3. チャネルドロップダウンで、デジタル・アシスタントまたはスキルのデプロイ先とするチャネルを選択します。

  4. テスターの下部のテキスト・フィールドに、テストのテキストを入力します。

チャネルをテストすると、チャネルでの表示方法を確認できます。 また、そのチャネル・タイプに制限がある場合に、会話のレンダリングを強制する方法が異なります。強制的に実行されない場合には、会話タブでその制限について説明されています。

ゼロ・ダウンタイムのチャネル更新

ユーザーのダウンタイムを発生させることなく、あるスキルまたはデジタル・アシスタントから別のスキルまたはデジタル・アシスタントにチャネルを再ルーティングできます。

設定方法を次に示します:

  • デジタル支援にルーティングされるチャネルの場合、次を実行します:
    1. クローンデジタル・アシスタントです。
    2. クローニングされたデジタル・アシスタントで、既存のスキルの新規バージョンの追加など、必要な変更を行います。
    3. チャネルを元のデジタル・アシスタントのクローンに再ルーティングします。
  • 個々のスキルにルーティングされるチャネルの場合、次の手順を実行します:
    1. スキルの新規バージョンを作成し、必要な更新を行い、スキルを公開します。
    2. チャネルをスキルの新規バージョンに再ルーティングします。

チャネルのルート変更後の処理は次のとおりです:

  • ユーザーがオープン・セッションを持っていない場合は、次にチャネルにアクセスするときに、新しいデジタル・アシスタントまたはスキルが取得されます。
  • ユーザーがデジタル・アシスタントまたはスキルのあるオープン・セッションを使用していても、スキルのフローの途中にない場合、セッションは更新されたデジタル・アシスタントまたはスキルでリフレッシュされます。
  • チャネルの再ルーティング時に、ユーザーがスキル内のフローの途中にいた場合、ユーザーは以前のバージョンのスキルまたはデジタル・アシスタントを引き続き表示します。 フローが終了すると(return遷移がフローでコールされた場合に発生)、セッションは更新されたデジタル・アシスタントまたはスキルで更新されます。

注意:

既存のデジタル・アシスタントを更新する場合(デジタル・アシスタントのクローンを作成し、クローンに再ルーティングするのではなく)、ダウンタイムなし機能は動作しません。 たとえば、スキルの新しいバージョンがデジタル・アシスタントに追加され、ユーザーが古いバージョンのスキルを持つセッションの途中にいる場合、セッションは中断され、スキルの作業が停止になります。

ユーザー・チャネル・セッションのリセット

必要に応じて、セッションのリセットボタンをクリックして、ユーザー・チャネルで現在の会話を切断できます。

注意:

このボタンは主に、スキルまたはデジタル・アシスタントを開発する場合に使用します。 そのチャネルを本番で使用すると、進行中のすべてのユーザー会話が中断されます。

セッションのリセットボタンにアクセスするには、次のステップを実行します:

  • サイド・メニューを開くアイコンをクリックしてサイド・メニューを開き、開発>チャネルを選択してユーザー・チャネルを選択します。

チャネルの有効化と無効化

しばらくしてから、チャネルを無効にして構成のメンテナンスまたは更新を行い、チャネルを再度有効化する必要がある場合があります。

これを行うには、次のスイッチを使用します:

  • チャネル使用可能
  • アプリケーション有効 (アプリケーションの場合)

スキル・テスターをサポートするシステム・チャネルを無効化すると、チャネルが使用できないことを開発者に警告します。

これらのオプションにアクセスするには:

  • サイド・メニューを開くアイコンをクリックしてサイド・メニューを開き、開発>チャネルを選択してチャネルを選択します。

チャネル固有の拡張

ダイアログ・フローで複数のチャネルにわたってレンダリングするために使用できる汎用要素に加えて、チャネル・タイプに固有の機能を利用することもできます。 これは、次のフォームをとるSystem.CommonResponseコンポーネントのchannelCustomProperties要素を介して行うことができます:

...
            channelCustomProperties:
            - channel: "CHANNEL_NAME" // can be facebook, slack, cortana, twilio, android, ios, web
              properties:
                PROPERTY_NAME: "PROPERTY_VALUE"
...

globalActionsresponseItems、およびresponseItemsの要素のレベルで、特定のプロパティに応じてchannelCustomPropertiesを適用できます。

使用可能なプロパティは、チャネルによって異なります。 各チャネルに使用できるカスタム・プロパティのリストについては、次のトピックを参照してください:

次に、レスポンス・アイテム・レベルとカード・レベルで定義されたカスタム・プロパティの例を示します:

OrderPizza:
  component: "System.CommonResponse"
  properties:
    metadata:
      responseItems:
        - type: "cards"
          cardLayout: "vertical"
          cards:
            - title: "${pizzas.name}"
              description: "${pizzas.description}"
              imageUrl: "${pizzas.image}"
              url: "${pizzas.moreInfo}"
              iteratorVariable: "pizzas"
              channelCustomProperties:
                - channel: "facebook"
                  properties:
                    webview_height_ratio: "compact"
                    fallback_url: "http://www.oracle.com"
          channelCustomProperties:
            - channel: "facebook"
              properties:
                top_element_style: "large"
  ...

channelCustomProperties要素は配列を取り、各エントリは特定のチャネルのプロパティを指定します。 一部のカスタム・プロパティは特定のSystem.CommonResponse要素、または特定のレスポンス・アイテム・タイプに対してのみ適用されます。前述の例では、top_element_stylecardsタイプのレスポンス・アイテムにのみ適用されます。

また、フリー・マーカー式を使用してチャネル・カスタム・プロパティの値を指定することもできます。

この図は、複合バッグ・エンティティ費用の解決時に費用日付アイテムの入力を要求された場合の、日付ピッカーがSlackにのみ表示される例です:

resolveExpense:
  component:
 "System.CommonResponse"
  properties:
    processUserMessage: true
    variable: "expense"
    nlpResultVariable: "iResult"
    metadata:
      responseItems:
        - type: "text"
          text: "${system.entityToResolve.value.prompt}"
          channelCustomProperties:
            - channel: "slack"
              properties:
                showDatePicker: "${system.entityToResolve.value.name=='Date'}"
  ...

チャネル機能の比較

チャネルとサポートされている機能の比較は次のとおりです。

権限 Facebook Messenger Slack Microsoft Teams Cortana Skype for Business Twilio Oracle Web SDK
テキスト はい はい はい はい はい はい はい
イメージ はい はい はい 送信する場合はあり。 受入不可 いいえ 一部 はい
ファイル はい 送信用に部分的です。 受入の場合ははい はい 送信する場合はあり。 受入不可 いいえ 一部 はい
Emojis はい 送信用に部分的です。 受入の場合ははい はい 送信する場合はあり。 受入不可 送信用に部分的です。 受入の場合ははい 一部 はい
場所 はい いいえ いいえ いいえ いいえ いいえ はい
リンク はい はい はい はい いいえ はい はい
ポストバック はい はい はい いいえ いいえ 一部 はい
ロケーション・リクエスト はい いいえ いいえ いいえ いいえ いいえ はい
拡張機能 いいえ いいえ いいえ いいえ いいえ いいえ いいえ
カスタム・プロパティ はい はい はい はい いいえ 一部 はい
カルーセル はい 一部 はい はい 一部 一部 はい
リスト はい はい はい はい 一部 一部 はい
ノート

ダイアログ・フローから絵文字をレンダリングするには、そのUnicode表現から始めて、+000に置き換え、そのコードに\をプレフィクスとして付加します。
たとえば、U+1F600の場合、ダイアログ・フローに \U0001F600と入力します。 絵文字の詳細は、https://home.unicode.org/emoji/を参照してください。

チャネル・メッセージ制約の比較

ここでは、メッセージやアクション・ボタンの制約をチャネル別に比較します。

テキスト・メッセージの制約

テキスト・メッセージ制約 Facebook Messenger Slack Microsoft Teams, Cortana, Skype for Business Twilio Android、iOSおよびWeb (JavaScript) SDK
テキスト・メッセージの最大長 640文字 長さが640を超えると、テキストは複数のメッセージに分割されます。 3000文字 長さが3000を超える場合、テキストは複数のメッセージにわたって分割されます。 -- 1600文字 長さが1600を超えると、テキストは複数のメッセージに分割されます。 --
テキスト・アクション・ラベルの最大長 20文字 30文字 1行(約50文字) 該当なし 128文字
許可されるテキスト・アクションのタイプ ポストバック、コール、URL ポストバック、URL ポストバック、コール、URL Postback, Call, URL. これらのアクション・タイプはテキストに変換されます。 ポストバック・アクションの場合、ラベルは、ポストバックのトリガーに使用可能なキーワードとして機能します。 ポストバック、URL
テキスト・アクションの最大数 3.さらにテキスト処理がある場合、メッセージは複数の水平カードに変換されます。各カードのタイトルと同じテキストが使用され、各カードには最大3個の処理が含まれます。 -- -- 該当なし 6.さらにテキスト処理がある場合、メッセージは複数の水平カードに変換されます。各カードのタイトルと同じテキストが使用され、各カードには最大6個の処理が含まれます。

水平カード・メッセージ

水平カード・メッセージ制約 Facebook Messenger Slack Microsoft Teams, Cortana, Skype for Business Twilio Android、iOSおよびWeb (JavaScript) SDK
サポートの有無 はい いいえ。カードはレイアウトで垂直に変換されます。 はい いいえ。ただし、ほぼ同等の機能は、なんらかのアクション・タイプをテキストに変換することによって実現されます。 はい
タイトルの最大長 80文字 3000文字 2行(約80文字) 該当なし 30文字
摘要の最大長 80文字 3000文字 25,000文字 該当なし 128文字
カード処理ラベルの最大長 20文字 30文字 1行(約50文字) 該当なし 25文字
カードの最大数 10 該当なし 10 該当なし 10
カード処理の最大数 3.カード処理の数が3を超える場合、残りのカード処理をレンダリングするためにカードが複製されます。 該当なし 6.カード処理の数が6を超える場合、残りのカード処理をレンダリングするためにカードが複製されます。 該当なし 3.カード処理の数が3を超える場合、残りのカード処理をレンダリングするためにカードが複製されます。
カード処理の最小数 0 該当なし 0 該当なし 1
カード・リスト・アクションの最大数 0 該当なし 6 該当なし --
少なくとも1つの説明、イメージまたはアクションが必要ですか。 はい 該当なし いいえ 該当なし いいえ
許可されているカード処理のタイプ ポストバック、コール、URL、シェア ポストバック、URL ポストバック、コール、URL Postback, Call, URL. これらのアクション・タイプはテキストに変換されます。 ポストバック・アクションの場合、ラベルは、ポストバックのトリガーに使用可能なキーワードとして機能します。 ポストバック、URL
カード・リスト処理のタイプ許可 該当なし ポストバック、URL ポストバック、コール、URL Postback, Call, URL. これらのアクション・タイプはテキストに変換されます。 ポストバック・アクションの場合、ラベルは、ポストバックのトリガーに使用可能なキーワードとして機能します。 ポストバック、URL

垂直カード・メッセージ

垂直カード・メッセージ制約 Facebook Messenger Slack Microsoft Teams, Cortana, Skype for Business Twilio Android、iOSおよびWeb (JavaScript) SDK
サポートの有無 はい はい はい いいえ。ただし、ほぼ同等の機能は、なんらかのアクション・タイプをテキストに変換することによって実現されます。 いいえ。カードはレイアウトに変換されます。
タイトルの最大長 80文字 3000文字 2行(約80文字) 該当なし 30文字
摘要の最大長 80文字 3000文字 25,000文字 該当なし 128文字
カード処理ラベルの最大長 20文字 30文字 1行(約50文字) 該当なし 25文字
カードの最大数 4 100 10 該当なし 該当なし
カード処理の最大数 1.さらにカード処理がある場合は、カードが重複して残りのカード処理がレンダリングされます。 -- 3