Azure, Bot, 未分類

Botから検索できるようにする

こんにちは!SecretaryBot開発チームのマサです!この記事ではBotに検索機能を簡単に実装する方法を見ていきましょう。

Botと検索

Bot開発を続けていると、Botから検索をしたくなることがあります。例えば秘書ボットにレストラン予約機能を付ける場合、自分のデータベースから情報を検索できると便利ですよね。

そのため、Botに検索機能を付けたいのですが、自分で1から検索機能を作るのは面倒です。例えばですが、Database構築して、検索用のIndex作って、それをCallしやすいAPIを作ってとなるのですが、VMに環境インストールしたり自分でプログラム書いたりするのはダルイのでしたくないです(まぁ、やろうと思えばできるのですが、別にその分野のプロになりたいわけでもないし、メンテする時間あったらジム行ったり遊びに行きたいし)。

というわけで、Azureの検索サービスであるAzure Searchと、NoSQL DatabaseサービスのDocumentDBを使って下記のようなアーキテクチャで実現したいと思います。

“Botから検索できるようにする” の続きを読む

Bot, Bot State Service, Graph API

Bot から Graph API を呼び出す

こんにちは、SecretaryBot を開発している A’ です!

前回の投稿で Masa さんが Bot に対して Azure AD への認証/認可を組み込む方法を紹介してくれました。この方法を正しく実装できていれば、ユーザーがサインインした際、取得した  Access Token が Bot State サービスに保存されるようになってます。今回は  Access Token を State サービスから取り出した後、Graph API を呼び出してみましょう。下記では Graph API および便利ツール (Graph Explorer) の紹介、そしてどのように Graph API を呼び出すのかを見ていきます!

“Bot から Graph API を呼び出す” の続きを読む

Azure, Bot, 開発

Bot に Azure AD 認証/認可を組み込む

こんにちは! SecretaryBot開発チームのマサです!今回はBotにAzure ADの認証/認可機能を埋め込む方法を解説します。

Botをある程度作りこんでくると、外部のAPIと連携したくなることがあると思います。僕らの場合にはOffice 365のデータを読み書きしたかったので、Microsoft Graph APIと連携したくなりました。Microsoft Graph APIをCallするためにはAzure ADでの認証/認可が必須なので、この記事ではBotにAzure ADの認証/認可を実装する方法を紹介します。

“Bot に Azure AD 認証/認可を組み込む” の続きを読む

Bot, 開発

複数の話題を扱えるBotを作る

SecretaryBotチームのマサです!今回は複数の話題を扱えるBotを作っていきましょう!

前回の記事では、Dialogを使って連続した会話を実装することができました。ただ、現時点では1つの話題しか扱えません。今回は複数の話題(飛行機予約、ホテル予約)を扱えるBotを作っていきましょう。

今回もサンプルを作成しているので、動作を見たい人は動かしてみてください。ちなみに[Book Flight]ボタンからクリックしてください。

“複数の話題を扱えるBotを作る” の続きを読む

Bot, 開発

Dialog を使った”会話”の実装

こんにちは SecretaryBot チームのマサです。

A’の一問一答Botの開発という投稿で、Bot の基本的な開発方法は分かったかと思います。ただ、「一問一答」と明記されている通り、MessageControllerだけでは”会話”の実装がやりづらいです。実際に作っていただくとわかるのですが、Q1にはA1、Q2にはA2と回答できますが、以下のような連続した会話の実装が難しいんですね。

  1. (Bot) あなたの名前は?
  2. マサです
  3. (Bot) 教えてくれてありがとうマサ。何がしたいですか?
  4. 明日のミーティングの設定がしたいです
  5. (Bot) 明日のミーティングですね。誰とですか?
  6. … 以下続く…

上記に加えてBotが複数の話題 (ミーティング設定、天気を教えてくれるなど)を扱えるように実装しようとすると、複雑怪奇な if文、switch文を書いて、会話状態をキャッシュするような機構を作る必要があって辛いです。。

せっかくフレームワークを使っているので、その良さを活かしちゃいましょう!

“Dialog を使った”会話”の実装” の続きを読む