Developer Dashboard

DDSアーキテクチャ

Expert Agent

DDS内でユーザーが作成できる対話プログラムを指します。

  • Expert Agentは、「ユーザーの発話」を「意図(Intent)」に変換し、エンドポイントへ送信する変換器の役割を担います。
  • Expert Agentの対話は「タスク志向」となります。
  • Expert Agentは、対話を通じて「Intent」(天気、交通検索など)を特定します。あいまいなユーザーの発話に対しては「聞き返し」を行い、Intentを特定します。
DDS内のExpert Agentイメージ

Expert Agentの対話シーケンス

Expert Agentの対話シーケンス
  • (1) ユーザーがデバイスやアプリケーションに対して、Invocation Nameを発話します(発話①)。
  • (2) NLUで起動しているController Botが、Expert Agentを呼び出します。
  • (3) Expert Agentは発話①を受け、ユーザーに挨拶(Welcome Message)を返します。
  • (4) ユーザーがExpert Agentに対して、何らかのタスクを実行するように発話します(発話②)。
  • (5) Expert Agentは発話②を受け、ユーザーの望むタスクがExpert Agent内のどのIntentに該当するかを判別します。
  • (6) Intentの判別ができると、Intentを実行する(エンドポイントへPOSTする)ために必要な引数(Slot)を、発話②から抽出します。
    • 引数には、必須SlotとオプションSlotの2種類があります。
    • Slotが抽出できたとき
      抽出したデータを変数として格納します。(10)に進みます。
    • Slotが抽出できなかったとき
      必須Slotの場合:(7)に進みます。
      オプションSlotの場合:初期値(attribute: default)を変数として利用します。(10)に進みます。
  • (7) Slotを抽出するために聞き返し文(attribute: loop_text)を送話します。
    • 聞き返し文は、DDSの「Expert Agent作成/編集ページ」の「Reflective Sentence」で定義します。
  • (8) ユーザーが聞き返し文に対して回答します(発話③)。
  • (9) Expert Agentは発話③を受け、Slotを抽出します。
    • Slotが抽出できたとき
      抽出したデータを変数として格納します。→(10)に進みます。
    • Slotが抽出できなかったとき
      すべてのSlotが抽出できるまで、ユーザーに聞き返しを行います。→(7)に戻ります。
  • (10) 必要なすべてのSlotが抽出できると、Expert AgentがIntentをエンドポイントへPOSTします。
    • 抽出したSlot群が、一次構造のJSONとしてリクエストボディになります。
  • (11) Expert Agentはエンドポイントからの返却内容を解析し、ユーザーの発話②に対するMessage(回答)を返します。以下のように、設定によって返答とその後の動作に違いがあります。
    • Expert AgentにGoodbye messageの設定がない かつ、エンドポイントの返却値に会話終了のパラメーター("talkend":"true")が含まれないとき
      - Message(回答)を返します。
      - (1)~(3)で呼び出したExpert Agentとの対話を継続し、(4)から開始します。
      • 判定したIntent情報やSlot情報はクリアされます。
    • Expert AgentにGoodbye messageの設定がない かつ、エンドポイントの返却値に会話終了のパラメーター("talkend":"true")が含まれるとき
      - Message(回答)を返します。
      - (1)~(3)で呼び出したExpert Agentとの対話は終了します。
    • Expert AgentにGoodbye messageの設定があるとき
      - Message(回答)とGoodbye messageを返します。
      - (1)~(3)で呼び出したExpert Agentとの対話は終了します。
    • Message(回答)に不適切な表現が含まれている場合は、そのMessageの代わりに「エージェントが不適切な表現をしようとしたため終了します。」というMessageをユーザーに返します。

参考

実際の動作イメージは、基本的な動作イメージの音声対話を参照してください。

Expert Agentの呼び出し(Invocation Name)

各種デバイスやアプリケーションから、紐づけられているExpert Agentを呼び出すためのキーワードです。

Expert Agentは「"invocation name" + 呼び出しパターン(「お願い」、「呼んで」、「につないで」など)」で呼び出すことができます。

たとえば、天気を調べるExpert AgentのInvocation Nameが「お天気くん」の場合、ユーザーがデバイスに「お天気くん呼んで!」と声をかけると、そのExpert Agentが呼び出され挨拶(Welcome Message)が発話されます。

Expert Agentの呼び出し例