Einstein ボットの作成もいよいよ大詰めになってきました。
ダイアログの扱いにはだいぶ慣れたので、今回はエンティティを使用してよりボットらしく仕上げていきましょう。
Einsteinボットにおけるエンティティとは
エンティティとはITの世界では、広域の意味で実体という意味で使用されており、主にデータベース領域で使用されます。
よくデータベースを構築するときに使用するER図のEがエンティティですね。
実際にDynamics365などは、データの入れものとしてエンティティが使用されています。
Einsteinボットでもエンティティというものが使用されます。
こちらはデータベースのテーブルとはまた違う意味で使用されています。
Einsteinボットにおけるエンティティは、ボットが解釈可能なデータの種類として使用されます。
例えば、あなたは好きな異性とデートで食事に行くとしましょう。
「何食べたい?」と聞かれて「なんでもいい」と答えられると、リードする側も困惑してしまうでしょう。
「何食べたい?」だけだと回答の幅が広すぎてボットでは処理しきれないので、ボットが処理できる範囲内で回答される仕組み、それがエンティティになります。
先ほどの食事の例だと、「何食べたい?和食か中華かイタリアンか選んで!」って感じで選択肢を与えたり、「イタリアンの中でどの料理を食べたい?」といって、回答に制限をつけるのがエンティティの役割となります。
Einsteinボットで使用するエンティティは3種類
Einsteinボットで使用されるエンティティは以下の3種類です。
システムエンティティ
あらかじめ作成されているエンティティになります。
汎用的なエンティティで、日付や数値、テキストなど質問に対するデータ型を指定するときに使用します。
システムエンティティはどちらかというとデータ型を指定する程度の入力制限なので、より厳密な入力制限をしたい場合は、以下のカスタムエンティティを使用することになります。
値型エンティティ
値型のエンティティは入力に対する回答を予め固定値として指定します。
指定された値以外のもので回答してしまうと困惑してしまいます。
値型のエンティティは「エンティティ」メニューから[新規]で作成できます。
エンティティの定義情報を入力します。
抽出種別は「値」を設定します。
エンティティを作成したら一覧に表示されるので、▼部分から[編集]を選択します。
[追加]で値リストを追加し、
適用する値を追加します。
実際に作成したエンティティを使用して質問を作成します。
エンティティ名に「カテゴリー(テキスト)」を指定して、質問を定義します。
今回は選択肢は使用せずにフリーテキスト入力とします。
プレビューで確認してみましょう。
実際に値で設定したものを入力すると、このように正常にメッセージが返ってきます。
設定値以外で入力した場合は、このように困惑のダイアログが処理されます。
パターン型エンティティ
正規表現によって入力パターンを指定するエンティティになります。
パターンから外れた入力をした場合はボットが困惑してしまいます。
パターンエンティティを作成する場合は、抽出種別を「パターン」にしてRegexパターンに正規表現を入力します。
使い方は値型のエンティティと一緒で、正規表現に合致する入力であれば正常処理、合致しない入力の場合は困惑します。
正規表現を覚えるのは大変ですが、より細かい入力の指定ができるため、上級者向けの設定となっています。
コメント