2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pepper for Biz3.0のAI会話のカスタマイズ (2)

Last updated at Posted at 2019-05-09

#はじめに
前回は、pepper for Biz 3.0 の AI会話のカスタマイズ機能を使用して、Pepper チャットボックス コンバーターのサンプルシナリオ(空のテンプレート)を、単純にPepperで動かすということを行いました。
 今回は、Dialogflow側の設定内容について細かく確認していこうと思います。

前回の記事は、こちらになります。
Pepper for Biz3.0のAI会話のカスタマイズ (1)

#環境について

  • pepper for Biz3.0
  • お仕事かんたん生成3.0
  • Dialogflow
  • Microsoft Excel

#Dialogflow - Agent
 前回使用したDialogflowのAgentを参照してください。
 テンプレートによって、次の5つのIntentが作成、Default Fall Intentが更新されていると思います。
 image.png
 Excelのテンプレートには、たくさんのIntentXXX行が用意されていますが、実際に使用されるのは「アクションタイプ」列に「-」が設定されてる行の手前までとなります。
image.png
 また、2019/5段階のテンプレートでは、Agentに作成されるのはIntentのみで、Entityは作成されません。

##サンプルIntentの関係
サンプルのインテントの関係は、次の通りです。大きく2つのシナリオに分かれています。「名前についてのシナリオ」と、「好きな食べ物についてのシナリオ」(Intent2~Intent5_fellback)です。「好きな食べ物についてのシナリオ」は、会話を継続させる仕組みとして、Contextを使用しています。このサンプルでは、「food」というContextをIntent2が設定し、Intent3~Intent5_fellbackは、その「food」Contextが有効な間だけ、受け付けるようになっています。
image.png

このContextの有効期間は、Contextに設定した回数分、対応するIntentを消費した場合か、Intentの一致から20分後になくなります。
テンプレートのサンプルでは、「food」Contextの回数は3になっていました。つまり3回Intent3~Intent5_fellbackが実行されると、「food」Contextはなくなります。新たに設定するには、Intent2が実行されなければなりません。
image.png
 また、余談ですが、サンプルではIntent2で好きな食べ物の質問をして、Intent3に該当する答え「焼肉」と回答をしたとします。これで会話は終了ではなく、まだ「Food」Contextのカウンタは、3->2になっただけですので、まだ有効です。続いて、Intent4に該当する答え「お寿司」と答えることができてしまいます。これは時と場合によりますが、食べ物の回答後にContextをクリアしたい場合は、Intent3とIntent4のoutput contextに次のように指定します。
image.png
指定の方法は、output context欄に「food」と入力し、設定された数字を5から0にします。こうすることでContextがクリアされます。

##IntentとEvent名について
Intentには、それぞれ固有のEvent名が設定されています。
image.png
Intentは音声テキスト(音声認識後の文字列)をもとに、Dialogflowの機械学習によって選ばれたIntentが実行されますが、直接Intentを指定して実行したい場合があります。そのときにこのEvent名を使用します。
Event名による実行そのものは、「お仕事かんたん生成」側が行うのですが、テンプレート上ではボタンに対応するインテントのEvent名、連続してPepperに発話させる場合の次のインテントのEvent名などで使用します。
 また、「AI会話」ボックス実行時に最初に起動するインテントのEvent名を指定することで、Pepperから話しかけることができます。例えばサンプルのIntent2のEvent名「event2」を指定しておくと、「AI会話」ボックス実行時に「食事についてのシナリオ」からスタートすることができます。
image.png

##テンプレートとIntentの関係
 次にExcelテンプレートに設定した内容が、どのようにIntentに設定されているのかを確認していこうと思います。
###Intent1
 Intent1は、ユーザが名前について話しかけると、Pepperが発話とディスプレイ(テキスト)で答えるシナリオです。
image.png
 Excelのテンプレートの「インテント名」「イベント名」「ユーザー発話」は、dialogflowの「Intent」「Events」「Training phrases」にそれぞれ設定されます。
 Excelテンプレートの「アクションタイプ」以降は、「Custom payload」に独自のJsonデータとして設定されます。
 この「アクションタイプ」は、「テキスト」「画像」「動画」「ボタン」の4種類あり、このIntent1は、「アクションタイプ」-「テキスト」のサンプルです。
 また、「テキスト」にはタブレットに表示する文字列、「スピーチ」には、Pepperの発話文字列を指定します。発話文字列は、発話タグを入れて発話を調整することが可能です。テンプレートに設定されている「テキスト」には、発話タグが指定されていませんが、コンバーター側でPepperの標準の音声となる¥rspd=110¥¥vct=135¥が設定されるようです。

CustomPayload
{
  "list": [
    {
      "speechText": "\\rspd=110\\\\vct=135\\ボクの名前はペッパーです",
      "action": {
        "actionType": "showText",
        "content": {
          "displayText": "ボクの名前はPepperです!"
        }
      },
      "issueEvent": "",
      "endConversation": false,
      "animation": ""
    }
  ]
}

###Intent2
Intent2は、好きな食べ物の質問シナリオで、「好きな食べ物について」の最初のIntentです。
AI会話のユーザの回答として、音声による回答と、タブレットのボタンによる回答が可能となっており、このIntent2はそのタブレットにボタンを表示する例となります。「アクションタイプ」は「ボタン」です。
このIntent2が実行されたあと、Context「food」を有効にするため、「output context」に「food」を設定します。
 Excelテンプレートでは「コンテキスト」-「出力」に指定します。
image.png
また、ボタンそれぞれには対応するインテントのEvent名が指定されており、「焼肉」ボタンではevent3(Intent3)を、「お寿司」ボタンではevent4(Intent4)を実行するように指定されています。
image.png

CustomPayload
{
  "list": [
    {
      "speechText": "\\rspd=110\\\\vct=135\\ボクは電気が好きです。ところでお客様は、焼肉とお寿司ならどっちが好きですか",
      "action": {
        "actionType": "showButtons",
        "content": {
          "title": "焼肉とお寿司どっちが好き?",
          "buttons": [
            {
              "label": "焼肉",
              "event": "event3"
            },
            {
              "label": "お寿司",
              "event": "event4"
            }
          ]
        }
      },
      "issueEvent": "",
      "endConversation": false,
      "animation": ""
    }
  ]
}

###Intent3
Intent3は、Intent2の質問の回答の1つの「焼肉」を選んだ場合のシナリオです。
「アクションタイプ」は「テキスト」でIntent1と同じです。Intent1と異なるのは、「コンテキスト」が指定されている点です。
Context「food」が有効な間だけ、このIntentを有効とするために、「input context」に「food」を設定します。
 Excelテンプレートでは「コンテキスト」-「入力」に指定します。
image.png

CustomPayload
{
  "list": [
    {
      "speechText": "\\rspd=110\\\\vct=135\\やっぱり焼肉美味しいですよね",
      "action": {
        "actionType": "showText",
        "content": {
          "displayText": "やっぱり焼肉美味しいですよね!"
        }
      },
      "issueEvent": "",
      "endConversation": false,
      "animation": ""
    }
  ]
}

###Intent4
Intent4は、Intent2の質問の回答の1つの「お寿司」を選んだ場合のシナリオです。
Intent3とほぼ同様ですので、説明を省略します。

###Intent5_fallback
Intent5_fallbackは、好きな食べ物のシナリオで、どのIntentにも該当しない発話だった場合に、実行されるIntentです。
Excelテンプレートの「インテント名」に**_fallback**を付けるとFallback Intentとして作成されます。
Context「food」が有効な間だけ、このFallback Intentを有効とするために、「input context」に「food」を設定します。
image.png

###Default Fallback Intent
Default Fallback Intentは、ユーザの発話が、どのインテントにも該当しなかった場合に、実行されるIntentです。テンプレートインポート時に自動でCustom payloadが追加されます。
image.png

CustomPayload
{
  "speechText": "\\rspd=110\\\\vct=135\\すみません。別の言い方でお願いします",
  "action": {
     "actionType": "fallback"
  }
}

 Pepperの発話を変更したい場合は、このCustom payloadを修正する必要があります。
 サンプルでは1つだけの回答になっていますが、複数回答も可能なようです。
複数の回答にするには、"list:[]" 内に記入します。
 次のように書き換えてみました。該当しない場合でもちょっと聞いてくれる?感がでるんじゃないでしょうか。

CustomPayload(修正後)
{
  "list": [
    {
      "speechText": "\\rspd=110\\\\vct=135\\なるほど、なるほど",
      "action": {
        "actionType": "fallback"
      }
    },
    {
      "speechText": "\\rspd=110\\\\vct=135\\うん|うん。",
      "action": {
        "actionType": "fallback"
      }
    },
    {
      "speechText": "\\rspd=110\\\\vct=135\\ですよねー",
      "action": {
        "actionType": "fallback"
      }
    }
  ]
}

ちなみに「AI会話」ボックスで「想定外のユーザ発話」を「対応する」に設定していると、会話リストで選択した標準の会話(この例では「日常会話」)に発話が渡されますので、このDefault Fallback Intentで定義した発話は行われません。試す場合は、「対応しない」に設定し、お仕事を再配信した後でご確認ください。
image.png

##Intentのテスト
IntentをDialogflowのコンソール上で確認できます。
Dialogflowのコンソールの左側の「Try it now!」欄に想定するユーザ発話を入力します。
image.png
実行すると機械学習によってどのINTENTが実行されたのか、またContextの状態も表示されます。ただ、CustomPayloadの値はここでは確認できません。「DIAGNOSTIC INFO」をクリックすることで、RESPONSEの内容を確認することができます。
image.png
image.png

#次回について
今回も解説だけで終わってしましました。
次回は、会話でちょっとした遊びをしてみたいと思います。


前の記事:Pepper for Biz3.0のAI会話のカスタマイズ (1)
次の記事(作成中):Pepper for Biz3.0のAI会話のカスタマイズ (3)

 
 

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?