Azure, Bot, 未分類

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

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

Botと検索

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

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

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

このアーキテクチャの楽なポイント

個人的に、好きなポイントを列挙します。後半のサンプルで設定方法も解説しているので、使ってみていただくと「これいいじゃん!」って思っていただけるかなと。

  • Azure Search, DocumentDBともに、ボタンクリックで簡単に作成できる = 労力をかけずにやりたいことができる。
  • 運用はMicrosoftに任せてしまえる = やりたくない事をしなくてすむ
  • DocumentDB
    • 雑にjsonを入れておけばDBになるのが嬉しい
    • 読み込み/書き込みが快適なスピードで実現できる
    • 入れたjsonをSQLクエリで操作できる(地味に見えるけどすごい好き!)
  • Azure Search
    • データソース(今回はDocumentDB)を指定して、更新回数を指定するだけで簡単にIndexが作れる。
    • どの項目を検索対象にするか?などはすべてGUIで実現できるので楽
    • Index出来上がったタイミングで呼び出し用のAPIも用意してくれるので、すぐ活用できるし、開発言語非依存。もちろん単なるAPI Callなので実装も楽。

 

サンプルについて

Azure Search, DocumentDB とBot Frameworkをつないで、Botに検索機能を付けるコード+設定手順はこちらにあります。Node.jsのコードをRyanが、C#のコードを僕が書いています。C#のコード解説はここを参照してください。

サンプルを実装すると、下記のように検索できるようになります。是非皆さんも自分のBotに検索機能を付けて便利にしてみてくださいね!今後はログとかDevOps的な内容を記事にしていきたいと思います。

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中