Posted at

api.aiのDialogsの概要

More than 1 year has passed since last update.

https://api.ai/docs/dialogs


Dialogs

ボイスインタラクションのシナリオを考慮するための2種類のダイアログがある。

- Linear dialogs - 必要とされるアクションを完了するために必要な情報を集めるためのダイアログ(例えば、ベストなホテルを見つけるとか、ライトを点けるとか、聞きたい曲を再生するなど)

- Non-linear dialogs - ユーザの回答によっていくつかの枝を持つ。


Linear Dialog

リニアダイアログを構築するには、slot fillingとして知られている機能を用いる。下記の例はホテルの予約アプリのAgentである。

api.aiは自然言語を理解できるので、旅行者はたくさんの手段でホテルをリクエストすることができる。ユーザのリクエストに応じて異なるパラメータがある。


  • “I need to book a hotel."

  • “Find a cheap hotel in Rome.”

  • “Book a hotel in New York, check in November 10, check out November 15.”

アプリケーション側では少なくとも下記3つのパラメータが必要となる。


  • 目的地

  • チェックイン日

  • チェックアウト日

これらはfilling featureによって取得できる(?)

User Saysセクション内のexamplesのリストアップを始める前に、アプリケーションが検索音ために使うパラメータの全てをリストアップすることができる。(requiredもoptionalも両方)

Requiredとしてパラメータをマークしたとき、ユーザのリクエストの中に必須パラメータが無いときにアプリケーションからユーザに聞くためのpromptsを設定する。

ドラッグ&ドロップで必須パラメータを質問する順番を入れ替えることができる。

Agentは必要な情報が集まるまで、これらのpromptsを聞き続ける。ユーザは「Cancel」と言うことによって初めからやり直すことができる。


Non-linear Dialogs

非線形ダイアログの例を見てみよう。この例では、ホテルの顧客満足度調査を扱う。

次の2つの質問から開始する。


  • How would you rate the location of the property?

  • How would you rate the facilities at the hotel?

各質問において、4つの回答を受け付ける。


  • poor

  • fair

  • good

  • excellent

このダイアログを構築するために、Contextが必要となる。