C インサイトの会話マーカー

YAMLベースのダイアログ・フローを使用するスキルの場合、次の会話マーカー・プロパティをダイアログ・フローに追加することで、インサイト・レポートを読みやすくすることができます:
  • insightsInclude: false – インテントおよび会話のインサイト・レポートでレンダリングされるダイアログ・パスから状態を除外します。このプロパティを任意の状態に追加すると、インサイト・レポートでレンダリングまたはカウントされなくなるため、変数値の設定など、補助機能を実行する状態に適用できます。たとえば、insightsInclude: falseをピザ・スキルの各System.SetVariableプロパティに追加すると、スキルとユーザー間の対話に関する状態のみをレンダリングするようにパスが縮小されます。
  • insightsEndConversation: true – 会話の際立った部分を分離できるように、インサイト・レポートの終わりにマークを付けます。このマーカーを使用して、遷移ごとにレポートを分けることもできます。
これらのプロパティは任意の状態に追加できます。

ダイアログ・フローのモデリング

デフォルトでは、インサイトは会話のすべての状態をトラッキングしますが、すべての状態をレポートに含める必要がないこともあります。特定のトランザクションに重点を置くか、レポートから状態を完全に除外する場合、insightsIncludeおよびinsightsEndConversationプロパティを使用してダイアログ・フローをモデリングできます。これらのプロパティは、任意のコンポーネントに追加して、インサイト・レポートをより詳細なレベルで制御できます。
ノート

これらのプロパティは、Oracle Cloud Infrastructure (Generation 2クラウド・インフラストラクチャとも呼ばれる)にプロビジョニングされたOracle Digital Assistantインスタンスでのみサポートされます。Oracle Cloud Platformにプロビジョニングされているインスタンスでは(Oracle Digital Assistantのバージョン19.4.1のすべてのインスタンスと同様に)、サポートされません。

会話の終了のマーク

return遷移によって完全な会話の終了をマークするかわりに、insightsEndConversationプロパティを使用してインサイト・レポートの会話の記録を停止する場所をマークできます。このプロパティにより、関心のあるダイアログ・フローの側面のみに集中できます。たとえば、顧客がオーダーを取り消した時点までの会話を記録するだけでよく、それ以上は必要ない場合(会話を分岐する後続の確認メッセージやオプションは不要な場合)があります。デフォルトでは、このプロパティはfalseに設定されています。つまり、インサイトは、return遷移まで、またはinsightsEndConversationプロパティがtrueに設定されるまで(insightsEndConversation: true)記録を続けます。
  cancelOrder:
    component: "System.Output"
    properties:
      text: "Your order is canceled."
      insightsEndConversation: true 
    transitions:
      next: "intent"
このフラグはインサイト・レポートが完了した会話を表示する方法を変更するため、ダイアログ・フローにこのフラグが導入された後の会話数は、前のバージョンのスキルに対する会話数と比較できない場合があります。
ノート

insightsEndConversationマーカーは、モジュラ・フローですでに会話を示すため、ビジュアル・フロー・デザイナでは使用されません。会話は、最上位フローの最後の状態に達すると終了します。

インサイトによるデータ収集の効率化

insightsIncludeプロパティを使用して、レポートに記録される対象から不要であると思われる状態を除外します。インサイト・レポートから状態を除外するには、このプロパティをfalseに設定します:

...
  resolveSize:
    component: "System.SetVariable"
    properties:
      variable: "crust"
      value: "${iResult.value.entityMatches['PizzaSize'][0]}" 
      insightsInclude: false      
    transitions:
      ...
...
このプロパティは、インサイト・レポートのみに固有です。状態がテスターでレンダリングされなくなることはありません。
ノート

insightsIncludeは、ビジュアル・フロー・デザイナではサポートされていません。

インサイト・マーカーのユースケース

次の一般的なユースケースでは、会話マーカー・プロパティをダイアログ・フローに追加することで、レポートを読みやすくするためのベスト・プラクティスを示します。

ユースケース1: インテントまたは遷移ごとに会話を分ける場合

insightsEndConversation: trueプロパティを使用して、単一のチャット・セッション内で発生したユーザーの対話を個別の会話として表示します。たとえば、このプロパティは、特定のインテントの実行パスを開始したのに、ダイアログ・フローを分岐する状態に適用できます。

pizzapastaおよびtextReceived遷移を含むCrcPizzaBotスキルのShowMenu状態は、次のような状態です:
  ShowMenu:
    component: "System.CommonResponse"
    properties:
      processUserMessage: true
      metadata:
        responseItems:
          - type: "text"
            text: "Hello ${profile.firstName}, this is our menu today:"
            footerText: "${(textOnly.value=='true')?then('Enter number to make your choice','')}"
            name: "hello"
            separateBubbles: true
            actions:
              - label: "Pizzas"
                type: "postback"
                keyword: "${numberKeywords.value[0].keywords}"
                payload:
                  action: "pizza"
                name: "Pizzas"
              - label: "Pastas"
                keyword: "${numberKeywords.value[1].keywords}"
                type: "postback"
                payload:
                  action: "pasta"
                name: "Pastas"
    transitions:
      actions:
        pizza: "OrderPizza"
        pasta: "OrderPasta"
        textReceived: "Intent"
insightsEndConversation: trueプロパティをShowMenu状態に追加すると、これらの遷移ごとにレポートを分けることができます:
  ShowMenu:
    component: "System.CommonResponse"
    properties:
      processUserMessage: true
      insightsEndConversation: true
…
insightsEndConversation: trueプロパティのため、インサイトでは、pizzapastaまたはtextReceived遷移によって有効になった後続の対話は個別の会話とみなされます。つまり、1つではなく2つの会話が、「概要」ページの「会話」メトリックで集計され、同様に、2つの別個のエントリが会話レポートに作成されます。
ノート

会話数は、このプロパティを追加する前に集計された数と一致しないことに注意してください。
最初のエントリは、ShowMenuインテント実行パス用で、会話はShowMenu状態で終了します。

2番目は、textReceivedアクションがトリガーされたときにインテントの名前を示すか、動作中の2番目のインテントがないときに「インテントなし」を示す遷移固有のエントリです。showMenu状態に対してレンダリングされたリスト・メニューからPizzasまたはPastasのいずれかを選択すると、会話レポートには、インテントへの解決に必要なテキストがユーザーによって入力されなかったため、遷移会話のShowMenuエントリおよび「インテントなし」エントリが含まれます。

ただし、テキストを入力してtextReceived遷移をトリガーすると、会話レポートに解決済のインテントの名前(OrderPizza、OrderPasta)が示されます。

ユースケース2: インサイト・パス・レポートからサポートされている状態を除外する場合

CrcPizzaBotスキルのstatesノードは、一連のSystem.SetVariable状態で始まります。これらの状態は定義の最初に配置されるため、「状態をフィルタ」オプションで除外していない場合は、各パスのレンダリングが開始されます。このような状態のサポートは、パスのトランザクション的な側面に重点を置く場合は、わかりにくいものとみなすことができます。「フィルタ状態」メニューを使用するか、ダイアログ・フロー定義にinsightsInclude: falseプロパティを追加して、パスのレンダリングを手動で簡略化できます。

insightsInclude: falseプロパティは、パス・レポートに表示しない任意の状態に追加できます。
  setTextOnlyChannel:
    component: "System.SetVariable"
    properties:
      insightsInclude: false
      variable: "textOnly"
      value: "${(system.channelType=='webhook')?then('true','false')}"
  setAutoNumbering:
    component: "System.SetVariable"
    properties:
      insightsInclude: false
      variable: "autoNumberPostbackActions"
      value: "${textOnly}"
  setCardsRangeStart:
    component: "System.SetVariable"
    properties:
      insightsInclude: false
      variable: "cardsRangeStart"
      value: 0
    transitions:
      ...
...
CRCPizzaBotSkillの場合、insightsInclude: falseプロパティを各System.SetVariable状態に追加すると、トランザクション状態がパスの先頭に配置されます。

ノート

insightsInclude: falseプロパティを追加すると、パスのレンダリング方法が変更されるだけでなく、「平均の状態」メトリックについてレポートされる合計にも影響します。

チュートリアル: 会話マーカーを使用したインサイト・レポートの最適化

会話マーカーの使用方法を練習するには、会話マーカーを使用したインサイト・レポートの最適化というチュートリアルを参照してください。