こちらが入力した言葉を
コンピューターが解釈して
何らかの答えを返してくれる
自動で動作する アプリ
日本マイクロソフト社内
庶務サポートBOT
Website
認証
検索
購入
Bot
いらっしゃいませ、○○さん。
はい、こちらに。
ご注文を承りました。
ご利用ありがとうございました。
Conversational
Agent
宿泊予約飛行機の予約
ご挨拶
(Hello!)
会員確認Dialogs/Tasks
Parameters
(なし) 予約開始日
予約終了日
人数
概算見積もり
出発場所
…
到着場所
認証
特別オファー
部屋の種類
旅行 Bot
「品川から沖縄に
行きたい」
「1泊1人10,000円まで、
国際通りから徒歩圏」
旅行 Bot
宿泊予約飛行機の予約
ご挨拶
(Hello!)
会員確認Dialogs/Tasks
Intent
Entity
Cognitive
Services
LUIS
Microsoft Graph
https://graph.microsoft.com/
https://graph.microsoft.com/
ユーザー入力の想定
3か4LDKで、家賃2から5万円くらい。
庭付きで、品川から電車で45分以内、
その最寄り駅から徒歩10分圏内。そこ
から徒歩5分以内にジムがある物件を
探しています。
部屋を探しています。
Starwars の映画の曲
が聞きたいのだけど、
どの映画だったかわ
すれちゃいました。
悲愴感というか物悲
しい雰囲気の曲です。
あと、デススターに
突入するときの勇ま
しい感じの曲も知り
たいです。
漢字表記が複数、
間違い、ひらがな
複数の質問が
一度に
ナビゲーション
ようこそ! 何かお役に
立つ事はありますか?
Events
Stages
Amenities
どのイベントに
興味がありますか?
Music
Comedy
Film
Laser Dome
Spectacles
Theater
誰の音楽が好きですか?
“Lady Gaga”
Bot が理解できる入力に誘導する
※途中、操作がわからなく
なった場合は「/help」、
メニューに戻る場合は、
「/menu」と入力してください。
内容が理解できませんでした。
以下のように入力してみてく
ださい。
例)品川から渋谷まで電車で
行くには?
会話の入出力
自然言語処理
ログ DB
会話の入出力
自然言語処理
ログ DB
外部サービスAPIなど
会話の入出力
自然言語処理
ログ DB
回答 DB
会話の入出力
自然言語処理
ログ DB
回答 DB
会話の入出力
自然言語処理
回答 DB
ログ DB
ダイアログ形式の
コミュニケーションを実装
(C#, Node.js)
BOT アプリをメッセージングサービスに
公開
BOT 開発のための統合環境
Node.js & C# SDK
Built-in ダイアログ:
BOTと他のメッセージチャネルを接続
開発ツール
http://aka.ms/bf-bc-vstemplate
https://aka.ms/bf-bc-emulator
https://github.com/Microsoft/botbuilder
開発ドキュメント
https://docs.botframework.com/en-us/
• Node.js、C# ともに
用意されているテンプレートの
種類と数は同じ
• クライアントからコードを
デプロイする際、言語が異なると
HTっTP 500 が発生するので注意
• ダウンロードしてローカル環境で開発
• オンラインコードエディタで編集
• Node.js はコードを書き換えればそのまま動作
• C# は Build.cmd でビルドが必要
必要なランタイムと
ツール
コメントアウト
npm install
モジュールの
インストール
npm -g windows-build-tools
コマンドライン
デバッグ実行
node app.js
①
②
エミュレーターから
アクセス
プロジェクトに含まれるpublish.js を実行
node publish.js
~ Azure なしで開発する場合 ~
npm init
npm init
npm -g windows-build-tools
Microsoft Visual C++ ランタイム
コンパイラ
以下がインストールされる
~ Azure なしで開発する場合 ~
npm init
npm install --save botbuilder
npm install --save restify
「Create a bot with the Bot Builder SDK for Node.js」のサンプ
ルコードをコピー
npm install --save botbuilder-azure
node app.js
Text Analytics Language Understanding
Intelligent Service (LUIS)
Language: ja
keyPhrases: Azure
https://www.luis.ai/
検索の専門的な知識不要で容易にリッチ検索アプリの構築を可能と
し、また完全マネージドで運用管理コストも削減することができる
→ アプリ/サービス開発に集中できる
地理空間検索
全てAzure Searchの機能で実現しています
http://azjobsdemo.azurewebsites.net/
インデックス追加・更新 /indexes/<indexname> PUT
インデックス一覧表示 /indexes GET
インデックス統計情報取得 /indexes/<indexname>/stats GET
インデックスの削除 /indexes/<indexname> DELETE
ドキュメント追加・削除 /indexes/<indexname>/docs/index POST
検索 /indexes/<indexname>/docs GET
ドキュメントlookup /indexes/<indexname>/docs/<key> GET
ドキュメント数取得 /indexes/<indexname>/docs/$count GET
サジェスション /indexes/<indexname>/docs/suggest GET
テストアナライザ /indexes/<indexname>/analyze POST
https://<アカウント名>.search.windows.net
{
"@odata.context":
"https://yoichikademo.search.windows.net
/indexes('messages')/$metadata#Collectio
n(Microsoft.Azure.Search.V2016_09_01.Ind
exResult)",
"value": [
{ "errorMessage": null, "key": "1",
"status": true, "statusCode": 201 },
{ "errorMessage": null, "key": "2",
"status": true, "statusCode": 201 },
{ "errorMessage": null, "key": "3",
"status": true, "statusCode": 201 }
]
}
※ APIバージョン 2016-09-21の機能一覧。バージョンごとの機能についてはこちらを参照ください
プログラムとコンテンツの 2 の観点
想定外の自然言語以外の処理はテストケースを
100% クリア
想定外の自然言語処理は合格ラインを決める
ユーザーの問い合わせは解決したか?
はい
いいえ
• いつでもどこでも
• ユーザーが使い慣れたツール
を経由して、商品やサービス
を提供可能
• 自然言語からの類推
• パーソナライズ、パターン化
などによる定型処理
http://bit.ly/emotion-bot-hol
Azure Antenna : Azure Bot Service ではじめる
チャットボット開発ハンズオン
JavaScript と Bot Service を使った Bot 開発

JavaScript と Bot Service を使った Bot 開発