NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

Bot × Recommendations APIを試してみたい。~Bot Framework編~

こんにちは。
 
LINEのスタンプを購入せずにこれまできたけど、バリエーションの少なさにそろそろ限界を迎えていて、
クラウディアさんのスタンプ購入を本気で考えている松永です。
 
(AmazonもAlexaスタンプとか作ればいいのに・・・。)

 

 
今回は、Cogbotコミュニティが主催しているCogbot勉強会で話をした内容をベースに、
ローカル環境で、Bot FrameworkとRecommendations APIを使ったアプリを何回かに分けてご紹介したいと思います。
 
今回はBot Framework編という事で、初めてBotとお喋りするためにどうすればよいのかを書きたいと思います。
 

そもそも"Bot"とは何か?

 

さて、Botとお喋りするには、自らBotを生み出さなければいけません。

とはいえ、急がずにまずはBotとは何かを確認しておきましょう。


Botとは、

Bot(ボット)は、robot(ロボット)の短縮形・略称で、転じてコンピュータやインターネット関連の自動化プログラムの一種のこと。

出展:Wikipedia
https://ja.wikipedia.org/wiki/Bot

Wikipediaさんです。なるほど。言っている事はわかります。ですが、これだと少し範囲が広い気がしますね。

では、今回ご紹介するような対話型のBotの定義はあるのでしょうか?

と調べていくと、以下のページがヒットしました。

https://techterms.com/definition/bot


There are many different types of bots, but some common examples include web crawlers, chat room bots, and malicious bots.
(多くの異なる種類のボットがありますが、一般的な例にはWebクローラー、チャットルームボット、悪意のあるボットがあります。)

Chat bots were one of the first types of automated programs to be called "bots" and became popular in the 1990s, with the rise of online chatrooms. 
These bots are scripts that look for certain text patterns submitted by chat room participants and respond with automated actions.
(チャットボットは、 "ボット"と呼ばれる自動化されたプログラムの最初のタイプの1つであり、1990年代にオンラインチャットルームが登場して人気を得ました。これらのボットは、スクリプトのチャットルームの参加者から提出された特定のテキストパターンを探して、自動アクションで応答します。)

 

出典:TechTerms

※訳はGoogle翻訳を使いました。

つまり、現在注目されているBotは、多様な種類があるBotの中でも、チャットボットのタイプを指しているといえそうです。

Botを生み出すために必要なツール



では、Botのルーツを確認したところで、こんどはツールを確認しましょう。
Botを作るには準備するものが幾つかあります。

Bot Framework



 Botを作成するには、Microsoft Bot Frameworkを使用します。

https://dev.botframework.com/

このFrameworkを使うことで、簡単にBotアプリケーションを作成する事が出来ます。

とはいえ、特にインストール等をする必要はなく、

この後に記載するテンプレートを使用する事でBot Frameworkを使ったBot開発が出来るようになります。

Visual Studio



開発環境としては、Visual Studioを使用します。(筆者は2015で試しています。)

ライセンスについては、無償版であるCommunityでもOKです。

https://www.visualstudio.com/ja/vs/community/

 

Visual Studio用のBot Project Template



Visual Studio でBotを開発する為のテンプレートが用意されています。

こちらですが、以下のURLからzipファイルが取得できます。
 

 

http://aka.ms/bf-bc-vstemplate
 

ただ、最新版はURLが変わる可能性もあります。

無難に取得したい場合には、まず下のサイトにアクセスしてください。

https://docs.botframework.com/en-us/csharp/builder/sdkreference/gettingstarted.html

その後、Getting started in .NETの項目の、
2.Download and install the Bot Application templateのダウンロードリンクから取得をしましょう。

ダウンロードしたzipファイルは、そのまま解凍せずにVSのテンプレートフォルダに配置します。

例:筆者のVisual Studio 2015の場合。
%USERPROFILE%/Documents/Visual Studio 2015/Templates/ProjectTemplates/Visual C#/


もし上記の配置場所が判らない場合には、

Visual Studioの[ツール]>[オプション]>[プロジェクトおよびソリューション]>[全般]>ユーザープロジェクトテンプレート
の場所をみれば判ると思います。

配置が済んだら、新規プロジェクトを作成しましょう。

新規プロジェクトのダイアログで右上の検索から「bot」と入れて、
Bot Application が表示されていればテンプレートは配置されています。


Bot Framework Emulater



 最後にBot Framework Emulaterを入れます。

以下のリンクから、ダウンロードしましょう。

https://github.com/Microsoft/BotFramework-Emulator#download

ダウンロードされたexeファイルをインストールすればOKです。


Botを動かしてみよう

 

ここまできたら、早速Botを動かしてみましょう。

Visual Studioから、新規プロジェクトを作成します。

その際に、先程のBot Applicationを選択します。

f:id:nextscape_blog:20210910193337p:plain

OKを押したら、そのままビルドして実行しましょう。

 

ブラウザが立ち上がり、「localhost:3979」のようなURLの表示がされるかと思います。

 

f:id:nextscape_blog:20210910193403p:plain

次にBot Framework Emulatorを起動します。

リンクをクリックして、以下の設定をします。

 

・Microsoft App ID > 空
・Microsoft App Password>空
・Local ja
・URL http://localhost:XXXX/api/messages

 

尚、URLのXXXXはポート番号です。先程起動した画面にポート番号が記載されます。通常は3979ポートが指定されています。

ここまで設定して右下のログでPOSTが200を返していれば繋がっています。

あとは、Emulatorのメッセージに何か書いてみましょう。

新しいBot Applicationのテンプレートでは、入力した文字列を返すBotとなります。

 

f:id:nextscape_blog:20210910193430p:plain

 

最後に

 

いかがでしたでしょうか。

Botとの初めてのランデブー。

意外と簡単にBotとのやり取りができるようになります。

次回はRecommendations APIについてご紹介します。

 

ライター:Matsunaga

取り組んだ分評価される環境で、どこまでできるかチャレンジしたい

https://www.wantedly.com/companies/nextscape/employee_interviews/33182