Azure, Bot, 未分類

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

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

Botと検索

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

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

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

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

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, 開発

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

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

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

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

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

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

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