Azure Bot Service を用いた Bot 開発 - CosmosDB と Logic Apps を添えて - 2. • プロフィール
• 所属:日本マイクロソフト(4月入社の新人です)
• 職種:サポートエンジニア(Web, Bot などのチーム)
• 趣味
• ゲーム、アニメ、アコギの弾き語り
• 基本インドアな趣味の方が多め
• 自粛に耐えうるヲタク:要するにただのヲタク
• エンジニアリング
• 情報系の大学院卒業
• 広く浅く技術を追っていた
• Azure Tech Lab にも何度かお邪魔させていただいてます←ここ重要
(私の SNS のリンク、参考 URL は後ろにはっときます)
3. Azure Bot Service とは
Chat Bot を簡単に開発/運用できる service
• Bot App と channel をつなぐサービス
• GitHub で公開されている Sample
• C#, Node.js, ES6, Python, Typescript
channel Connector Bot App
Bot Service
3
4. 作ってみた Bot :Tech Info Bot for Teams
• 基本機能
• Reply :好きな時に好きな分野の記事やセミナーを探す
• Push :特定の分野に関する情報を定期的に流す
4
Reply の場合 Push の場合
HoloLens の
情報が欲しい
HoloLens の
情報を送信
事前情報から k8s の
情報を定刻に送信
好きな時に好きな内容について 自動的に決まった内容について
指定した IT 用語に関係する情報
(Qiita の記事や connpass のイベント)を教えてくれる Bot
5. Reply 機能の動画
1. 何でもいいから話しかける(挨拶は大事)
2. 何をするか選ぶ
(情報の取得, Push 通知の登録, Push 通知の一覧表示 )
3. どの種類の情報を得るか選ぶ(今は Qiita のみ対応)
4. 何について調べるか入力する
5. Card からみたい情報のリンクを開く
Qiita の記事をとってくる手順
5
とりあえず話しかけたらどうにかしてくれます ^^)
*ブラウザで見るとアニメーションは崩れてるかもです。
動画単体をご確認ください。
6. Push 通知 (ProActive Message) の実装
• Data Base : Cosmos DB
• Conversation reference という値からユーザを特定する
• これをどこかに保存し、push 通知の際に参照する必要あり
• 定期実行 : Logic Apps
• 指定した時間に Message を送信
• App Service の外から HTTP リクエストを送る必要あり
• Reply の場合とは別の Endpoint を App Service に用意
ProActive な動作をするには他のサービスと組み合わせるべし!
6
9. Bot の Local test
Bot Framework Emulator : local test を行うためのツール
• Channel によって動作や表示形式が異なるのは注意
Emulator のカルーセル
Teams (Dark Mode)のカルーセル
9
Emulator の動作画面(sample を実行中)
10. Azure への Deploy
• VS Code の拡張機能(個人的にはこれが楽だった)
• 2 クリックくらいで deploy できる
インスタンスを選んで
Deploy !
10
俺もいるやで... (ボソッ
11. 各サービスを使った所感
• Azure Bot Service
• 簡単に Reply Bot ができた
• 状態を保持した会話のフローは function にはない利点
• Q&A Bot などの豊富な sample がある
• 逆に sample が多いので選択が難しい
• Logic Apps
• ローコードに他のサービスや API との連携ができる
• 用意されている関数で実装できないとこが出てくる
(今回は javascript でフォローした)
色んなサービスを駆使して、快適な Bot Life を
11
13. おまけ:私の SNS
すべての発言は個人の感想に基づくアレです
Ctr + click or QR code or URL からご参照ください。よろこびます。 m(_ _)m
https://www.facebook.com/profile.php?id=100010376135272
https://www.linkedin.com/in/minoru-ito-171a4a194/
https://twitter.com/MINORUITO9
14. おまけ:開発における参考資料
• 今回使用した Azure のサービスのクイックスタート
• Azure Bot Service
• Cosmos DB
• Logic Apps
• Azure Bot Service に関する追加情報
• GitHub の sample code
• Node.js で Azure Bot Service の Sample を local test するまでの記事
(私の Qiita の記事です)
• Q&A Bot (サービス名は QnA Maker) のラーニング
• Support チームのブログ(MS の公式見解ではないです)
• 障害発生時の対応の話などもあります
• Bot 以外のことも触れてます