SSブログ
お知らせ

 当ブログは、ブログに割当てられたディスク容量が満杯になったため、2017年1月8日に、続ブログへ移転しました。

 【移転先】
  続・Emi Clockは、どうなったの?
  https://yuna-k.blog.ss-blog.jp/


  RSSフィード
  https://yuna-k.blog.ss-blog.jp/index.xml

※ 60秒後に自動的に続ブログへ移動します。

Microsot Bot Framework 3.0で 簡単にbotが作れる! [チャットbot]

2016年9月2日(金曜)
※ 2016.09.13 MS Bot Framework システム図を追加

きょうの横浜は、[晴れ]晴れて、日中は26℃になり、暑さもやわらぎました。

― ― ― ― ― ― ― ― ― ―
[MS Bot Framework とは]
Lineや、Slackのような、スマホなどのモバイルデバイスから利用できるチャットを思い浮かべてください。
チャットの相手は人間ですが、AI botだったら、AppleのSiriや、MicrosoftのCotanaのように、べんりなアシスタントにできるかもしれません。
こういった botを、簡単に開発し、使えるようにするには、従来はスクラッチ開発であったものが、2016年4月に、Microsoftがbeta版を公開した、Microsoft Bot Framework 3.0 を利用することにより、簡単に開発することが可能になりました。
Microsot Bot Framework 3.0で 簡単にbotが作れる!
MS Bot Frameworkが何であるかは、詳しいblog記事を書かれている方が多くいらっしゃいますので重複する内容は割愛しますが、齟齬があるといけませんので、Microsoftの公式ドキュメントをリファレンスにしてください。(ただし、英語です)
 ↓
https://docs.botframework.com/en-us/

― ― ― ― ― ― ― ― ― ―
[きょうのblogのゴールと前提条件]
Microsot Bot Frameworkを使って、Visual Studio 2015上に、bot開発環境を構築し、新規にbotを作成して、そのbotの動作をテストするところまでを、きょうのゴールとします。
最短でゴールをめざすこととし、目標時間は、 2時間以内とします。
開発用に使うPCは、Windows 10(Core i7、16GB)です。

前提条件として、Visual Studio 2015がインストールされており、C#での開発が可能な環境とスキルがあることとします。
ちなみに、自分は、Visual Studio Community 2015(無償)を使用しています。

― ― ― ― ― ― ― ― ― ―
[Bot Builder SDKと Bot Application template]
Microsoft Bot Frameworkには、SkypeやSlackなどのチャットと接続するための Connectorと呼ばれているコンポーネントは便利ではあるが、いきなりインターネットごしに試すには、認証など、若干敷居が高いのと、未完成のbotを公開することになるのは好ましくありません。
このため、Bot Builder SDK、Bot Application template、Bot Framework Emulator を使ってbot開発をスモールスタートすることにします。

本来ならば、以下のGitHubで公開されいるBot Builder SDKをダウンロードしてきて、Visual Studio 2015にインストールしておいて、コマンドラインでのチャットでサンプルの動作確認をすておきたいが、自分がやってみたところ、きょうのゴールでは無くても動くので、きょうのところは割愛させていただきます。
  ↓ (きょうのゴールではまだ不要)
https://github.com/Microsoft/BotBuilder

Visual Studio 2015上で 新しい bot開発を始めるには、Bot Application templateが必要です。
・・・URLをここに貼ろうとしたら、いきなりダウンロードが始まるため、冒頭に記述した公式ドキュメントからひURLを拾ってください。

Bot Application templateは、ZIPファイルなので展開すると、、Bot Applicationフォルダができます。
これを、
"%USERPROFILE%\Documents\Visual Studio 2015\Templates\ProjectTemplates\Visual C#\"
へ、コピーします。
%USERPROFILE% の部分は、Windowsへログインしているアカウント(Administratorなど)に置き換えてください。

― ― ― ― ― ― ― ― ― ―
[新しい botプロジェクトを作成]
Visual Studio 2015を起動し、「ファイル」 - 「新規作成」 - 「プロジェクト」で、「新しいプロジェクトダイアログボックスを表示すると、「Bot Application」というテンプレートが追加されていますので、これをクリックして選択します。
Microsot Bot Framework 3.0で 簡単にbotが作れる!
しばらくすると、Visual Studio 2015上に、C#で新規にbotを開発するためのプロジェクトが作成されます。
Microsot Bot Framework 3.0で 簡単にbotが作れる!
blogだと、文字が細かくて見づらいですが、チャット応答するソースコードは、「MessageController.cs」ですので、少し拡大しますと、チャットで入力された文字列の文字数を数えて、応答するコードになっています。
Microsot Bot Framework 3.0で 簡単にbotが作れる!
※文字が小さくて申し訳ないですが、雰囲気を紹介する記事なのでご容赦ください
いきなり、高機能をもつbotを作るのではなく、まずは、Hello Worldからです。

― ― ― ― ― ― ― ― ― ―
[Bot Framework Emulator]
できあがった botの動作を確認するためには、Azureで提供されているBot Framework Developer Portalへ登録すれば、Skype, Slack, Facebook Messenger, Kik, Office 365メールなどと連携できるのですが、Hello Worldレベルですので、以下で公開されている「Bot Framework Emulator」でテストします。
  ↓
https://download.botframework.com/bf-v3/tools/emulator/publish.htm

― ― ― ― ― ― ― ― ― ―
[botを動かしてみる]
まず、Bot Framework Emulatorを起動します。(これが、Skypeや Slackの代わりと考えてください)
次に、Visual Studio 2015から、デバッグモードで、botアプリケーションを起動します。
すると、Webブラウザが起動し、以下のような画面が表示されますが、ここで、この botの 「bot URL」が分かります。
Microsot Bot Framework 3.0で 簡単にbotが作れる!
※ポート番号が、Bot Framework Emulatorのデフォルトと異なるので注意

とりあえず、Bot Framework Emulatorから、「Hello Kuroneko」と、送ってみます。
Microsot Bot Framework 3.0で 簡単にbotが作れる!
すると、botが、おくられてきたメッセージを解析し、文字数を応答文にして返します。
さらに続けて、「I am Naoko」と入力すると、同様に文字数を応答文にして返します。
Microsot Bot Framework 3.0で 簡単にbotが作れる!
※応答のJSONはわざと見キレさせています
※Exceptionがスローされる場合は、「bot URL」が、さきほど表示されたWeb画面と同じか比較してみてください。(特にポート番号)

テンプレートで自動生成されるコードは、英語表記ですが、Bot Frameworkは国際化対応されていますので、ソースコードを書き換えて実行すると、日本語が通ります。
Microsot Bot Framework 3.0で 簡単にbotが作れる!
Twitterの botみたいなものに近いですが、ちゃんとした AIを実装することもできます。

とりあえず、きょうのゴールは、ここまでです。
朝の 出勤前の 1時間半で達成です。
いい勉強になりました。

つまらないかもしれませんが、Bot Builder SDKをインストールすれば、botのロジックから、外部サイトのWeb APIへRESTでアクセスして、情報を調べて、チャットの会話で応答する、とか、LUISもどきのAI「的」な応答などが、簡単に作れます。

良いものができたら、Azureで運用されているBot Frameworkサイトへ配置して、スマホやタブレットの各種チャットアプリから利用できます。

※本日は、都合により、コメント欄を閉じさせていただいております。
nice!(112) 
共通テーマ:趣味・カルチャー

nice! 112

Facebook コメント

caution.gif当ブログ記事は、日本国著作権法および国際法により権利が保護されています。無断で 画面の写真、ハードコピー、その他の二次複製物を無断で使用することは権利の 侵害になりますのでご注意下さい。
This blog post, right has been protected by copyright law and international law. Without permission screen photo of, hard copy, that you use the other secondary copies without permission is a violation of the rights Please note.
- - - - -
All rights reserved. Copyright (C) Motosoft(Toshi At Kuroneko) 2007-2022.

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。