Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Azure&C#による
Clovaスキル+LINE Bot短期開発
.NET Conf 2018 Tokyo, Japan
<Unconference>
Takumasa Hirabayashi
自己紹介
• Name
• 平林 拓将(ひらりん)
• Work
• Webシステム開発&技術系研修講師
• Like
• C# / Xamarin / Groovy / Grails /
Web / DB / Azure / LINE
• S...
スマートスピーカー使ってますか?
https://trendy.nikkeibp.co.jp/atcl/column/17/022800073/022800001/
当たりました
http://cp.glico.jp/pretz2018cp/
せっかくなので何かスキルを作りたい!
https://www.line-community.me/awards/about
• LINE BotやClovaスキルの開発コンテスト
• グランプリは賞金1000万円
LINE BOOT AWARDS 2018にエントリーしてみました
• 9/23(日) 当選したClova Friendsを受け取る
• 10/2(火) Cogbot勉強会参加
• 10/4(木) Clovaスキルで作りたいものを思いつく
• ...
つくったもの
「Clova&LINEで絵本読み聞かせ」
Clovaデバイス LINEアプリ
昔々あるところに…
• Clovaがお話を読み、その場面の絵を読み上げに合わせてLINEに送ってくれる!
• 読み上げ音声は登場人物や場面によって異なる...
デモ
https://www.youtube.com/watch?v=1gh6XSDtip4
Clovaスキル開発の基本
• CEK(Clova Extension Kit)がユーザーの発話と処理をつなぐ
CEK
Extension
サーバー
(任意の環境)
• 対話モデルの定義
• ユーザーの発話を解釈し、インテント
(意図)やスロッ...
LINE Bot開発の基本
• Messaging APIが「Reply」と「Push」それぞれで仲介を行う
バックエンド
サーバー
(任意の環境)
• ユーザーからのメッセージをそのまま
バックエンドに送り、バックエンドから
の要求に沿ってユ...
今回のシステム構成
CEK
Messaging API
Functions
バックエンド全般
Blob Storage
画像格納用
Cosmos DB
読み上げ文章データ
読み上げ
音声合成
Clovaデバイス
LINEアプリ
AzureでLINE開発 ~ ① Azure Functions
• BotもClovaスキルもカバーできる
• レスポンスが気になるのでApp Serviceプランで作成
• LINE Payと連携する場合は必須?
• 場合によってはDura...
AzureでLINE開発 ~ ② Blob Storage
• Blob StorageとBotのメディア系メッセージは相性がいい
• 画像メッセージなどを送る際はバイナリデータではなくURL指定
• Blob Storageに格納したデータは...
AzureでLINE開発 ~ ② Blob Storage
• イメージマップメッセージを使う場合
• LINEのトーク画面に大きな画像を表示し、画像をタップした際のアクションなどを
定義できるメッセージ
• デバイスの幅に合わせた画像の用意が...
C#で開発する際の注意事項
• 公式がC# SDKを用意していない
• 公式で用意している
• Messaging API→Java, PHP, Go, Perl, Ruby, Python, Node.js
• CEK→Node.js , P...
おわりに
• Azureを使うと各バックエンドが簡単に用意できる
• 特に開発者がプログラミングに注力できるサーバーレスは◎
• 今回作った関数は3つ、コード行数は全部で700行くらい
• 締め切りや目標があると頑張れる
• 短い期間でもAzu...
Upcoming SlideShare
Loading in …5
×

Azure&C#によるClovaスキル+LINE Bot短期開発

859 views

Published on

.NET Conf 2018 TokyoのUnconference枠でお話しした内容です。
(LINE BOOT AWARDS 2018への応募の話です)

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Azure&C#によるClovaスキル+LINE Bot短期開発

  1. 1. Azure&C#による Clovaスキル+LINE Bot短期開発 .NET Conf 2018 Tokyo, Japan <Unconference> Takumasa Hirabayashi
  2. 2. 自己紹介 • Name • 平林 拓将(ひらりん) • Work • Webシステム開発&技術系研修講師 • Like • C# / Xamarin / Groovy / Grails / Web / DB / Azure / LINE • Social • Twitter:@himarin269 • Blog:http://himanago.hatenablog.com/
  3. 3. スマートスピーカー使ってますか? https://trendy.nikkeibp.co.jp/atcl/column/17/022800073/022800001/
  4. 4. 当たりました http://cp.glico.jp/pretz2018cp/
  5. 5. せっかくなので何かスキルを作りたい!
  6. 6. https://www.line-community.me/awards/about • LINE BotやClovaスキルの開発コンテスト • グランプリは賞金1000万円
  7. 7. LINE BOOT AWARDS 2018にエントリーしてみました • 9/23(日) 当選したClova Friendsを受け取る • 10/2(火) Cogbot勉強会参加 • 10/4(木) Clovaスキルで作りたいものを思いつく • 10/6(土) 開発(Clovaスキル開発) • 10/7(日) 開発(もくもく会参加。LINE Bot開発) • 10/8(月) 開発(Clova+Botの結合) • 10/10(水) [応募締切日] 開発作業は 実質4日間 Azureを活用してClovaとLINEを連携したシステムを 実質4日間で作った経験談をさせていただきます 開発仕上げ・資料づくり
  8. 8. つくったもの 「Clova&LINEで絵本読み聞かせ」 Clovaデバイス LINEアプリ 昔々あるところに… • Clovaがお話を読み、その場面の絵を読み上げに合わせてLINEに送ってくれる! • 読み上げ音声は登場人物や場面によって異なる声/話し方! 連動! ねぇClova、 “絵本読み聞かせ” を開いて “桃太郎”を 読んで
  9. 9. デモ https://www.youtube.com/watch?v=1gh6XSDtip4
  10. 10. Clovaスキル開発の基本 • CEK(Clova Extension Kit)がユーザーの発話と処理をつなぐ CEK Extension サーバー (任意の環境) • 対話モデルの定義 • ユーザーの発話を解釈し、インテント (意図)やスロット(変数)の値などを Extensionサーバーに渡す • Extensionサーバーから送り返された内 容をClovaデバイスにしゃべらせたり、 音楽を流させる Clovaデバイス • CEKで定義したインテント ごとの処理を開発 • HTTP通信ができれば好きな 環境/言語でOK
  11. 11. LINE Bot開発の基本 • Messaging APIが「Reply」と「Push」それぞれで仲介を行う バックエンド サーバー (任意の環境) • ユーザーからのメッセージをそのまま バックエンドに送り、バックエンドから の要求に沿ってユーザーに返信のメッ セージを送るReply API • 任意のユーザー/グループに対してメッ セージを送るPush API • 豊富なメッセージ形式から選べる • Messaging APIから送られ るメッセージを解釈し、そ の内容に応じた処理を実施 • 任意のタイミングで Messaging APIにPush要求 を行う処理 LINEアプリ Messaging API
  12. 12. 今回のシステム構成 CEK Messaging API Functions バックエンド全般 Blob Storage 画像格納用 Cosmos DB 読み上げ文章データ 読み上げ 音声合成 Clovaデバイス LINEアプリ
  13. 13. AzureでLINE開発 ~ ① Azure Functions • BotもClovaスキルもカバーできる • レスポンスが気になるのでApp Serviceプランで作成 • LINE Payと連携する場合は必須? • 場合によってはDurable Functionsで複雑な処理も作れる • デバッグはけっこう大変 • リモートデバッグは使えない • タイムアウトしてしまう • よく迷子になる • log.Info、log.Errorなどを利用 • シミュレーターもあるとのこと
  14. 14. AzureでLINE開発 ~ ② Blob Storage • Blob StorageとBotのメディア系メッセージは相性がいい • 画像メッセージなどを送る際はバイナリデータではなくURL指定 • Blob Storageに格納したデータはURLアクセスさせることができるのでBotで画像を 送ったりすることがとても楽 • Blob StorageもCosmos DBも Azure Storage Explorerから操作できる
  15. 15. AzureでLINE開発 ~ ② Blob Storage • イメージマップメッセージを使う場合 • LINEのトーク画面に大きな画像を表示し、画像をタップした際のアクションなどを 定義できるメッセージ • デバイスの幅に合わせた画像の用意が必要(240px, 300px, 460px, 700px, 1040px) • それぞれ「baseUrl/{画像の幅サイズ}」の形式でアクセスできるようにする 画像ファイルのファイル名を「240」「300」など 拡張子なしにして絵ごとにディレクトリを分けて保存
  16. 16. C#で開発する際の注意事項 • 公式がC# SDKを用意していない • 公式で用意している • Messaging API→Java, PHP, Go, Perl, Ruby, Python, Node.js • CEK→Node.js , Python, Java, Swift, Kotlin, Elixir, Go • Alexa(Amazon)に勝ちたいならAzureと仲良くしても損はないのでは? • コミュニティSDKがあるので、それを利用する • 対応している機能がない場合などはその部分だけ自前で実装 • コミュニティSDKの発展に貢献していくことも重要
  17. 17. おわりに • Azureを使うと各バックエンドが簡単に用意できる • 特に開発者がプログラミングに注力できるサーバーレスは◎ • 今回作った関数は3つ、コード行数は全部で700行くらい • 締め切りや目標があると頑張れる • 短い期間でもAzureで手軽に実現できた • 開発者が集まるホットな技術分野は楽しい • 周辺ツールやSDK、開発Tipsなどコミュニティの充実も

×