抄訳: Microsoft Bot Framework FAQ (よくある質問)

Bot Framework の FAQ がよくまとまった内容だったので抄訳してみました。元ページは以下です。
https://docs.botframework.com/faq/

とても長いです。また、だいぶ意訳、抄訳しています。(ニュアンスが違っているものや内容を省いているものもあるかもしれません)
画像として貼り付けている情報は以下スライドに纏めています。(スライド内に含んでいないものもあります)

https://www.slideshare.net/kosasaki/microsoft-bot-framework

 



1. Microsoft Bot Framework とは?

Microsoft Bot Framework はインテリジェントな Bot との接続、開発に必要なものを提供します。インテリジェントな Bot とはユーザーが各種サービスと自然なやりとりができるものを指し、ここでいう各種サービスには Skype、Slack や Office 365 のメールやショートメール(text/sms) に加えてその他サービス (Facebook Messanger など) を含みます。

Bot (もしくは会話エージェント) は Web やモバイルでのユーザー体験において、なくてはならないものの 1 つに急速になりつつあります。Bot を実装したことがある開発者は皆同じ問題に直面します。それは、「基本的な Input/Output 部分の実装が必要となる」、「会話するために自然言語や対話に関する知識が必要となる」、「(各自の好きなインタフェース、各自の言語で利用したいと思う ) 様々なユーザーを考慮する必要がある」ことです。
Bot Framework はこれらの問題を簡単に解決するためのツールを提供します。例えば、 30以上の言語に対する自動翻訳、ユーザー及び会話の状態管理、Bot Framework Emulator (エミュレーター) を含むデバッグ用ツール、Web チャットの組み込み機能、ユーザーが様々な Bot を各自で検索、試用しお気に入りを見つけるための機能を提供します。Bot Framework は下図にある 3 つのコンポーネントを含んでいます。Bot Connector、Bot Builder SDK、そして Bot Directory です。
bot_1

  Bot Connector

Bot Connector はあなたが使用する Bot と各種サービスをシームレスに繋いでくれます。各種サービスとは、Skype、Office 365 メール、Slack、SMS (ショートメール) や Facebook Messanger 等 その他サービスです。Bot は簡単に登録でき、そして希望の Channel (メールや Slack など) と接続し、Bot Directory に公開できます。
bot_2

Bot Builder SDK

Bot Builder SDK は GitHub に公開しているオープンソースの Bot 開発用 SDK で、Node.js、C# で会話する機能を構築するのに必要な全てを提供します。

Bot Builder SDK  (GitHub)
https://github.com/Microsoft/BotBuilder bot_3

Bot Directory (Comming Soon)

Bot Directory は、Bot Connector を通して登録された 全てのレビュー済み Bot を公開するためのディレクトリです。ユーザーは Bot Directory で、自分の好きな Bot を探して、試用して、お気に入りにできます。Bot Directory は 4月に行われた Microsoft Build 2016 のイベント上で初めて紹介されました。

bot_4

 

Bot Framework は誰をターゲットにしたものか?どのようなメリットがあるのか?

Bot Framework は、Bot を使った新しいサービスを開発したいと思っている、もしくは既存のサービスに Bot のインタフェースを追加したいと思っている開発者をターゲットにしています。前述した通り、通常、Bot 開発を行うと I/O や言語などの問題に対応する必要がありますが、それらの問題を解決するためのツールを Bot Framework は提供します。

 

何のために Bot を開発するのか?

カンバセーショナル(会話) ユーザー インタフェース (Conversational User Interface)  略して CUI なるものが誕生しています。
* CUI という表記がややこしいので Conv UI と記載します。
雑談 Bot が多数現れたことで Skype や GroupME など様々なコミュニケーションチャネルでやりとりできるようになりました。さらに、一連のパーソナルエージェントサービスの登場は、マシンや人、もしくはその両方にアクションを起こすことを促します。幾つか具体的な例を挙げると x.ai、Clara Labs、Fancy Hands、Task Rabbit、Facebook “M” があります。

従来のインタフェースは Email であり、テキストもしくは音声ですが、現在の会話ドリブン (Conversation-Driven) な UI  は、タクシーを捕まえたり、電子マネーで支払いをしたり、友人に送金したり、といったことを実現させています。そのような機能を実現している Siri や Google Now、Cortana は数百万人の人々に対して価値があることを毎日実証しています。GUI よりも Conv UI がしばしば優位であったり、GUI が Conv UI を補足する立場になるモバイルデバイスでは特にです。

Bot と会話エージェントはユーザー体験において、なくてはならないものの 1 つに急速になりつつあります。

 

Bot を開発したい場合、何から始めればよいか?

まずは Bot Framework のサイトを開いてみてください。Bot Connector 内で Bot を登録するにはマイクロソフトアカウントが必要となります。Bot Builder SDK はオープンソースで GitHub で公開しています。また、C#、Node.js で開発するためのガイドも用意しています。

Bot Framework サイト
https://dev.botframework.com/

Bot Builder for C# - Getting Started
https://docs.botframework.com/sdkreference/csharp/

Bot Builder for Node.js - Getting Started
https://docs.botframework.com/builder/node/overview/

 

なぜマイクロソフトは Bot Framework を開発したのか?

「Conv UI が来た!」と言っているような現時点では、新しい会話のユーザー体験を構築したり、既存のアプリケーションやサービスに会話インタフェースを追加できるスキルやツールを保持している開発者は殆どいません。マイクロソフトは Bot Framework を開発、提供することで、多くの開発者が素晴らしい Bot をより簡単に開発しユーザーに提供できるようになってきていると考えています。

 

Bot Framework はどのような人々が関わっているのか?

"One Microsoft" の精神のもと、Bot Framework は Microsoft TnR (Technology and Research)、Application and Services グループ、そして DX (Developer Experience) を含む 多数のチームで協業の上 提供しています。

 

Bot Framework いつから始まったのか?

Bot Framework のコア部分は 2015年の夏か進行中の状況になっていました。当初は、Microsoft TnR (Technology and Research) の Fuse Labs での開発から始まりました。

Fuse Labs
https://fuse.microsoft.com/

 

Bot Framework は既に公開されているのか?

はい。Bot Framework は Microsoft Build 2016 でプレビュー版として公開されました。

 

Bot Framework はいつまでプレビュー期間か?現状(プレビュー) の Bot Framework を使ってアプリ開発、公開できるか?

Bot Framework は現状プレビュー期間です。現時点では 2016 年内に正式リリースできることを想定しています。Microsoft Build 2016 でマイクロソフトは Conversation as a Platform に巨額の投資を行うことを表明しています。Bot Framework もその投資対象の中にあります。プレビュー期間中の開発については、もちろん、自由(ユーザーの自由)です。

 

Bot Framework の今後のロードマップは?

Bot Framework は Microsoft Biuld 2016 で初めて公開し、継続的に Framework の改善、ツール・サンプル・チャネルの追加を行う計画です。Bot Builder SDK は GitHub で公開しており、広くコミュニティの協力が得られることを期待しています。あなたが欲しい機能に対するフィードバックをお待ちしています。

Bot Framework User Feedback
https://feedback.botframework.com/

 

Bot Connector は開発者に何を提供するか? どのように動くのか?

Bot Connector はテキスト、スピーチ、画像などに広く簡単に繋がるための方法を提供します。加えて、ユーザーの好きな会話体験を可能とします。30を超える言語への自動翻訳、Web チャットコントロールの組み込み、ユーザー及び会話状態の管理、そして Bot Framework Emulator を含むデバッグツールを提供します。
bot_5

どのように動くか?

Bot Connector は Bot に接続するための手段を提供します。もし、あなたが Bot を開発したならば、Bot Connector 互換 API をインターネット上に公開する必要があります。これは REST API です。Bot Connector はユーザーから来たメッセージをあなたの Bot に転送し、その後 ユーザーに対して応答メッセージを返します。Bot に接続するためには以下が必要です。

  • Bot  (もしまだなら、GitHub にある Bot Builder SDK を checkout しましょう)
  • マイクロソフトアカウント (Bot を登録、管理するために必要です)
  • Bot Connector メッセージ API のためのインターネット接続可能な REST API エンドポイント
  • (オプション) Bot と会話させるための 1 つ、もしくは複数のサービスに対するアカウント

 

Bot の登録

Bot を登録するためには Bot Framework Web サイトへのサインインが必要です。Bot のプロフィール画像など Bot に関する必要事項を入力します。
1 度 Bot を登録すると、実際にユーザーがあなたの Bot とやり取りする際のテストができるダッシュボードを利用できます。ダッシュボードを使って、Bot が Bot Connector サービスや Web チャットコントロール、自動構成チャネルとやりとりできているかをテストします。
 

チャネルに対する接続

チャネル構成ページで開発者用認証情報を使って、選択したチャネルに対して Bot を接続します。

bot_6

 

Bot Directory の参照 (Comming Soon)

Bot Connector を通して登録された Bot を Bot Directory に公開するにはレビューが必要となります。Bot Directory への公開有無はBot 登録手順の中でもできますし、その後いつでも変更可能です。

 

状態評価

Bot を Azure Application Insights にリンクした場合、Bot Framework Web サイト内の Bot Connector ダッシュボードから直接 分析できます。

bot_7
 

管理

1 度 チャネルに接続すると、あなたの Bot を Bot Framework Web サイトで管理できるようになります。
 

Bot Connector は現状 どのようなチャネルをサポートしているか?

2016年 3月 30日時点では以下のチャネルをサポートしています。

  • Text/SMS
  • Office 365 メール
  • Skype
  • Slack
  • GroupMe
  • Telegram
  • Facebook Messenger
  • Web (Bot Framework の組み込み Web チャット経由)

 

今後どのようなインタフェースを Bot Connector に追加するか?

Bot Connector の追加を含む Bot Framework の継続的な改善を行うことを計画はしていますが、具体的なスケジュールは現時点では共有できません。もし具体的に追加を希望するチャネルがある場合は、Feedback サイトでフィードバックをお願いします。

Bot Framework User Feedback
https://feedback.botframework.com/

 

Bot Connector 上で追加したい新しいチャネルがあります。マイクロソフトと共同でチャネル追加することはできますか?

Bot Connector に新しいチャネルを追加する汎用的な仕組みは提供していません。しかし、あなたの Bot からあなたのアプリケーションへは Direct Line API を使用することで接続できます。もし、あなたが新しいチャネルの開発者でマイクロソフトと共同で Bot Connector への追加を希望する場合はフィードバックサイトでお伝えください。

Bot Connector - Direct Line API
https://docs.botframework.com/sdkreference/restapi-directline/

 

もし Skype に対する Bot を開発したい場合、どのツールとサービスを使うべきか?

インターネット接続可能な REST API を持つ Bot は Bot Connector 経由で Skype に接続できます。Bot Framework はテキスト、画像等、現時点で利用されている主要な Bot 応答を作成できるようにデザインされた SDK を保持しています。Skype Bot SDK and APIs は音声や動画といった Skype 特有の相互作用を可能とします。

bot_8
 

Facebook Messenger はチャネルとしてサポートしていますか?

はい! Facebook メッセンジャーはチャネルとしてサポートしています。

 

なぜ Google Hangouts やその他チャネルがないのか?将来的にサポートする予定にしているか?

チャネルのサポートには SDK の対応状況や対象チャネルに対する要望の大きさ、スケジュールなど様々な要素があります。対象のチャネルに対する SDK がリリースされた場合、そのチャネルをサポート対象とすることを意図します。

 

Bot Builder SDK は開発者に何を提供するか?どのように動くか?

Bot Builder SDK は GitHub に公開されたオープンソースの SDK です。Node.js もしくは C# を使って強力な Bot を開発するために必要なものを提供しています。SDK はライブラリ、サンプル、ツールを含んでいます。単純なプロンプトから洗練された FormFlow ダイアログまでを対象としており、multi-turn や曖昧性除去など難しい問題への対処を助けてくれます。

 

Bot Framework を使ってプライベート もしくは自社内のみで利用可能な Bot を開発することは可能か?

現時点では、Bot Directory 内にプライベートな Bot を登録させることは計画していません。但し、開発者コミュニティで出てくる このようなアイデアをチェックしたいと思っています。

 

Bot Builder SDK は Python のような他言語をサポートする予定か?

提供するコアな機能という意味では、Bot Connector による API 署名に合致する REST API エンドポイントを提供するコード実装というのが Bot の実体です。Bot を簡単に開発するために、現状 C# と Node.js (JavaScript) の  2 つの SDK を用意していますが、あなたの Bot が Bot Connector によって呼び出し可能な REST エンドポイントを提供するのであれば、それらの SDK を使わずとも実装することは可能です。但し、SDK がもつ各種機能が利用できなくなるため、これらの機能をチェックすることをお勧めします。

 

Bot Directory は開発者に何を提供するか?どのように動くか?

Bot Directory は登録された全ての Bot を一覧として確認可能な公開ディレクトリです。Bot Directory で表示されるには対象の Bot が申請、レビューされる必要があります。各 Bot はコンタクトカードを持ちます。コンタクトカードには Bot の名前、公開者、説明や利用可能なチャネルの情報が含まれます。ユーザーは任意の Bot の詳細情報を確認でき、Web チャットや対象 Bot が対応するチャネルを使って Bot の試用が可能となります。また、Bot カードから不正な Bot の申告も行えます。開発者は Bot を登録する際に、対象の Bot を Bot Directory の一覧に載せるかどうかを選択できます。

 

自分の  Bot を Bot Directory に申請できるか?

Bot Directory は Bot を登録するための公開ディレクトリで、現時点で開発者が Bot 申請することは可能です。しかし、Bot Directory 機能自体はまだ提供していません。Bot Directory が提供されれば、ユーザーは Bot の検索、試用、お気に入り登録が行えるようになります。

 

Bot Directory は現状 "Comming Soon" となっている。いつ利用可能になるか?

現時点で、開発者は Bot を公開、申請することが可能です。ただ、いつ Bot Directory が提供されるかの具体的なスケジュールは現時点では共有できません。Bot Directory の提供を開始するタイミングでブログポスト等を通して広くアナウンスを行う予定です。

 

Microsoft Bot Framework は他の Bot 開発ツールとどのように比較するか?

Bot を開発するための素晴らしいツールは多数あります。事実、あなたが Bot のための簡単な REST エンドポイントを実装する場合、好きなツールを使って実装できます。Bot Framework は強力な Bot を開発するための方法なだけでなく、Bot Connector がサポートする様々なインタフェースとシームレスに繋げられる方法も提供します。加えて、組み込み Web チャット、30 言語を超える自動翻訳、ユーザー及び会話の状態管理、そしてデバッグツールも提供します。さらに Bot Directory があることでユーザーは非常に簡単にあなたの Bot を利用できます。

 

Bot Connector と共に登録された Bot は個人情報を収集するか? もし収集する場合、どうやってデータの安全性を確かにできるか?プライバシーはどうなっているか?

各 Bot はそれぞれサービスになっており、そのサービスの開発者に対して「サービス条件・プライバシー宣誓」の提供が求められます。 この情報には Bot Directory の Bot カードで確認できます。I/O サービスを提供するために、Bot Connector は Bot に接続するサービスから ID を収集、格納します。また、サービス改善の目的のために、Bot Connector は匿名化された会話情報を格納します。

 

Bot をどのようにして利用停止、削除するか?

ユーザーは Bot Directory の Bot のコンタクトカードから不正 Bot を申告できます。開発者は利用条件を守る必要があります。

 



結局のところ Bot Connector も Bot Builder SDK もこれだけの情報では、どういう作りになっていてどう動くのかがよく分かりません。
もうちょい情報の整理が必要そうです。