未分類

一問一答 Bot の開発 (Getting Started)

こんにちは!SecretaryBot を開発している A’ です!
今回は、Bot Framework を使って、一問一答してくれるシンプルなBot を作ってみましょう。
(Bot Framework の Overview を知りたい人は、この記事を参照してください。)
こちらの公式ページでも解説されていますが、この記事でも説明してみます。

“一問一答 Bot の開発 (Getting Started)” の続きを読む

未分類

Bot Framework 概要と好きなところ

こんにちは、SecretaryBot開発チームのマサです。今回は僕らが普段使っている Bot Framework の概要と好きなところを紹介します!

Bot Framework とは

Bot Framework は Microsoft が提供している Bot 開発用のフレームワークです。

Microsoftのgithub では以下のような画像で説明されてますが、最初見たときはよくわかりませんでした。なぜかというと、普段使っているフレームワークが「Webアプリ開発のためにMVCを分けてコードを書く」みたいな感じだったので、「フレームワーク = なんらかのルールに従ってコード書く枠組み」という先入観があったからです。一方で、Bot Framework の場合には SDK もあるし、Portalもあるし、Connector もあるし、Directoryもある。。うむむ

そのため、このブログでは自分なりの解釈で説明しますね。

Bot Framework とは開発者がBotを開発しユーザーに届けていくまでをサポートするフレームワークです。そのため、Bot Framework は主に以下の要素から出来上がっています 。それぞれ書き始めるときりがないので、ここでは概要を説明して、詳細はそれぞれの記事で開設予定していきます。

  • Bot Connector : Bot を Slack, Skype などの色々なチャネルに接続してくれます。これが便利な理由は主に3 つ 。
    1. 各チャネルに接続する手間が非常に少ない
    2. 各チャネルの仕様に合わせて適切にデータを変換してくれる
    3. 「誰がどのBotに話しかけているか」という状態を渡してくれる
  • Bot Builder SDK : これを使ってWebアプリとしてのBotを開発します。対応言語は node.js と C# です!SDK を使うと以下のようなことができます (正確には API をラッピングしているので SDK 使わなくてもできます)。
    • Connector の渡してきた「誰がどのBotに話しかけているか」などの情報を操作する
    • いまどんな話題について話しているかという状態を管理する
    • 画像やボタンなどを表示する
  • State Service : ユーザーの状態を管理します。Bot Framework を使うときにはこれを使って状態管理しています。
  • Developer Portal : 自分のボットを登録して、チャネルに接続するための設定をするためのページです。接続テストもできて便利です。ここから Bot DirectoryにBotを発行できます。
  • Bot Directory : Bot の App Store みたいなものです。開発者がBot を登録し、ユーザーがいろんなBotを探せます。

ちなみに、各コンポーネントの関係や、開発者とMicrosoftの役割分担を図にすると下記のとおりです。これを覚えておくと理解がだいぶ楽になります。

Bot Framework の好きなところ

上のセクションの部分と多少かぶるところもあるのですが、好きなところも共有します。

  • マルチチャネル展開がすごい楽。Bot は基本的にSlack, Skype などのチャットアプリ内で活躍します。このチャットアプリのことをチャネルと呼んでいて、各チャネルごとにボットを開発するための仕様を公開しています。でも、それぞれに対応するのだるいです。B2Bなら Slack や Microsoft Teams で、B2CならSkypeやWebみたいに使い分けたいのですが、そのたびに仕様学ぶのが面倒です。その面倒な部分を吸収してくれる方向性は好きです。
  • 状態管理がうれしい。Botのインタフェースは対話を前提としているので、「この人となんの話してたっけ?」という状態管理が重要です。もし自分で実装するとしたら、何らかのキャッシュサービスみたいなのを作らないとですが、Bot Frameworkはそれも用意してくれているので助かります。

なんだ2つか?と思うかもですが、結構これ大きいです。ちなみに、Web アプリとして開発できるので、更新も楽だし、Web開発のテクニックをそのまま使えるのもいいところです(ただ、それってWeb開発のメリットの話なので割愛しています)。

次回以降は、実際に開発するための方法を解説しますのでお楽しみに!ちなみに、僕らのチームではC#で開発しているので、このブログもC#に関するものになります。node.jsでもよかったのですが、僕たちの中ではVisual StudioとC#の組み合わせが一番生産性高いと感じているのと、C#ってUnityとかXamarinもできるので、将来性も考えてC#で開発することにしました。

未分類

チームブログをはじめました

こんにちは!SecretaryBot 開発チームのマサです。このブログでは、SecretaryBot 開発を通して学んだBot開発ノウハウを紹介していきます。Bot開発を始めたい人は是非参考にしてください!

はじめに、Bot開発をしたことがない人向けにBotのイメージを共有します。僕らの開発した SecretaryBotの動画をご覧ください。

いかがでしょうか?少しBot開発のイメージがついてくれたら嬉しいです。ちなみに、僕らがBotを開発していてよかったなと思うのは以下の点です。

  • マルチプラットフォーム対応が楽。例えば Slack に対応すれば、Slack が提供する Web 版/スマホ版アプリでユーザーに使ってもらえます。自分で各プラットフォーム向けにアプリを作らなくて良いのはすごく楽で素敵です。
  • 最近チャットツールを利用するユーザーが多いですが、そういったユーザーが自然に利用できる。僕らも普段 Microsoft Teams や Slack のようなチャットツールで業務を進めているのですが、Bot は対話相手の一人として利用できます。そのため、新しいツールの使い方を覚えなくていいんです。
  • API と組みあわせるとリアルなシナリオで役立つ。僕らの場合は普段使っているカレンダーへの読み書きにAPIを利用しているため、普段の業務を楽にするために使えました。

次回以降は Microsoft Bot Framework を例にBot 開発についてのノウハウを紹介し始めます。お楽しみに!