Watson Assistantを使ったLINE bot(Watson Assistant編)
by
KMiura
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Watson Assistantを使ったLINE bot(Watson Assistant編) 三浦 耕生
Slide 2
Slide 2 text
自己紹介 • 三浦 耕生(みうら こうき) • 大学院生、Code for AICHI所属 • Twitter:@k_miura_io • Facebook:koki.miura05
Slide 3
Slide 3 text
本題に入る前に… • 以下のURLからIBM Cloud にアクセス、ログインし てください https://ibm.biz/BdzqZd • 右のQRからもアクセスで きます
Slide 4
Slide 4 text
今回作るもの • Watson Assistantを使ったLINE bot • Code base NAGOYAの利用予約システム を想定 • ノンコーディング(ココ重要)
Slide 5
Slide 5 text
使う技術 • Watson Assistant • Node-RED • Messaging API IBM Cloudですべて完結する!
Slide 6
Slide 6 text
Watson Assistant • 自然言語で対話することが出来るアプリケーションを作成する ことが可能 • ユーザーからの自然言語の入力を理解し、適切な返答を行う • 直感的な操作で対話の流れを組むことが出来る リッチなチャットボットを作成できる
Slide 7
Slide 7 text
出来ること • 問い合わせや手続きをチャットボットが代行できる • 入力された対話内容、キーワードをデータを蓄積することで、 顧客情報の管理が簡単(別途DB、サーバー側の処理が必要) • 音声インターフェースを組み合わせればロボットやスマートス ピーカーを使った対話システムを組み込むことも可能
Slide 8
Slide 8 text
Watson Assistantを使ってみる • カタログを選択し、検索窓から「Watson assistant」と入力 • Basicでは無い方のAssistantを選択(BasicはAssistantを使ったス ターターアプリケーションも作成される)
Slide 9
Slide 9 text
インスタンスの作成 • ライトプランを選択すれば無料でAssistantを使用可能 • 一度ライトプランでインスタンスを作成した場合は一つしか作 れないので、すでに作成されたインスタンスを使用する • 「Watson Assistantの起動」を選択
Slide 10
Slide 10 text
Skillを作成 • スタート画面の下にある「Create a Skill」を選択 • 「skills」タブを開いたら「Create Skill」を選択
Slide 11
Slide 11 text
Create Dialog Skill • Name:お好きなスキル名 • Description:スキルの説明を記入(なくてもよい) • Language:「Japanese」を選択(日本語の自然言語処理をして くれる)
Slide 12
Slide 12 text
Intents • 意図、思考のような意味 • ユーザーの要求を判断するための機能 • 自分で自由に定義することもできればデフォルトで用意された インテントを入れることも出来る
Slide 13
Slide 13 text
インテントの作成 • 今回は予約をしたいこと をボットに伝えるための インテントを作成する • 「Create intent」をクリッ クし、#のついた項目に はインテント名を設定し、 「Add user example」に予 約したい時に言う文をい ろんなパターンで入力す る • 5パターンあるとよい
Slide 14
Slide 14 text
Content Catalog • ボットでよく使われるやり取りはデフォルトのインテントとし て登録されている • この中から「ボット管理」と「一般」をインテントとして追加 する
Slide 15
Slide 15 text
Entities • 「Eintiy」タブをクリック し、「Create entity」をク リック • 目的語に当たる単語を登 録する • 今回は利用目的を判断す るためのentityを追加する • Entity valueには大枠の Entityを書き、Synonymsに はEntity valueに関連した 単語を追加する
Slide 16
Slide 16 text
System Entities • これもボットでよく使われるEntityが用意されている • 今回は@sys-dateと@sys-timeを有効にする
Slide 17
Slide 17 text
フローの作成 • ユーザーから貸し切りの予約が来たときの対応フローを作成し ていく • Dialogタブをクリック • 「Add node」を追加してノードの名前を設定する • 「If assistant recognizes」にはユーザーから来た発言の中に特定 のIntentかEntityが含まれていたかどうかの判定を行う • 「If assistant recognizes」の条件と一致したら、フローをじっこ うする流れになる
Slide 18
Slide 18 text
Dialogの作成 • IntentとEntityの設定が終 わったところで対話のフ ローを作成していく • 「Add node」から対話の はじめの部分を作成する • スタートは先程作成した 予約のIntentが来たとき
Slide 19
Slide 19 text
利用目的を聞き出す • 作成したNodeの右側にあ る3点をクリックし「Add child node」をクリックし、 新しいノードを作成する • 利用目的を聞き出してボッ トに出力するようにする • 利用目的のEntityをContext として保持すれば良い • 「Context editor」を開いて contextを定義する • 保持したContextは対話が 終わるまでずっと保持し続 ける
Slide 20
Slide 20 text
利用目的を確認する • 先程定義したcontextをボット で出力したい • 返答文の中に「$contex名」と いう形で記入することで引用 することが出来る(図の $purposeがcontextに当たる) • ちなみにEntityを出力したい ときは「@entity名」と定義す れば良い • 文章と引用の境が分かるよう に変数と文章の間には半角ス ペースで開けるようにする
Slide 21
Slide 21 text
ここまででテストしてみ る • 右上に「Try it」があるのでクリックす ると、動作確認が出来る • 返答の際には合わせて何のEntityや Intentを認識したのかを表示してくれる
Slide 22
Slide 22 text
自習 • 残りの日付、時間も同様に確認を行い最後に「○月○日の○時 からの予約でよろしいでしょうか?」という形の質問でユー ザーに確認をとるフローを作成してください • 余裕がある方はその質問に対して合っているか間違っているか の返答が来た時に合っていたら改めて利用目的、利用日時を復 唱して予約が確定したことを伝える文を作成しましょう
Slide 23
Slide 23 text
ヒント • 時間、日付はSystem entitiesからデータを取り出す • (余裕のある方)日時の確認をした時にOKかどうかを答えたと きの判定するためのIntentには 「#Bot_Control_Approve_Response」を使う
Slide 24
Slide 24 text
休憩