Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Spalo watson cafe_180627

6/27に行われた水曜ワトソンカフェの際、使った資料です。

  • Login to see the comments

Spalo watson cafe_180627

  1. 1. チャットボット開発における Watson Assistantの利便性と課題 Rev.01
  2. 2. 2 株式会社ビズオーシャンとは何をしてる会社? ビジネステンプレートの無料ダウンロードサイト bizocean を運営しています。 https://www.bizocean.jp
  3. 3. 3 テンプレートって? Word, Excelなどで作られたテンプレートが、30,000点あります。
  4. 4. 4 新しいサービス始めました! チャットボットと会話しながら ビジネス⽂書を作成するサービス 2017年10⽉3⽇に⽣まれました! https://spalo.jp SPALO
  5. 5. 5 SPALOを作ろうと思ったきっかけは? スマホ時代にあったビジネステンプレートの作り⽅ってどんなの? MS Office & キーボード チャットボット & マイクスマホ版Excel & キーボード ⼀般的な作り⽅ 画⾯が⼩さすぎて無理! イイ感じ!
  6. 6. 6 SPALOを使って ⼯事報告書を作るデモ デモ
  7. 7. 7 SPALOはどんな技術を使ってる? でも、最初からWatson Assistantを使っていたわけではありません。 SPALO 名前は? チャットボット (bot.py) LINE (会話チャネル) Watson Assistant (対話管理ツール) 名前は? 「名前は?」って聞かれたけど Pythonで 出来ているのだ。 会話の管理や知的な処理を お願いしてます。 Watson Assistantを使っています! SPALO 「SPALO」って返して
  8. 8. 8 初期の頃のSPALOはどんな姿をしていたの? チャットボット (bot.py) LINE 会話データ Pythonで 出来ているのだ。 会話管理ツールの存在を知らず、全ての処理をbot.pyだけでやっていた…. 2016年春頃のSPALOのすがた。
  9. 9. 9 初期の頃のBot.pyのコーディングって? イメージですが、こんな感じ usersays = LINEAPI if usersays == ʻ名前は?ʼ : botsays = ʻスパローです。ʼ elif usersays == ʻ誕⽣⽇は?ʼ : botsays = ʼ2017年10⽉3⽇です。ʼ elif usersays == ʻ勤め先は?ʼ : botsays = ʼビズオーシャンです。ʼ else: botsays = 'はぁ?ʼ return LINEAPI( botsays )
  10. 10. 10 初期の頃のコーディングのイマイチなところは? イマイチなところ l ロジックと会話が同居している。 l 会話チャネルに依存している。 l 会話コンテキスト(session)の管理を⾃前で実装してる。 l チャットボットなのにAIらしくない。
  11. 11. 11 イマイチの1:ロジックと会話が同居している ソースコードから会話シナリオを分離したい。 プログラマ 会話シナリオライター bot.pyをコーディングする 会話シナリオを考える プログラマが会話を考えることから開放される。
  12. 12. 12 イマイチの2:会話チャネルに依存している 会話チャネルから独⽴したコーディングにしたい。 いろんな会話チャネルに対応できる。 チャットボット (bot.py) slack LINE Messenger
  13. 13. 13 イマイチの3:会話コンテキストの管理を⾃前で実装している 会話コンテキスト(session)の管理を分離したい。 ⽬的に応じて会話管理ツールを選択できる。 チャットボット (bot.py) 会話管理ツール1 会話管理ツール2 会話管理ツール3
  14. 14. 14 イマイチの4:チャットボットなのにAIらしくない 会話からのパターン認識を知的に処理したい。 お休みするのはいつからいつまでですか? 2018-04-01〜2018-01-02のように⼊⼒してください。 2018-06-27から2018-06-28 休暇届作成ボットとの会話 休暇期間に「2018-06-27〜2018-06-28」と⼊⼒しました。 お休みするのはいつからいつまでですか? 今⽇から明⽇までです。 休暇期間に「2018-06-27〜2018-06-28」と⼊⼒しました。 こうではなく こうなったら AIらしい
  15. 15. 15 まとめると… こんな感じで作りたい controller context (会話セッション) view (会話シナリオ) u:名前は? b:スパローです。 u:誕⽣⽇は? b:2017年10⽉3⽇です。 u:勤先は? b:ビズオーシャンです。 { name birth company } botsays = view( usersays ) return botsays SPALO 名前は? 会話チャネル できればSDKが欲しい フレームワークが 欲しい WEBGUIが欲しい WEBAPIが欲しい
  16. 16. 16 2016年の夏〜秋頃に⾒かけたチャットボット開発フレームワーク フレームワーク 会話シナリオの作成 RESTAPI 使いやすいか? wit.ai Webのビューがある あり 意味不明 repl.ai Webのビューがある なかったと思う (今はある) わかりやすい api.ai Webのビューがある あり わかりやすい もちろん、他にも、 無料か? 定義済の⾔語モデルがあるか? なんてことも⼤切…
  17. 17. 17 DialogFlowってどんなことができる? https://dialogflow.com 問題点 Dialogflow 会話シナリオの管理 ソースコードから会話シナリオを分離したい ○ 会話チャネルとの統合 会話チャネルから独⽴したコーディングにしたい ○ 会話コンテキストの管理 会話コンテキスト(session)の管理を分離したい ○ チャットボットなのにAIらしくない 会話からのパターン認識を知的に処理したい ○ 会話フローの管理 会話シナリオの流れを定義したい X 新たな問題
  18. 18. 18 Dialogflowが得意な会話 ピザの注⽂のような会話は作りやすい ご注⽂をお伺いします! l 種類(マルゲリータとか) l サイズ(S | M | L) l 数量 l ⾷べる場所(店内 | 持ち帰り) l ⽀払⽅法(現⾦ | カード) パラメータ同⼠が同じレベル(並列な関係)にあるようなパターンは、作りやすい。 会話例 b:ご注⽂をお伺いします! u:マルゲリータのMサイズを3枚ください。 b:⾷べる場所は? // ⾜りないパラメータを聞く u:店内 b:⽀払い⽅法は? // ⾜りないパラメータを聞く u:カードで b:3180円になります!
  19. 19. 19 Dialogflowが苦⼿な会話 処理の分岐があるような会話は作りにくい 職業は? l 学⽣ l 社会⼈ l 主婦 l その他 会話例1 b:職業は? // 画⾯には4つのセレクトボタンを表⽰ u:学⽣ b:学⽣ですね?了解しました。 b:職業は? // 画⾯には4のセレクトボタンを表⽰ u:その他 b:その他ですね? 具体的に教えてください。 u:フリーターです。 b:フリーターですね? 了解しました。 会話例2 あるパラメータについて、話題を広げる(掘り下げていく)ようなパターンは作りにくい。
  20. 20. 20 会話によって完成させたい帳票ってどんなやつだっけ? こんな帳票をDialogflowで作るのは⼤変…
  21. 21. 21 Watson Assistant(Watson Conversaion)との出会い https://www.ibm.com/watson/ai-assistant/ 会話コンテキストの管理はDialogflowのほうが簡単だが、会話フローの管理が素晴らしい! 問題点 Watson Assistant 会話シナリオの管理 ソースコードから会話シナリオを分離したい ○ 会話チャネルとの統合 会話チャネルから独⽴したコーディングにしたい X (2017年春頃) 会話コンテキストの管理 会話コンテキスト(session)の管理を分離したい △ チャットボットなのにAIらしくない 会話からのパターン認識を知的に処理したい ○ 会話フローの管理 会話シナリオの流れを定義したい ○
  22. 22. 22 会話フローの管理とは? 会話の流れをGUIで直感的に作れる! https://www.ibm.com/developerworks/community/wikis/home?lang=ja#!/wiki/こみねの技術メモ/page/Conversation%20サービスでの会話フロー作成実習
  23. 23. 23 AIらしさはどう解決したか? @sys-date エンティティを使った会話 b:打ち合わせはいつですか? u:今⽇です。 b:打ち合わせ⽇欄に「2018年6⽉27⽇」と⼊⼒しました。 b:打ち合わせはいつですか? u:昨⽇でした。 b:打ち合わせ⽇欄に「2018年6⽉26⽇」と⼊⼒しました。 漢字と数字が⼊り混じっている情報をスマホのキーボードで⼊れるのは、⾯倒。 数字キーボードと、⽂字キーボードを切り替える必要があるから。 この点、こんな楽に⼊⼒できてしまう。しかも⾳声で!
  24. 24. 24 AIらしさはどう解決したか? @sys-time エンティティを使った会話 b:打ち合わせの開始時間は? u:今 b:開始時間欄に「20時30分」と⼊⼒しました。 b:打ち合わせの終了時間は? u:⼀時間後 b:終了時間欄に「21時30分」と⼊⼒しました。 漢字と数字が⼊り混じっている情報をスマホのキーボードで⼊れるのは、⾯倒。 数字キーボードと、⽂字キーボードを切り替える必要があるから。 この点、こんな楽に⼊⼒できてしまう。しかも⾳声で!
  25. 25. 25 AIらしさはどう解決したか? それ以外のシステムエンティティ(Watsonの場合) 種類 エンティティ 日本語対応 数値 @sys-number ○ 通貨 @sys-currency ○ パーセント @sys-percent ○ 場所 @sys-location X ⼈名 @sys-person X
  26. 26. 26 まとめ:DialogflowとWatson Assistantの⽐較 項⽬ Dialogflow Watson Assistant 会話シナリオの管理 ○ ○ 会話コンテキスト(会話セッション)の管理 ○ △ 会話シナリオへのディプロイ ○ 最近対応 定義済の⾔語モデル ○ ○ 会話フローの管理 X ○ 会話からの外部APIの呼び出し ○ 最近対応 処理スピードに遅さを感じるか? 感じない 感じる (東京リージョンは来年らしい) ユーザーのスキルレベルは? ビギナー向け(解説が少) とっつきにくい(解説はある程度) 話題のGoogle Homeとの連携は? 連携しやすい 少し⼤変そう サービスのバージョンアップの頻度は? 少ない 頻繁に変わる 向いている処理 ピザの注⽂、天気予報とか どんな会話もOK
  27. 27. 27 最後:Watson Assistantは素晴らしい! プログラミングの常識を変えるツール #よくあるif⽂ $name = $usersays; if ( $name == ʻスパロʼ ) { $botsays = ʻ当たり!ʼ } elsif ( $name == ʻすぱろーʼ ) { $botsays = ʻ当たり!ʼ } elsif ( $name == ʻSPALOʼ ) { $botsays = ʻ当たり!ʼ } else { $botsays = ʻハズレ!ʼ } #Watson Assistantでやっていることのイメージ if ( @spalo == $usersays ) { $botsays = ʻ当たり!ʼ } else { $botsays = ʻハズレ!ʼ } @spalo // 「スパロっぽい」の意味 if (@spalo) // すぱろっぽかったらという感じ #spalo if (#spalo) 少ない⾏数で、あいまいな(精度の⾼い)プログラミングが可能!
  28. 28. 28 最後 https://www.ibm.com/watson/ai-assistant/ ぜひ使ってみてください
  29. 29. 29 本⽇のスライドのダウンロード先 スライドシェアに公開します。 https://www.slideshare.net/sukodai/ 6/27に公開する予定です。
  30. 30. 30 おわりに ご静聴ありがとうございました。

×