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.

Bot framework + luisを使った社内chat bot作ってみた

68 views

Published on

けーすた!#1 株式会社パソナテック 西本昇による発表です
https://casestudy.connpass.com/event/55038/

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Bot framework + luisを使った社内chat bot作ってみた

  1. 1. Bot Framework + LUIS を使った社内Chat bot作ってみた 株式会社パソナテックシステムズ 西本 昇
  2. 2. 自己紹介 略歴 ・Botアプリケーション プロデューサー ディレクター プロジェクトマネージャ 開発 インフラ設計 DB設計 その他全て ※つまり、殆ど私一人で企画から調達、設計、開発至るまでしております。
  3. 3. bot開発のきっかけ 弊社がAIを活用して業務効率化を 模索しているのがきっかけの一つです。 そこに、後輩と一緒に「Jubatus」のハッカソンで開発した ものでたまたま優勝する事ができたのが、 役員の耳に入り突然呼び出されて「ヘルプデスク向けBot作って」 といわれたのが始まります。 ※優勝できたのは他メンバーが優秀だっただけです。 私は何もしてません(笑) にゃ!
  4. 4. 以前作ったもの(LINE bot) お悩み相談すると和歌を詠んで解決方法を提案 してくれるというものでした。 データにラベル付けしMeCabで形態素解析を実 施した上で自然言語処理を実施。 その中で、最も近い和歌を詠むというものです。 一寸メンドクサイです。
  5. 5. Bot Framework+LUISのきっかけ 当初Lineでという話で進んでいましたが 弊社では社内コミュニケーションツールに マイクロソフトさんのSkype For Businessを 使用しています。 これに対応する為に、Bot Frameworkを選択 しました。 又、LUISが簡単だったのも飛びついた一つです。
  6. 6. BotFrameworkとは 名前通り、Botのフレームワークです。 Bot Connecterという仕組みで簡単に様々なチャネルに対応できま す。 言語は、C#、JavaScript(Node.js)に対応です。 対応したいChannelを 選択して設定情報を Webページでいれる だけであら不思議! 対応可能です。
  7. 7. LUISとは マイクロソフトさんのCognitive Servicesの機能の一部で す。 Language Understanding Intelligent Service の略で、言葉通り自然言語を理解してくれ その意図(Intent)と要素(Entity)をBotプログラム に返してくれます。 超簡単で初めて見た時は目に鱗でした。
  8. 8. LUISはこんな感じで学習させます LUISが解析したスコア。 詳しく説明すると時間 がないので割愛します。 Intent(意図) Entity(要素)
  9. 9. C#の例 Intentをここにセット この中身にLUISの応答内容が入ってま す。Entityも入ってるよ。
  10. 10. 構成 Web ブ ラ ウ ザ pBot(Azure) WebApp LUIS Azure SQL Server 自 然 言 語 処 理 (Login 問 題 ) メ ニ ュ ー 処 理 ( 定 型 処 理 ) 自然言語処理とは別に、 SharePoint上で運用している一般的 なFAQをメニュー化してBotに搭載。 又、LUISで自然言語解析し意図を 抽出、それに対してのアクションを SQL Serverのテーブルに定義している 会話応対情報を元に応対する。 会 話 処 理 (Conversation)
  11. 11. 作ってみたけど・・・ Skypeにサインインできなくなった (you) それはお困りのようですね。 (bot) パスワードを忘れてしまいましたか? (bot) あじけない!Bot面白くない!!! 何かスパイスがないと・・・
  12. 12. 台詞に味をつける Botで大切なのは、キャラ作りだ!(たぶん) つまり、ぐっとくるフレーバーテキストが ないとダメなんだなと思いテキストを 変えてみた。
  13. 13. わんわんわん… Skypeにサインインできなくなった (you) それは困ったわん。 (wanwanbot) パスワードを忘れたわん? (wanwanbot) 一寸面白くなってきた! が、なんか違う・・・
  14. 14. 絵が足りなかった そうか、テキストだけだと面白くないな。 そうだ、絵をいれてみよう! どうせならば、プロに依頼したいなと。
  15. 15. しばにゃんだわん! Skypeにサインインできなくなった (you) おっ、なんか一寸ぐっとくるな! いいんだが、フリー素材か… それは困ったわん。 (wanwanbot) パスワードを忘れたわん? (wanwanbot)
  16. 16. どうせならオリジナルが欲しい 違う!犬は会社にいない! 可愛い新人の女の子がいい! いや、しっとり先輩キャラも捨てがたいな…。 いやいや、松岡修造さんのような熱く応援し てくれるキャラがいいな! Botがキャラ一つって誰が決めた!複数いても いいじゃないか! ・・・そうだ、欲しいキャラ全部ぶち込ん じまえ!
  17. 17. そうしてできたのがこれ 新人(桜 亜衣) 先輩(鈴木 瑠衣) 端折ってますが上の人達を説得する のに二か月かかってます(笑)
  18. 18. JobHubを使用してイラスト調達 イラストレータが社内にいないので知り合いの イラストレータに声をかけてSOHOの形でやって もらいました。 手前みその話で申し訳ないですが、弊社サービ スのJobHubというのがあってそこ経由で仕事を 依頼してます。
  19. 19. そんな中… てくのたんに、声をあてたよという話を耳に。 「・・・なん・・・だと・・・」 ・・・そうだ、こっちも負けてたまるか! 社内Botも偶には喋ったっていいじゃねえか! 何度もいいますが上の人達を説得す るのに二か月かかってます(笑)
  20. 20. 金額はピンキリ… しかし初めての事だったので金額感が分からない。 仕方ないので知り合いから、音響会社を紹介してもらう。 自分「一番いい人紹介してよ!おいくらかな?」 音響さん「まず設定資料と台本みせて下さい」 自分「・・・台本・・・だと・・・」 まず声優さんに頼む場合は資料と台本を用意しましょう。 受けてくれるかどうか、それで決まるそうです。 浮かれてて書いてなかったので慌てて書きました。
  21. 21. この中から選ぶの…? ようやく書いて、提出しました。そうすると候補者の数にびっくり。 数十人のリストとサンプルの声が送られてきて、 音響さん「候補者3名程度あげてください」 自分「・・・え!?」 もう数が多すぎて最初の人の声が頭に残ってません。 会社でひたすらヘッドフォンつけてずっと聞いてました。 名前で言われるより、声きくと「ああ、あの人か」 みたいな感じです。
  22. 22. レコーディング なんとか頼み込んで、きまりました。でも有名な方だとスケジュール抑える のが大変ですので、余裕を持たせてレコーディングした方がよいです。 実際にレコーディングしている様子。 ディレクター席に座って、台本に釘付けです。 音響さんに任せてればいいかなと思ってましたが、 意外とそうでもなく 私がOK、NGださないと進まないので素人な私がプロに 対して指示するというのは中々難しいです。 この歳で初めての経験でした。 別件である映像会社の社長さんに「エンジニアはロジッ クで考えるけど、役者なんかはパッションなんだ!もっ ときていいんだよ」と言われて「なるほど」と思いまし た。
  23. 23. 喋るBotのできあがり そこでできたのが「喋るBot」です。音声合成は味気ないですからね。 人間の声が一番感情移入します。 コミュニケーションにおいて相手に与える影響について、 話す内容(言語情報)が7%、声のトーンや話の早さ(聴覚情報)が38%、 顔の表情や仕草(視覚情報)が55%の割合で伝わる メラビアンの法則 つまり、字面だけだと7%しかなく面白くなかったのはこういう事!
  24. 24. ここから本題 前振りが長かったですが、ここから本題です。 仕組みについて幾つか説明します。
  25. 25. アプリケーション仕組み① pBot(Azure) WebApp BotFramework ManageMicrosoft AppID&Password ①AppID/Pass KEY ③OK, Go! ④Invoke Azure pBot ②AppID/Pass Authentication ⑤onDraw pBot Application
  26. 26. アプリケーション仕組み②(Office365認証) pBot Authentication Office 3 6 5 ⑥Get Token Key ⑦Invoke Function (+Token Key) 3 6 5 Azure ActiveDirectory pBot ①Authentication ②Invoke ③Check ④Reply ⑤Callback Reply ⑧Reply ⑨Response
  27. 27. メニュー処理 定形のFAQサイト方式をメ ニュー方式で実装し、簡単 に呼び出しが できるようにしてます。 全てデータベースの テーブルで定義し、 その内容を表示します。
  28. 28. 自然言語処理 LUIS Intent (Greeting)ブ ラ ウ ザ pBot こんにちは こんにちは Azure SQL Server イメージ情報 音声情報 絵、音、 会話表示
  29. 29. マクロ言語 { TYPE::BUTTON ACTION::OPENURL NAME::説明 VAL::http://localhost:3979/img/common/CapsLockKey.png } { TYPE::BUTTON ACTION::POSTBACK NAME::はい VAL::はい }{ TYPE::BUTTON ACTION::POSTBACK NAME::いいえ VAL::いいえ } { TYPE::BUTTON ACTION::POSTBACK NAME::終了 VAL::終了 } 本システムは、マクロで追加ボタンを定義できるようにマクロ言語を実装してます。 マクロ処理は、複数定義でき{}で囲まれた単位でボタンとします。 機能はBot Frameworkで実装している機能を利用できます。 使い方は、単純で上記のように記述するだけでボタンが表示されるようにフレームワーク化してます。
  30. 30. ログイン問題処理 ログイン問題処理は定例メッセージとは別に 質問専用のテーブルが存在します。 はい、いいえの単純なボタン処理で解答でき るように利便性を追求してます。 又、定義されている通りに解答するように実 装してます。 ロ グ イ ン 問 題 処 理 は い い い え 質 問 文 は い い い え 質 問 文 And more… 質問文はNノードぶら下げる事が可能ですが、 三回程度で解答にいけるようにした方が ユーザビリティが良いので簡素に纏めます。
  31. 31. 実例 テーブルに定義されたConversation Tree のフローに入り、それに沿った回答を します。 Bot FrameworkのDialog機能を使用して処理してるよ!
  32. 32. サービスデスク連携 ロ グ イ ン 問 題 処 理 LUIS SQL Server Express インシデント チケット発行 オペレータ 直接 連絡 解答パターンで解決 できないものは 質問者
  33. 33. サービスデスク連携・実例 ヘルプデスクダイアログに遷移し 共通対応フローに移動
  34. 34. キャラクタ変更 pBot バーチャルアシスタントは、好みによって変更する事ができます。 変更は簡単にボタンで行うことができます。 キャラクタは最大で999人入れる事ができるよ!
  35. 35. Bot Frameworkで苦労した点 ・開発途中で画面が大幅に変わる →β版だから仕方ないのかもしれませんが、大幅に変わった時は 焦りました。 ・Internet Explorer 11で謎の動きをする →前回入力した入力文字列が何故か飛んでくるお陰で動きが 滅茶苦茶になる。 ・AudioCardでIE11でWAVファイルが再生できない。 →Mp3に変更する事により解決。 ・ChromeでAudioCardを使用すると勝手にダウンロード ボタンが表示される。 →他のブラウザだと表示されない。

×