カテゴリリストは、アサインメントプロンプトに使用するコンポーネントです。
アサインメントプロンプトとは、AIチャットボットが質問を受けた際、回答するまでのプロセスのうちで最初に通る関門です。その働きは、病院で急患を受け付ける時と似ています。急患(質問)の様子をチェックして、どの医者・科(カテゴリプロンプト)に対応してもらうのが最適かを決める。それがアサインメントプロンプトであり、その割り振りを決めるためのチェックリストが、カテゴリリストです。
カテゴリ名と定義が並んだだけのタンタンとしたもので、データセットや振る舞いなどの他のコンポーネントに比べて一見味気ない存在ですが、私は密かにこれを「陰の実力者」と呼んでいます…😎
カテゴリリストはチェックリストですから、「カテゴリ名(name: )」と「定義(def: )」の二要素をリスト化すれば事足ります。上のサンプルはそのような作りになっています。前半(ベーシック)は、別投稿でお見せしているサンプルからの抜粋です。これでかなりの質問がカバーできるはずですが、回答の精度を上げるためには、def: に固有名詞やキーワードを追加していくのがお勧めです。
たとえば、この旅館に”リストランテ翠”(みどり)というイタリアンレストランや、紺青(こんじょう)という名前のお部屋があったとします。その場合、以下のような質問がユーザーから来るかも知れません。
・みどりはいつから?
・How large is Konjou?
「リストランテみどりは」、とか、「the Room Konjou」といったもう少し親切な質問なら、前半のベーシックなカテゴリリストであっても、AIは適切なカテゴリを類推できると思います。しかし、上記のような、いきなり「みどりは」「Konjou」と名指しした質問ですと、さすがのAIも迷いそうです (…みどりとは?新緑の時期についての質問?Konjouって、根性??)。結果的に、 質問が「その他」カテゴリに割り振られた挙句、「分かりません」と回答したり、はたまた的外れな回答を出す可能性が高くなってしまいます。そして残念なことに、AIコンシェルジュがユーザーから受け取る実際の質問には、名指しタイプがとても多いのです。
ですが、サンプル後半の「キーワード補足後」のカテゴリリストを使ったらどうでしょう?AIは、「みどり」「Konjou」をカテゴリリストから容易に見つけ出すことができるので、受け取った質問を、問題なく「施設・サービス」「客室」カテゴリに分類することができます!そして、それぞれのカテゴリプロンプトのデータセットの中に、リストランテ翠の営業時間や、客室”紺青”の間取り情報が含まれていれば、それらを参照して適切な回答を返すことができるのです。めでたしめでたしですね!
各カテゴリプロンプトのデータセットをどんなに充実させても、質問が実際にそのカテゴリプロンプトに割り振られなければ、せっかくのデータは活用されません。アサインメントプロンプトの「カテゴリリスト」は、いわばチャットボットの回答の成否を握る、超重要人物なのです。陰の実力者と呼びたくなる気持ち、分かっていただけましたでしょうか・・・?