Dialogflow:FAQのチャットボットを作りたい
intentをFAQの数だけ作る
intentグループがあれば纏められるが、、
色は赤や青で分ける必要がある? entitityは色だが単語で分ける
entitiy: colors、単語:赤、類語:Red、朱色等
単語:白、類語:ホワイト等
entitity 個別項目(色、サイズ、キーワード)トレーニングフェーズで使う用語を設定しておく
intent 意図(選択、買う、確認、支払)チャットで引きあたる項目で、数多く作ることになる
上の2つを結びつきを強くするcontext
input context 該当のインテントの変遷の一つ前の別名を指定
output context(コンテキスト用エイリアス名) 該当のインテントの別名を設定する
Training phrases(想定するユーザの入力文)
Responses(答えへの反応
料金 無料の範囲である程度賄える
項目を500から選ぶとしても大丈夫 外部のデータソースを使う(できそう)
色を10個を選択するとしても大丈夫
結果を外部に連携することもできそう
AI型は入力された質問に対して、FAQから適切な回答を表示(正誤で学習し判定上がる)
シナリオ型は入力値から分岐を判定して進む、あみだくじタイプの定型処理に持っていく
■Dialog flow ES
下記の辺りを設定すれば、チャットボットが回答するようになる
ESとしては、ユーザ入力を構造化データにする処理を行いパラメータへ検索を掛ける挙動となっている
ユーザ行動の履歴から検索ヒットの改善を学習するタイプのAI
インテント分類(ユーザの意図のパターンを設定)
┣トレーニングフレーズ(質問の例文を指定)
┣アクション (何を実行するか指定)
┣パラメータ/エンティティ(質問から抽出すると型を指定)
┗レスポンス (何を返答するか指定)
コンテキスト: input (一つ前のインテント〉 と output (当インデントの別名)
イベント:エンドユーザーの発言からではなく、発生したイベントに基づいてインテントを呼び出す
アクション: デフォルトfallbackにはinput-unknown がついている
パラメータ:下記くらいの考慮で良さそう
@sys.any キーワードを設定してしまう?
@sys.url
@sys.person ロールや役職を設定してしまう?
@sys.email
■Agent 設定
Agent > ML setting > Train でトレーニングさせる。
megaでなく普通のエージェントの方が分かり易い?
Agent > environment > publish パブリッシュし公開?
■ intent
テキストレスポンスにタグが使えずリンクにならない。
ユーザエクスプレッションの単語をドラッグ反転させ techinical_terms 等で検索するとEntityを反映することができる。
(Entity登録済みなら熟語でもOKだが、未登録なら単語で設定したような)
■Entitiy 設定
業務で使用している重要用語は @technical_termsとして作り、揺らぎを全て入力したい
BigQuery: BQ、ビッグクエリ、、、
個人情報: パーソナルインフォメーション, PII、、、
■Integration設定
WebDemoを有効化
DialogMessangerを有効化(こっちのがCoolでは
■FAQを簡単に構築するコツ
検索を網羅するように質問を重要単語を全て入れた形で複数設定する
代表的な質問をレスポンスに入れてしまうとFAQとして分かり易い
参考になりそうなの一例を回答します。
Q「ああああ」
A「いいい」
■思うような結果にならない場合のチューニング
トレーニングフレーズを追加するのが基本
できるだけキーワードをEintity化することもよい方法
Trainingに過去キーワードがあり正誤判定することができる
Validationにトレーニングフレーズの追加等の問題提起が出ているので対処