Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

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

797 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Ingenieurwesen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

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などコミュニティの充実も

×