わんくま同盟熊本勉強会#03kumamoto...
TRANSCRIPT
わんくま同盟 熊本勉強会 #03
BOT (ボット)について SIer の視点で考えてみた
2016 年 9 月 3 日
KIS 技術交流会 松本 正至
わんくま同盟 熊本勉強会 #03
自己紹介 松本 正至(まつもと まさし)
熊本にある SI 企業 KIS に勤めています。H27 年度から社内ワークグループ「 KIS 技術交流会」活動の一環として社外勉強会に参加をはじめました。
最近、プロジェクト体制上、アーキテクトからマネージャにクラスチェンジを余儀なくされたため、コードを直接触る機会がめっきり減ってきています・・・。
わんくま同盟 熊本勉強会 #03
BOT (ボット)について• 今日のテーマ「 BOT (ボット)」 【定義】(広義)
人間がコンピュータを操作して行う操作を代わりに自動的に実行するプログラムのこと。基本的にインターネット上のリソースを対象にしたものを指す。 ( だそうで )
【例】 検索ロボット(クローラ) 自動発信ボット( Twitter ボット) チャットボット( Facebook/LINE )
わんくま同盟 熊本勉強会 #03
BOT (ボット)について• 最近の盛り上がりの要因
– SNS サービスメジャーどころが API を公開– BOT のフレームワークもつぎつぎと登場– 色々な自然言語処理 AI サービスがメジャークラウドで提供される
最近国内の事例として「ヤマト運輸 LINE 公式アカウント」は SI 業界でも脚光を浴びている。
わんくま同盟 熊本勉強会 #03
BOT (ボット)について今回はBOT を「自動で主に人間相手に仕事をするもの」に絞り、SIer の視点で以下の事を考えてみました。
1.ソリューションとして「 BOT 」検討 2.「 BOT 」の導入と運用
わんくま同盟 熊本勉強会 #03
1.ソリューションとして BOT 検討• チャット BOT
チャットツールを含めてのコミュニケーション手段であることから、 BtoC (個人顧客向け)の場合はチャット自体がユーザとの手段として適切であるかの方が大事。
当たり前だが BOT 採用の判断は、チャットを使って何を解決するかという要件に依存する。注文状況照会(定型)とユーザのサポート窓口(非定型)とでは裏で動かす BOT の構築費用も運用コストも全然違う。
わんくま同盟 熊本勉強会 #03
1.ソリューションとして BOT 検討• 定型業務の場合
業務アプリケーションのユーザインタフェースをインタラクティブなチャットの選択 / 入力に置き換えで実現する方針ですすめれば良く、導入までの技術面・コスト面のハードルも比較的低い。
ボットといいつつ中身は業務アプリとの連携処理で
す・・・。
わんくま同盟 熊本勉強会 #03
1.ソリューションとして BOT 検討• 定型業務の場合の採用判断は既存システム外にある UI ( Facebookや Line など)との連携がBOT の主な仕事となる。 既存システム側の WebAPI 対応とセットで検討する。
{WebAPI}
わんくま同盟 熊本勉強会 #03
1.ソリューションとして BOT 検討• 非定型業務の場合お問い合わせ一次窓口での切り分けから、将来的にはコールセンターの置き換えなどユーザの目標が高く、当然の様に AI を絡めた提案が期待されている。 (ユーザの投資案件でなければ、だいたい費用感が合わず・・)
コールセンター用マニュアルを要求仕様とする場合、システムに落とし込む検討の前にマニュアルを正規化する作業がよほど重要であったりする。
わんくま同盟 熊本勉強会 #03
• 非定型業務の場合の採用判断はターゲット UI (外部や自社 Web 上のチャットなど)、自然言語処理 AI との連携と定型業務サービスとの連携または誘導が BOT の主な仕事となる。 学習モデルのリリース時習熟レベルに応じた初期コストも見込む必要がある。
• 最初から高レベルな BOT の導入はハードルが高い。
(「ことばの意味が分かりません」を連発しても良いわけがない・・)
Cognitive Services
1.ソリューションとして BOT 検討
わんくま同盟 熊本勉強会 #03
2 . BOT の導入と運用• どこで動かすか
クラウド上?/オンプレ?
• 学習モデルのトレーニングをどう掛けるか
操作ログから?/アンケートから?
SIer 的にはこの辺がビジネスになるのかどうか・・
わんくま同盟 熊本勉強会 #03
タイトル相当分はここで終わりです。
わんくま同盟 熊本勉強会 #03
試しに何か作ってみる• 話のネタが足りないので BOT を作ること
に– 社内の定型業務自動化的なものを– インタラクティブなものにしたい ※完全に手段が目的と化しておりますが
わんくま同盟 熊本勉強会 #03
どうせなら社内の業務改善を• と思ったのですが色々と制約があり頓挫• 自由にできるのはグループの Slack くらい ということで Microsoft Bot Framework https://dev.botframework.com/
で Slack 用の自作 bot を作ることでお茶を濁すこととします・・・。
参考にさせていただいた記事青い空の向こうへ Build2016 : Microsoft Bot Framework を使った Bot アプリ作成https://blogs.msdn.microsoft.com/bluesky/2016/04/01/build2016-microsoft-bot-framework/
わんくま同盟 熊本勉強会 #03
インターネット社内(イントラ)
現状うちの Slack はこんな感じで運用中なので
文書(商用)
チケット
ソース
ジョブ
情報ハブ
ここを監視してなにかする感じ
わんくま同盟 熊本勉強会 #03
BOT の作成( 1/5 )• BOT 作成にあたって準備したもの
– Visual Studio 2015 ( Professional を使いましたが Community でも OK )
– Bot Application テンプレート C# と Bot Framework Channel Emulator 3.0.0
( https://docs.botframework.com/en-us/csharp/builder/sdkreference/gettingstarted.html)
わんくま同盟 熊本勉強会 #03
BOT の作成( 2/5 )・「 Getting started with the Connector 」にそって ・ Azure Web アプリとして登録 ” Publishing your Bot Application to Microsoft Azure” を行ったうえで ・ Developer ポータルへ Bot を登録 “ Registering your Bot with the Microsoft Bot Framework” を行えば ポータルの Web画面から Slack連携の設定ができるようになります。
わんくま同盟 熊本勉強会 #03
BOT の作成( 3/5 )• Slack側との連携設定は「 Edit 」から表示される設定の How to を
上から順に行う事で完成します。
わんくま同盟 熊本勉強会 #03
BOT の作成( 4/5 )• テンプレートのサンプルは、入力した文字の長さを返すもので
public async Task<HttpResponseMessage> Post([FromBody]Activity activity){ if (activity.Type == ActivityTypes.Message) { ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl)); // calculate something for us to return int length = (activity.Text ?? string.Empty).Length; // return our reply to the user Activity reply = activity.CreateReply($“You sent {activity.Text} which was {length} characters"); await connector.Conversations.ReplyToActivityAsync(reply); }
MessagesController.cs
わんくま同盟 熊本勉強会 #03
BOT の作成( 5/5 )• Slack側からの JSON メッセージは activity
(Microsoft.Bot.Connector.Activity オブジェクト ) にマップされているので応答部分を少し変えてみたりActivity reply = activity.CreateReply($“You sent {activity.Text} which was {length} characters");
Activity reply = activity.CreateReply($"{activity.From.Name} sent {activity.Text} which was {length} characters");
送信元の名前 が取得できている
わんくま同盟 熊本勉強会 #03
まとめ• Bot Framework のサイト解説とサンプルが結構あるのでやる気次第
です。• バージョンアップが活発なため本気で作るときは覚悟が必要かもで
す。
やる気も覚悟もいま一つのため、ここまでにしたいと思います。ご清聴ありがとうございました。