未分類

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#で開発することにしました。

1 thought on “Bot Framework 概要と好きなところ”

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中