狠狠撸

狠狠撸Share a Scribd company logo
Bot Framework V4 開発 Tips 2018-11
V4 開発で最初に知っておきたいポイント
2018-11
Cogbot #18
ABOUT ME
横浜 篤
よこはま あつし
C#, ASP.NET Core, Azure, Cognitive Services, Bot Framework….
開発者募集しています?
C#er
Cogbot
コミュニティ
@BEACH_SIDE
http://beachside.hatenablog.com/
BEACHSIDE BLOG
株式会社アイティーブレーン
Edge Technology and Projects 部
部長
本日のゴール
Bot Framework V4 で開発をする上で把握しておきたいと
(私個人的に)感じたことを共有
2018年11月末時点ノ情報デスWARNING
? Bot Framework V4 をこれから触りたい人向け
? Bot Framework V3 で開発はしてたけど、まだV4触ってない人に向け
? 主に C# 版のお話
アジェンダ
1. Bot File の存在
2. Middleware の有効活用
3. Accessor
4. Dialog と Waterfall
5. Adaptive Cards
6. その他
1. Bot File の存在
正しく使い方は…
Bot File とは (1)
リソースの管理用ファイル
? 使用する言語やプラットフォームに関係なくリソース管理するために存在
? 格納されている情報の例として、Application Insights のキー情報や Blob
Storage の接続文字列など
? 環境ごと(ローカルホスト、Azure Bot Serviceの本番環境など)のエンドポイントの記載があり、Bot
Emulator で容易にアクセス可能
公式ドキュメント: https://docs.microsoft.com/ja-jp/azure/bot-service/bot-file-basics?view=azure-bot-service-4.0
Bot File とは (2)
暗号化 / 複合化
? Azure Bot Service で作成されたソースコードのBot File は、キーや接続文字
列は、暗号化されて格納されている。暗号化キー(BotFileSecret)は、Azure Bot
Service(Web Apps)のアプリケーション設定の中にある
? 暗号化された情報を見るには、Bot Emulator でみる、または、”MSBot
Command Line tool” で複合化を行う
? ”MSBot Command Line tool” で複合化して編集した後、再び暗号化する
には新規に暗号化キーを生成する必要がある
公式ドキュメント: https://github.com/Microsoft/botbuilder-tools/tree/master/packages/MSBot
セキュアな情報はどこに保存すべきか
キー情報の保存先は複数存在
? Bot File
? appsettings.json または、appsettigs.{ environmentName }.json
? UserSecrets (ローカル開発用)
? Azure Bot Service(Web Apps)のアプリケーション設定
? Azure の Key Vault
プログラム実行時の躓きポイント(1)
Bot File のファイル名にまつわるカオス
初期値が色々な箇所で設定されている
設定されている箇所 ファイル名
Azure Bot Service で作成されたソースコードの Bot File のファイル名 {プロジェクト名}.bot
Azure Bot Service で作成されたソースコードの appsettings 内の値 コメントの文字列
VS 2017 でプロジェクトテンプレートからソースコードを作成した場合のファイル名 BotConfiguration.bot
VS 2017 でプロジェクトテンプレートからソースコードを作成した場合のappsettings 内の値 BotConfiguration.bot
ソースコード内(Startup.cs)で、環境変数/設定ファイルから値が取得できなかった時のデフォ
ルト値
BotConfiguration.bot
Azure Bot Service(Web Apps)の「アプリケーション設定」でのデフォルト値 {プロジェクト名}.bot
プログラム実行時の躓きポイント(2)
Bot File の複合キーを取得してローカルに保存が必要
? Azure Bot Serviceで生成されたソースコードの
場合、 Azure Bot Service (Web Apps) のア
プリケーション設定で、「BotFileSecret」の値を
取得しappsetting.json 等へ設定が必要
? 「BotFileSecret」の値を appsettings に書くの
はナンセンス…ローカルならUserSecrets に保存
がベター。
Bot File を見てみる
MSBot CLI で複合化 / 暗号化
Emulator で確認
DEMO
Bot File に情報を保存する際に気にしておきたいこと
変更があると BotFileSecret の値が新しくなる
? UserSecrets に保存してる場合、開発者全員更新が必要
? 環境が複数ある場合(Dev/Staging/Production など)、すべての環境で
更新が必要
? 実運用中なら、更新するためのオペレーションが面倒なことになりかねない
2. Middleware の有効活用
やつらはライブラリ内に既にいる
Middleware を介した処理フロー
会話ログの保存
TranscriptLoggerMiddleware
? Startup.cs に組み込むだけで、会話のログを保存してくれる
? ログの内容は、Bot Emulator で見れる Json の内容と同様
? 詳細はこちら:
https://github.com/Microsoft/botbuilder-dotnet/blob/master/libraries/Microsoft.Bot.Builder/TranscriptLoggerMiddleware.cs
State の保存
AutoSaveStateMiddleware
? Startup.cs に組み込むだけで、State を保存してくれる
? 詳細はこちら:
https://github.com/Microsoft/botbuilder-dotnet/blob/master/libraries/Microsoft.Bot.Builder/AutoSaveStateMiddleware.cs
Typing の表示
ShowTypingMiddleware
? Startup.cs に組み込むだけで、デフォルトで0.5秒以上 の delay があると
Typing を表示してくれる
? 詳細はこちら:
https://github.com/Microsoft/botbuilder-dotnet/blob/master/libraries/Microsoft.Bot.Builder/ShowTypingMiddleware.cs
Middleware の実装
DEMO
3. Accessor
State の保存はすべてここから
Bot Framework におけるステート管理
ステート管理の必要性
? ステートがなければ、一問一答しかできない
? ステートを持つことで会話フローを実現
ステートの種類
? User State
ユーザーの個々の情報(名前とか)を管理し、会話に活かす
? Conversation State / Private Conversation State
直前の会話で何を答えたか、会話フローの中でどの会話をしているかなど
Accessor という概念を利用したステートの管理
property accessors の利用でプログラムが汎用化
? 独自のステートのシリアライズ/デシリアライズ
? キャッシュへの読み書き、データストアへの保存
? 公式ドキュメントで概要を確認して利用しましょう
https://docs.microsoft.com/ja-jp/azure/bot-service/bot-builder-concept-state?view=azure-bot-service-4.0
? 実装もほぼ固定のパターンなのでサンプルを参照しましょう
https://docs.microsoft.com/ja-jp/azure/bot-service/bot-builder-howto-v4-state?view=azure-bot-service-4.0&tabs=csharp
4. Dialog と Waterfall
会話フロー構築のためのオブジェクトの概要
ダイアログライブラリの階層
一連の会話の責務単位
1度の会話の単位 一連の会話フローの単位
回答のデータ型に
応じたプロンプト
Dialog と Waterfall の棲み分け
Dialog
? 単一または一連の会話フロー単位がベター
? Dialog 間を行き来しやすい(Waterfall だと難しい)
? 再利用可能な Component Dialog として作ると便利
Waterfall
? 会話が一方通行で決まったフローの場合に有用。
? 一方通行ではなく戻るようなフローには不向き(できないことはないが…)
5. Adaptive Cards
これさえあれば何もいらない
とはならないけど….
Adaptive Cards
積極的に利用して UI / UX の改善へ
? 公式サイト(https://adaptivecards.io/)でサンプルも充実
? 公式サイトの Web上でデザイン可能
? プログラムで動的な生成も可能
その他
公式ドキュメント
日本語ドキュメントは、古い可能性がある
? 2018年9月に V4 が GA したため、まだ翻訳ができていない部分がある(10
月に比べたらだいぶ良くなった)
? 更新日が2018年9月以前のものは、古い可能性高いため、英語版と更新
日を見比べて、必要に応じて英語版を見ましょう
? 古いのを見つけたら…文句を言うのではなくコントリビュートしましょう…
Bot Builder tools の存在
開発における便利ツール群
? 公式のサイト(GitHub: https://github.com/Microsoft/botbuilder-tools )にてどんなものがあるか
チェックしておきましょう。
Microsoft App ID
Microsoft App ID には有効期限がある
? Azure Bot Service で自動生成されたID/Passwordは、有効期限が2年間
に設定されている
? 必要に応じて有効期限を設定しましょう。Azure ポータルからの設定?確認方
法2パターンは以下
? Bot Service のリソース > 設定 > Microsoft App ID の欄にある「管理」のリンクをクリック
? Azure Active Directory > アプリ登録(プレビュー) > 対象のアプリのIDを選択
Slot 機能でデプロイメントの効率化
Web Apps の Slot 機能で Staging / Production をスワップ運用
? Azure Bot Service とは、Web Apps, Bot Channel Registration, Blob,
Application Insights の集合体
? Web Apps は一つ、その他のリソースを手作業で作成することで Slot 機能を
活用できる
? Web Apps と Bot Channel Registration の紐づけは、 Azure ポータルより
設定
? Bot Channel Registration リソース > 設定 > メッセージングエンドポイント
おわりに
? ASP.NET Core 化で、モダンなフレームワークに進化
? “開発者にとっては” よりフレームワーク化しやすい構造に
? 人がやりにくい仕事をボットで代替することで、人がよりクリエイ
ティブで楽しいことに集中できる世界を作りましょう
Let’s enjoy Bot Framework V4 !
… .. . ..
Happy Coding !!
Cogbot #18

More Related Content

What's hot (20)

120315 cloud founry_java_ironfoundry
120315 cloud founry_java_ironfoundry120315 cloud founry_java_ironfoundry
120315 cloud founry_java_ironfoundry
Takayoshi Tanaka
?
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
Issei Hiraoka
?
骋颈迟と颁滨とかチャットとかをオンプレで运用する话
骋颈迟と颁滨とかチャットとかをオンプレで运用する话骋颈迟と颁滨とかチャットとかをオンプレで运用する话
骋颈迟と颁滨とかチャットとかをオンプレで运用する话
mdome
?
はじめての CircleCI
はじめての CircleCIはじめての CircleCI
はじめての CircleCI
Yosuke Mizutani
?
プラガブル Play20 Scala
プラガブル Play20 Scalaプラガブル Play20 Scala
プラガブル Play20 Scala
Kazuhiro Sera
?
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxはじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & Linux
Kazushi Kamegawa
?
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CDAzure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
yaegashi
?
础苍诲谤辞颈诲の新ビルドシステム
础苍诲谤辞颈诲の新ビルドシステム础苍诲谤辞颈诲の新ビルドシステム
础苍诲谤辞颈诲の新ビルドシステム
l_b__
?
摆使い倒し闭骋颈迟贬耻产の滨蝉蝉耻别と罢贵厂/痴厂翱の奥辞谤办滨迟别尘连动に挑む(2015/08/26)
摆使い倒し闭骋颈迟贬耻产の滨蝉蝉耻别と罢贵厂/痴厂翱の奥辞谤办滨迟别尘连动に挑む(2015/08/26)摆使い倒し闭骋颈迟贬耻产の滨蝉蝉耻别と罢贵厂/痴厂翱の奥辞谤办滨迟别尘连动に挑む(2015/08/26)
摆使い倒し闭骋颈迟贬耻产の滨蝉蝉耻别と罢贵厂/痴厂翱の奥辞谤办滨迟别尘连动に挑む(2015/08/26)
Masanori Ishigami
?
.NET Core時代のCI/CD
.NET Core時代のCI/CD.NET Core時代のCI/CD
.NET Core時代のCI/CD
Yuta Matsumura
?
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るAndroid アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Yu Nobuoka
?
闯补惫补ユーザのための痴厂颁辞诲别のススメ
闯补惫补ユーザのための痴厂颁辞诲别のススメ闯补惫补ユーザのための痴厂颁辞诲别のススメ
闯补惫补ユーザのための痴厂颁辞诲别のススメ
Satoshi Takami
?
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードPlay framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
Kazuhiro Hara
?
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門
Hori Tasuku
?
絶対落ちないアフ?リの作り方
絶対落ちないアフ?リの作り方絶対落ちないアフ?リの作り方
絶対落ちないアフ?リの作り方
Fumihiko Shiroyama
?
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムAndroid アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
Yu Nobuoka
?
Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話
xiidec
?
闯补惫补厂肠谤颈辫迟フレームワーク入门に痴耻别.箩蝉はいかが?
闯补惫补厂肠谤颈辫迟フレームワーク入门に痴耻别.箩蝉はいかが?闯补惫补厂肠谤颈辫迟フレームワーク入门に痴耻别.箩蝉はいかが?
闯补惫补厂肠谤颈辫迟フレームワーク入门に痴耻别.箩蝉はいかが?
好洋 山崎
?
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
?
120315 cloud founry_java_ironfoundry
120315 cloud founry_java_ironfoundry120315 cloud founry_java_ironfoundry
120315 cloud founry_java_ironfoundry
Takayoshi Tanaka
?
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
Issei Hiraoka
?
骋颈迟と颁滨とかチャットとかをオンプレで运用する话
骋颈迟と颁滨とかチャットとかをオンプレで运用する话骋颈迟と颁滨とかチャットとかをオンプレで运用する话
骋颈迟と颁滨とかチャットとかをオンプレで运用する话
mdome
?
プラガブル Play20 Scala
プラガブル Play20 Scalaプラガブル Play20 Scala
プラガブル Play20 Scala
Kazuhiro Sera
?
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxはじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & Linux
Kazushi Kamegawa
?
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CDAzure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
yaegashi
?
础苍诲谤辞颈诲の新ビルドシステム
础苍诲谤辞颈诲の新ビルドシステム础苍诲谤辞颈诲の新ビルドシステム
础苍诲谤辞颈诲の新ビルドシステム
l_b__
?
摆使い倒し闭骋颈迟贬耻产の滨蝉蝉耻别と罢贵厂/痴厂翱の奥辞谤办滨迟别尘连动に挑む(2015/08/26)
摆使い倒し闭骋颈迟贬耻产の滨蝉蝉耻别と罢贵厂/痴厂翱の奥辞谤办滨迟别尘连动に挑む(2015/08/26)摆使い倒し闭骋颈迟贬耻产の滨蝉蝉耻别と罢贵厂/痴厂翱の奥辞谤办滨迟别尘连动に挑む(2015/08/26)
摆使い倒し闭骋颈迟贬耻产の滨蝉蝉耻别と罢贵厂/痴厂翱の奥辞谤办滨迟别尘连动に挑む(2015/08/26)
Masanori Ishigami
?
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るAndroid アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Yu Nobuoka
?
闯补惫补ユーザのための痴厂颁辞诲别のススメ
闯补惫补ユーザのための痴厂颁辞诲别のススメ闯补惫补ユーザのための痴厂颁辞诲别のススメ
闯补惫补ユーザのための痴厂颁辞诲别のススメ
Satoshi Takami
?
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードPlay framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
Kazuhiro Hara
?
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門
Hori Tasuku
?
絶対落ちないアフ?リの作り方
絶対落ちないアフ?リの作り方絶対落ちないアフ?リの作り方
絶対落ちないアフ?リの作り方
Fumihiko Shiroyama
?
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムAndroid アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
Yu Nobuoka
?
Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話
xiidec
?
闯补惫补厂肠谤颈辫迟フレームワーク入门に痴耻别.箩蝉はいかが?
闯补惫补厂肠谤颈辫迟フレームワーク入门に痴耻别.箩蝉はいかが?闯补惫补厂肠谤颈辫迟フレームワーク入门に痴耻别.箩蝉はいかが?
闯补惫补厂肠谤颈辫迟フレームワーク入门に痴耻别.箩蝉はいかが?
好洋 山崎
?
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
?

Similar to Bot Framework v4 開発 Tips 2018-11 (20)

Bot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごいBot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごい
Yoshitaka Seo
?
Bot Framework で会話のログを取る
Bot Framework で会話のログを取るBot Framework で会話のログを取る
Bot Framework で会話のログを取る
Atsushi Yokohama (BEACHSIDE)
?
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
de:code 2017
?
これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏
Yuta Matsumura
?
惭厂系颁丑补迟产辞迟触ってみた
惭厂系颁丑补迟产辞迟触ってみた惭厂系颁丑补迟产辞迟触ってみた
惭厂系颁丑补迟产辞迟触ってみた
Taketo Wakabayashi
?
Tech Summit 2018: ユーザーインターフェースとしてのチャットボット開発手法 と Bot Framework V4
Tech Summit 2018: ユーザーインターフェースとしてのチャットボット開発手法 と Bot Framework V4 Tech Summit 2018: ユーザーインターフェースとしてのチャットボット開発手法 と Bot Framework V4
Tech Summit 2018: ユーザーインターフェースとしてのチャットボット開発手法 と Bot Framework V4
Ayako Omori
?
Bot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たち
Bot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たちBot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たち
Bot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たち
Atsushi Yokohama (BEACHSIDE)
?
Azure Bot!! Microsoft Bot Framework で簡単Bot開発
Azure Bot!! Microsoft Bot Framework で簡単Bot開発Azure Bot!! Microsoft Bot Framework で簡単Bot開発
Azure Bot!! Microsoft Bot Framework で簡単Bot開発
Yuki Hattori
?
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
日本マイクロソフト株式会社
?
TypeScript x Bot Framework
TypeScript x Bot FrameworkTypeScript x Bot Framework
TypeScript x Bot Framework
Kazumi IWANAGA
?
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK  + QnA Maker / LUISBot Builder V4 SDK  + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
Yoshitaka Seo
?
【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi...
【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi...【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi...
【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi...
日本マイクロソフト株式会社
?
CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
 CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
Kazumi IWANAGA
?
Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1
Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1
Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1
Atsushi Yokohama (BEACHSIDE)
?
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
Yuta Matsumura
?
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
Yuki Igarashi
?
3 倍早い?! MS 製開発者専用ツールによる HTML5 + JavaScript を使ったWeb 作成
3 倍早い?! MS 製開発者専用ツールによる HTML5 + JavaScript を使ったWeb 作成3 倍早い?! MS 製開発者専用ツールによる HTML5 + JavaScript を使ったWeb 作成
3 倍早い?! MS 製開発者専用ツールによる HTML5 + JavaScript を使ったWeb 作成
Osamu Monoe
?
[POST.Dev Japan] VS Code で試みる開発体験の向上
[POST.Dev Japan] VS Code で試みる開発体験の向上[POST.Dev Japan] VS Code で試みる開発体験の向上
[POST.Dev Japan] VS Code で試みる開発体験の向上
Tomomi Imura
?
Bot frameworksdk
Bot frameworksdkBot frameworksdk
Bot frameworksdk
Takao Tetsuro
?
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
Hitachi, Ltd. OSS Solution Center.
?
Bot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごいBot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごい
Yoshitaka Seo
?
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
de:code 2017
?
これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏
Yuta Matsumura
?
惭厂系颁丑补迟产辞迟触ってみた
惭厂系颁丑补迟产辞迟触ってみた惭厂系颁丑补迟产辞迟触ってみた
惭厂系颁丑补迟产辞迟触ってみた
Taketo Wakabayashi
?
Tech Summit 2018: ユーザーインターフェースとしてのチャットボット開発手法 と Bot Framework V4
Tech Summit 2018: ユーザーインターフェースとしてのチャットボット開発手法 と Bot Framework V4 Tech Summit 2018: ユーザーインターフェースとしてのチャットボット開発手法 と Bot Framework V4
Tech Summit 2018: ユーザーインターフェースとしてのチャットボット開発手法 と Bot Framework V4
Ayako Omori
?
Bot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たち
Bot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たちBot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たち
Bot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たち
Atsushi Yokohama (BEACHSIDE)
?
Azure Bot!! Microsoft Bot Framework で簡単Bot開発
Azure Bot!! Microsoft Bot Framework で簡単Bot開発Azure Bot!! Microsoft Bot Framework で簡単Bot開発
Azure Bot!! Microsoft Bot Framework で簡単Bot開発
Yuki Hattori
?
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
日本マイクロソフト株式会社
?
TypeScript x Bot Framework
TypeScript x Bot FrameworkTypeScript x Bot Framework
TypeScript x Bot Framework
Kazumi IWANAGA
?
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK  + QnA Maker / LUISBot Builder V4 SDK  + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
Yoshitaka Seo
?
【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi...
【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi...【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi...
【de:code 2020】 ハンズオンで学ぶ AI ~ Bot Framework Composer + QnA Maker / Custom Visi...
日本マイクロソフト株式会社
?
CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
 CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
Kazumi IWANAGA
?
Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1
Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1
Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1
Atsushi Yokohama (BEACHSIDE)
?
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
Yuta Matsumura
?
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
Yuki Igarashi
?
3 倍早い?! MS 製開発者専用ツールによる HTML5 + JavaScript を使ったWeb 作成
3 倍早い?! MS 製開発者専用ツールによる HTML5 + JavaScript を使ったWeb 作成3 倍早い?! MS 製開発者専用ツールによる HTML5 + JavaScript を使ったWeb 作成
3 倍早い?! MS 製開発者専用ツールによる HTML5 + JavaScript を使ったWeb 作成
Osamu Monoe
?
[POST.Dev Japan] VS Code で試みる開発体験の向上
[POST.Dev Japan] VS Code で試みる開発体験の向上[POST.Dev Japan] VS Code で試みる開発体験の向上
[POST.Dev Japan] VS Code で試みる開発体験の向上
Tomomi Imura
?

More from Atsushi Yokohama (BEACHSIDE) (13)

チャットボット開発を取り巻く環境と Cogbot コミュニティ
チャットボット開発を取り巻く環境と Cogbot コミュニティチャットボット開発を取り巻く環境と Cogbot コミュニティ
チャットボット開発を取り巻く環境と Cogbot コミュニティ
Atsushi Yokohama (BEACHSIDE)
?
Azure Cognitive Services の Vision カテゴリーまとめ(2020/3)
Azure Cognitive Services の Vision カテゴリーまとめ(2020/3)Azure Cognitive Services の Vision カテゴリーまとめ(2020/3)
Azure Cognitive Services の Vision カテゴリーまとめ(2020/3)
Atsushi Yokohama (BEACHSIDE)
?
Automated ML (Azure) で始める機械学習の民主化
Automated ML (Azure) で始める機械学習の民主化Automated ML (Azure) で始める機械学習の民主化
Automated ML (Azure) で始める機械学習の民主化
Atsushi Yokohama (BEACHSIDE)
?
Azure Bot Service で CI/CD on Azure Dev Ops
Azure Bot Service で CI/CD on Azure Dev OpsAzure Bot Service で CI/CD on Azure Dev Ops
Azure Bot Service で CI/CD on Azure Dev Ops
Atsushi Yokohama (BEACHSIDE)
?
Build 2018 - Cognitive Services updates summary
Build 2018 - Cognitive Services updates summaryBuild 2018 - Cognitive Services updates summary
Build 2018 - Cognitive Services updates summary
Atsushi Yokohama (BEACHSIDE)
?
アプリのロギングからデータ収集?分析?活用
アプリのロギングからデータ収集?分析?活用アプリのロギングからデータ収集?分析?活用
アプリのロギングからデータ収集?分析?活用
Atsushi Yokohama (BEACHSIDE)
?
Project Prague を試してみました
Project Prague を試してみましたProject Prague を試してみました
Project Prague を試してみました
Atsushi Yokohama (BEACHSIDE)
?
BotFramework と LUIS を使ったアプリの開発
BotFramework と LUIS を使ったアプリの開発BotFramework と LUIS を使ったアプリの開発
BotFramework と LUIS を使ったアプリの開発
Atsushi Yokohama (BEACHSIDE)
?
ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)
Atsushi Yokohama (BEACHSIDE)
?
Translator API (Microsoft Cognitive Services)の概要
Translator API (Microsoft Cognitive Services)の概要Translator API (Microsoft Cognitive Services)の概要
Translator API (Microsoft Cognitive Services)の概要
Atsushi Yokohama (BEACHSIDE)
?
Speech API の概要(Microsoft Cognitive Services)
Speech API の概要(Microsoft Cognitive Services)Speech API の概要(Microsoft Cognitive Services)
Speech API の概要(Microsoft Cognitive Services)
Atsushi Yokohama (BEACHSIDE)
?
LUIS を使ったアプリケーション開発
LUIS を使ったアプリケーション開発LUIS を使ったアプリケーション開発
LUIS を使ったアプリケーション開発
Atsushi Yokohama (BEACHSIDE)
?
Build 2017 更新情報 Cognitive Services 編
Build 2017 更新情報 Cognitive Services 編Build 2017 更新情報 Cognitive Services 編
Build 2017 更新情報 Cognitive Services 編
Atsushi Yokohama (BEACHSIDE)
?
チャットボット開発を取り巻く環境と Cogbot コミュニティ
チャットボット開発を取り巻く環境と Cogbot コミュニティチャットボット開発を取り巻く環境と Cogbot コミュニティ
チャットボット開発を取り巻く環境と Cogbot コミュニティ
Atsushi Yokohama (BEACHSIDE)
?
Azure Cognitive Services の Vision カテゴリーまとめ(2020/3)
Azure Cognitive Services の Vision カテゴリーまとめ(2020/3)Azure Cognitive Services の Vision カテゴリーまとめ(2020/3)
Azure Cognitive Services の Vision カテゴリーまとめ(2020/3)
Atsushi Yokohama (BEACHSIDE)
?
Automated ML (Azure) で始める機械学習の民主化
Automated ML (Azure) で始める機械学習の民主化Automated ML (Azure) で始める機械学習の民主化
Automated ML (Azure) で始める機械学習の民主化
Atsushi Yokohama (BEACHSIDE)
?
アプリのロギングからデータ収集?分析?活用
アプリのロギングからデータ収集?分析?活用アプリのロギングからデータ収集?分析?活用
アプリのロギングからデータ収集?分析?活用
Atsushi Yokohama (BEACHSIDE)
?
Translator API (Microsoft Cognitive Services)の概要
Translator API (Microsoft Cognitive Services)の概要Translator API (Microsoft Cognitive Services)の概要
Translator API (Microsoft Cognitive Services)の概要
Atsushi Yokohama (BEACHSIDE)
?
Speech API の概要(Microsoft Cognitive Services)
Speech API の概要(Microsoft Cognitive Services)Speech API の概要(Microsoft Cognitive Services)
Speech API の概要(Microsoft Cognitive Services)
Atsushi Yokohama (BEACHSIDE)
?

Recently uploaded (11)

第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?

Bot Framework v4 開発 Tips 2018-11

  • 1. Bot Framework V4 開発 Tips 2018-11 V4 開発で最初に知っておきたいポイント 2018-11 Cogbot #18
  • 2. ABOUT ME 横浜 篤 よこはま あつし C#, ASP.NET Core, Azure, Cognitive Services, Bot Framework…. 開発者募集しています? C#er Cogbot コミュニティ @BEACH_SIDE http://beachside.hatenablog.com/ BEACHSIDE BLOG 株式会社アイティーブレーン Edge Technology and Projects 部 部長
  • 3. 本日のゴール Bot Framework V4 で開発をする上で把握しておきたいと (私個人的に)感じたことを共有 2018年11月末時点ノ情報デスWARNING ? Bot Framework V4 をこれから触りたい人向け ? Bot Framework V3 で開発はしてたけど、まだV4触ってない人に向け ? 主に C# 版のお話
  • 4. アジェンダ 1. Bot File の存在 2. Middleware の有効活用 3. Accessor 4. Dialog と Waterfall 5. Adaptive Cards 6. その他
  • 5. 1. Bot File の存在 正しく使い方は…
  • 6. Bot File とは (1) リソースの管理用ファイル ? 使用する言語やプラットフォームに関係なくリソース管理するために存在 ? 格納されている情報の例として、Application Insights のキー情報や Blob Storage の接続文字列など ? 環境ごと(ローカルホスト、Azure Bot Serviceの本番環境など)のエンドポイントの記載があり、Bot Emulator で容易にアクセス可能 公式ドキュメント: https://docs.microsoft.com/ja-jp/azure/bot-service/bot-file-basics?view=azure-bot-service-4.0
  • 7. Bot File とは (2) 暗号化 / 複合化 ? Azure Bot Service で作成されたソースコードのBot File は、キーや接続文字 列は、暗号化されて格納されている。暗号化キー(BotFileSecret)は、Azure Bot Service(Web Apps)のアプリケーション設定の中にある ? 暗号化された情報を見るには、Bot Emulator でみる、または、”MSBot Command Line tool” で複合化を行う ? ”MSBot Command Line tool” で複合化して編集した後、再び暗号化する には新規に暗号化キーを生成する必要がある 公式ドキュメント: https://github.com/Microsoft/botbuilder-tools/tree/master/packages/MSBot
  • 8. セキュアな情報はどこに保存すべきか キー情報の保存先は複数存在 ? Bot File ? appsettings.json または、appsettigs.{ environmentName }.json ? UserSecrets (ローカル開発用) ? Azure Bot Service(Web Apps)のアプリケーション設定 ? Azure の Key Vault
  • 9. プログラム実行時の躓きポイント(1) Bot File のファイル名にまつわるカオス 初期値が色々な箇所で設定されている 設定されている箇所 ファイル名 Azure Bot Service で作成されたソースコードの Bot File のファイル名 {プロジェクト名}.bot Azure Bot Service で作成されたソースコードの appsettings 内の値 コメントの文字列 VS 2017 でプロジェクトテンプレートからソースコードを作成した場合のファイル名 BotConfiguration.bot VS 2017 でプロジェクトテンプレートからソースコードを作成した場合のappsettings 内の値 BotConfiguration.bot ソースコード内(Startup.cs)で、環境変数/設定ファイルから値が取得できなかった時のデフォ ルト値 BotConfiguration.bot Azure Bot Service(Web Apps)の「アプリケーション設定」でのデフォルト値 {プロジェクト名}.bot
  • 10. プログラム実行時の躓きポイント(2) Bot File の複合キーを取得してローカルに保存が必要 ? Azure Bot Serviceで生成されたソースコードの 場合、 Azure Bot Service (Web Apps) のア プリケーション設定で、「BotFileSecret」の値を 取得しappsetting.json 等へ設定が必要 ? 「BotFileSecret」の値を appsettings に書くの はナンセンス…ローカルならUserSecrets に保存 がベター。
  • 11. Bot File を見てみる MSBot CLI で複合化 / 暗号化 Emulator で確認 DEMO
  • 12. Bot File に情報を保存する際に気にしておきたいこと 変更があると BotFileSecret の値が新しくなる ? UserSecrets に保存してる場合、開発者全員更新が必要 ? 環境が複数ある場合(Dev/Staging/Production など)、すべての環境で 更新が必要 ? 実運用中なら、更新するためのオペレーションが面倒なことになりかねない
  • 15. 会話ログの保存 TranscriptLoggerMiddleware ? Startup.cs に組み込むだけで、会話のログを保存してくれる ? ログの内容は、Bot Emulator で見れる Json の内容と同様 ? 詳細はこちら: https://github.com/Microsoft/botbuilder-dotnet/blob/master/libraries/Microsoft.Bot.Builder/TranscriptLoggerMiddleware.cs
  • 16. State の保存 AutoSaveStateMiddleware ? Startup.cs に組み込むだけで、State を保存してくれる ? 詳細はこちら: https://github.com/Microsoft/botbuilder-dotnet/blob/master/libraries/Microsoft.Bot.Builder/AutoSaveStateMiddleware.cs
  • 17. Typing の表示 ShowTypingMiddleware ? Startup.cs に組み込むだけで、デフォルトで0.5秒以上 の delay があると Typing を表示してくれる ? 詳細はこちら: https://github.com/Microsoft/botbuilder-dotnet/blob/master/libraries/Microsoft.Bot.Builder/ShowTypingMiddleware.cs
  • 20. Bot Framework におけるステート管理 ステート管理の必要性 ? ステートがなければ、一問一答しかできない ? ステートを持つことで会話フローを実現 ステートの種類 ? User State ユーザーの個々の情報(名前とか)を管理し、会話に活かす ? Conversation State / Private Conversation State 直前の会話で何を答えたか、会話フローの中でどの会話をしているかなど
  • 21. Accessor という概念を利用したステートの管理 property accessors の利用でプログラムが汎用化 ? 独自のステートのシリアライズ/デシリアライズ ? キャッシュへの読み書き、データストアへの保存 ? 公式ドキュメントで概要を確認して利用しましょう https://docs.microsoft.com/ja-jp/azure/bot-service/bot-builder-concept-state?view=azure-bot-service-4.0 ? 実装もほぼ固定のパターンなのでサンプルを参照しましょう https://docs.microsoft.com/ja-jp/azure/bot-service/bot-builder-howto-v4-state?view=azure-bot-service-4.0&tabs=csharp
  • 22. 4. Dialog と Waterfall 会話フロー構築のためのオブジェクトの概要
  • 24. Dialog と Waterfall の棲み分け Dialog ? 単一または一連の会話フロー単位がベター ? Dialog 間を行き来しやすい(Waterfall だと難しい) ? 再利用可能な Component Dialog として作ると便利 Waterfall ? 会話が一方通行で決まったフローの場合に有用。 ? 一方通行ではなく戻るようなフローには不向き(できないことはないが…)
  • 26. Adaptive Cards 積極的に利用して UI / UX の改善へ ? 公式サイト(https://adaptivecards.io/)でサンプルも充実 ? 公式サイトの Web上でデザイン可能 ? プログラムで動的な生成も可能
  • 28. 公式ドキュメント 日本語ドキュメントは、古い可能性がある ? 2018年9月に V4 が GA したため、まだ翻訳ができていない部分がある(10 月に比べたらだいぶ良くなった) ? 更新日が2018年9月以前のものは、古い可能性高いため、英語版と更新 日を見比べて、必要に応じて英語版を見ましょう ? 古いのを見つけたら…文句を言うのではなくコントリビュートしましょう…
  • 29. Bot Builder tools の存在 開発における便利ツール群 ? 公式のサイト(GitHub: https://github.com/Microsoft/botbuilder-tools )にてどんなものがあるか チェックしておきましょう。
  • 30. Microsoft App ID Microsoft App ID には有効期限がある ? Azure Bot Service で自動生成されたID/Passwordは、有効期限が2年間 に設定されている ? 必要に応じて有効期限を設定しましょう。Azure ポータルからの設定?確認方 法2パターンは以下 ? Bot Service のリソース > 設定 > Microsoft App ID の欄にある「管理」のリンクをクリック ? Azure Active Directory > アプリ登録(プレビュー) > 対象のアプリのIDを選択
  • 31. Slot 機能でデプロイメントの効率化 Web Apps の Slot 機能で Staging / Production をスワップ運用 ? Azure Bot Service とは、Web Apps, Bot Channel Registration, Blob, Application Insights の集合体 ? Web Apps は一つ、その他のリソースを手作業で作成することで Slot 機能を 活用できる ? Web Apps と Bot Channel Registration の紐づけは、 Azure ポータルより 設定 ? Bot Channel Registration リソース > 設定 > メッセージングエンドポイント
  • 33. ? ASP.NET Core 化で、モダンなフレームワークに進化 ? “開発者にとっては” よりフレームワーク化しやすい構造に ? 人がやりにくい仕事をボットで代替することで、人がよりクリエイ ティブで楽しいことに集中できる世界を作りましょう Let’s enjoy Bot Framework V4 !
  • 34. … .. . .. Happy Coding !! Cogbot #18