Node学園勉強会LT AzureのサーバレスでNode.jsテンプレート使ってチャットボット作れるよ
AzureのサーバレスでNode.jsテンプレート使って超絶簡単にAIチャットボット作れるよっていう話東京Node学園 #node_girls 2018/06/20 たける
View Slide
注意•資料公開しますんで手順などはさらっと進みますがあとで見てみてください。•私なんかでよければSNSシェアOKです。
自己紹介たける株式会社チェンジ エンジニア• 業務でスマートデバイスを導入・活用する際のコンサルティング及び業務アプリ開発(主にチャットやチャットボットに関わるコンサルティング、開発、ツール販売、導入支援など)• 元SIer(某銀行の融資システム維持開発のインフラ担当)• プログラミングレベル:ひよっこ(Node.js、C#)• チョットデキル:Azure、Office365、CognitiveService、チャット製品全般、チャットボット作成ツール• アマリデキナイケドキョウミアル:AWS、IoT、Ionic、Low-Code、音声系• ハマっていること:スキューバダイビング、ゴルフ、リゾート、お酒、チャットボット作り
ちょっとアンケートとらせてくださいhttps://bit.ly/2LRJeiX
(追記)ぉお。
勉強会に参加するようになったきっかけ 9年間金融系SE(プロジェクトマネージャー) 飽きた 2017年2月 大企業からベンチャー企業に転職。 圧倒的にWEB系や開発者としての知識が足りないことに気づく メールや読み物の半分以上が英語。やばい。 常に新しい情報のインプット必要(事業内容:NewITトランスフォーメーション イミフ) 会社の9割がコンサルタント職種でエンジニア少なくて共感できる人少ない 「勉強会 エンジニア」で検索したらたくさんあるじゃん 月7くらいで参加 ハンズオン大好き
チャットボットって?• 「チャット」+「ロボット」=「チャットボット」• チャットをUIとしてボットアカウントに接続したプログラムが処理を自動的に実行してくれる• 自然言語AIとつながってるSiriとかりんなとか有名。• LINEとかSlackとかチャットツールから提供されてるAPI使う
チャットボットとの出会い• 転職して初めて参画したプロジェクトが「チャットボットコンサル」• ちゃっとぼっと・・・?何それ美味しいの・・・?• 当時ググってもあまり出てこず。本もほとんど出版されておらず。• IT系勉強会なら多少あってコソコソ勉強してた• いつの間にか「チャットボット得意な人」扱い• 「チャットボットサービス作って!」っていうムチャぶり
作ってやったさ。• 開発期間2か月でリリース• 超アジャイル開発(後から知った)• 奇跡
Node.jsとの出会い• Node.jsとの出会い≒Node学園との出会い• それ以降のびすけさんのqiitaとか見ながらチャットボット勉強
AzureでAIチャットボット作ってみる「QnAMaker」っていうFAQボット用のAIとつないで超簡単に作ります
Azureアカウント• 必要なもの• クレジットカード• Microsoftアカウント(無料で1分で作れる)
Azureログイン (https://portal.azure.com)• ダッシュボード• 無料アカウントで22,500円使い切っても課金されない• 無料アカウントから有償アカウントへの切り替えすれば従量課金アカウントになる• ゲストユーザ招待して複数メンバーでも利用可
Azureで何する?• Azure FunctionsBot• サーバレスのリソースの中にチャットボットフレームワークが用意されている。言語C#かNode.jsが対応されてる。• QnAMaker• FAQ(よくある質問と回答データ)を登録するだけで簡単にFAQボットが作れる自然言語のゆらぎに対応したAI。学習させるとさらに賢くなる(はず)
QnAMakerリソース作る• 検索して
• 適当に設定して(プランは無料選んで)• 作成クリックして数分待つ• デプロイ成功
QnAMakerにデータ入れる(https://www.qnamaker.ai )• [Create a knowledge base]から新規作成• さっき作ったリソース指定• よくある質問集のURLを指定• 自動的にURL先から質問と回答データ判定して登録(ただ日本語まだ苦手)
QnAMaker登録でけた• URLだけで自動抽出して登録する機能、便利ね。
QnAMakerテスト• 登録されたFAQの文言の表現をちょっと変えてみても回答してくれる。• 日本語もっと頑張れ。
QnAMaker公開• [PUBLISH]クリックして公開• キーとか表示されるんでメモ( ..)φメモメモ
FunctionsBotリソース作る• FunctionsBot作成• プログラムテンプレート選択で「Node.js」選択• 「Question and Answer」選択• 数分でデプロイ完了
QnAmakerとつなぐ• アプリケーション設定でさっきメモしたキーなどコピペ
チャットから使ってみる• 用意されたチャンネルなら簡単につなげる• なくても「DirectLine」でアダプタを作ればつなげられる(LINEとか)
Skype / Teams / Skype for Business 接続が簡単に
Web埋め込み型のチャットボット設置
ブラウザ上に開発エディターもあるのでちょっとした開発ならここでOK
私はローカルに落としてVS Codeで開発してます• もっと他にもいい開発環境方法あるよ!って方知ってたら教えてください。(私Azureではほぼ ぼっち開発者)
ね?簡単でしょ?是非皆さんも作ってみてください♪って話をするはずだった
一昨日(6/18)の話• さてそろそろLTの準備しようと思ってNode.jsでボット作ってみたら…うんともすんとも動かず。。• ログ見ても何も残っておらず。
まただ…• 何か始めると高確率でバグを引く• コミュニティ見てもあがっておらず。• え?この機能使ってるの世界中で私だけじゃないか?って思ってしまうほどの標準的な所。• サポート問合せするとやっぱりいつも報告1人目。• 確かにAzureのサーバレス(FunctionsBot)でボット開発してる人はグローバルでもあまりいないっぽい。皆PaaS(WebApps)で作ってる。
なぜ直らないのだ。• 今回のはまだいい。LT向けだし。• 実際の案件でぼっち開発してる時こういうのにぶち当たるとけっこうツライ。• 公開されて結構経ってるリソースにも不具合結構ある。
そう。たぶんこういう状態。
さっそくサポートに報告• 3,000円~/月• Azureサポートめっちゃいい• マジオススメ。• 数えてみたら200件/年以上チケット切ってた。すげえ私。
バグじゃなくて改善依頼とかならコミュニティに上げる• こんな機能あったらいいな!などはコミュニティ( https://cognitive.uservoice.com/ )にあげる。• (私含めて)英語苦手な人や日本語特有のフィードバックはサポートに手伝ってもらってあげることもできる(と思う)。• 日本人でフィードバック上げる人ほとんどいない…
Azureサポートエンジニア、とても優秀です。• 緊急度や優先度をヒアリングし、とても理解ある対応してくれる。• 問合せした当日の夜には暫定対処方法の回答くれた。• 今日の朝(問合せ2日後)にはバグ直してくれた。• いい人多い。
つまり消防車は呼べば来る。
まとめ• Azureサーバレスでチャットボット簡単に作れるよ♪• 皆も作ろうよ!• 使っていて見つけたバグやフィードバックはサポートやコミュニティに報告しよう!(サポート契約ないなら私に共有して再現できたら報告あげますよ!)