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.

DroidKaigi 2018 - Dialogflow for Android

1,672 views

Published on

詳細: https://goo.gl/ztWXLk

Published in: Software
  • Be the first to comment

DroidKaigi 2018 - Dialogflow for Android

  1. 1. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem Dialogflow for Android fish(@canoefishing)
  2. 2. サーバーサイドのエンジニアをしています。 GDG, GCPUG, FJUGといった開発グループのスタッフをしています。 フットワーク軽めなので気軽に話しかけてください♪ 好きなもの: Android, Dialogflow, Actions on Google, GCP, iOS コミュニティ: GDG, GCPUG, FJUGfish twitter: @canoefishing Qiita: flatfisher
  3. 3. エンジニアを募集しています! ピンと きたら! 自社サービス Python GCP AWS 深層学習 機械学習 スタートアップ SENSY wantedly または https://sensy.ai/
  4. 4. DialogflowのForum(Q&A)で信頼レベル2までいきました https://discuss.api.ai
  5. 5. 現在はGoogleプロダクトフォーラムに移動しました https://productforums.google.com/forum/#!forum/dialogflow
  6. 6. Qiitaで記事を書いてます https://qiita.com
  7. 7. 目次 ● Dialogflowとは? ● Dialogflowの使い方 ● Android SDK for Dialogflow ● Dialogflow Tips
  8. 8. 目次 ● Dialogflowとは? ● Dialogflowの使い方 ● Android SDK for Dialogflow ● Dialogflow Tips
  9. 9. 目次 ● Dialogflowとは? ● Dialogflowの使い方 ● Android SDK for Dialogflow ● Dialogflow Tips
  10. 10. 目次 ● Dialogflowとは? ● Dialogflowの使い方 ● Android SDK for Dialogflow ● Dialogflow Tips
  11. 11. Dialogflowとは?
  12. 12. Dialogflow ● 自然言語処理を提供しているサービス ● チャットボットを簡単に作成することができるサービス
  13. 13. Dialogflowのすごいところ ● コードを書かずに自然言語処理の実装ができる ● 対応言語が豊富 ● あらゆるチャットボットサービスに対応 ● SDKが豊富 ● アナリティクス機能(設定不要)
  14. 14. できること&できないこと(BMIを計算するBOTの例) ● ユーザーの発言から特定の文字を取得する ○ 身長や体重を取得したい ● ユーザーが身長と体重を答えるまで聞き返す ● 取得した身長と体重からBMIを計算する
  15. 15. できること&できないこと(BMIを計算するBOTの例) ● ユーザーの発言から特定の文字を取得する ○ 身長や体重を取得したい できる ● ユーザーが身長と体重を答えるまで聞き返す できる ● 取得した身長と体重からBMIを計算する できない
  16. 16. Dialogflowは必要な値を取得するところまで、計算処理はサーバーで! BMIを知りたい 身長は? 182cmです 体重は? 79kgです 身長と体重を送信 BMIは23です BMIは23です
  17. 17. できること&できないこと まとめ ● 会話の分析や静的な処理ができる ○ 発言からユーザーが何をしたいのかを分析 ■ ユーザーは挨拶をしたいのか ■ ユーザーは航空券を検索したいのか ■ ユーザーは音楽を聞きたいのか ○ ユーザーの発言にどんなパラメータが入っているか分析 ■ メールアドレス、身長、体重、日時、通貨... ○ BOTに必須パラメータがあれば発言するまで聞き返す ■ BMIを計算するBOTの場合、身長と体重を言うまで聞き返す ○ 答えが決まっている会話 ■ 「こんにちは」と言われたら「こんにちは」と返す ● 動的な処理ができない ○ BMIの計算 ○ 航空券の検索や予約
  18. 18. Dialogflowの使い方
  19. 19. Dialogflowを使う流れ ● Google アカウントでログイン ● Agentの作成 ● 3つの基本機能をおさえる ○ Intent ○ Entity ○ Fulfillment ● 作成したAgentをSNSなどに連携 ○ Facebook, Slack, LINEなど ○ 今回はAndroidアプリに連携
  20. 20. Googleアカウントでログイン! https://console.dialogflow.com
  21. 21. Agentの作成
  22. 22. おさえたい3つの機能 ● Intent ● Entity ● Fulfillment
  23. 23. Intent - 会話の設計 ● 会話を開始する文(トリガー)を決める ○ 「こんにちは!」 ○ 「BMIを知りたい」 ○ 「肉とじゃがいもで作れる料理は?」 ● 会話を成立させるための条件を決める ○ 身長と体重を必須にする ● レスポンス ○ 答えが既に決まっている場合 ■ 「こんにちは」と返す ○ 答えが決まっていない場合 ■ BMIの計算やレシピ取得はサーバーにお願いする
  24. 24. 1つの目的につき、1つのIntentを作成 ● 挨拶をするIntent ● BMIを計算するIntent ● レシピを検索するIntent 挨拶 BMI レシピ
  25. 25. 発言に応じて適切なIntentに案内してくれる 挨拶 BMI レシピ BMIを知りたい 身長と体重は?
  26. 26. Intentを作成してみる
  27. 27. おはようIntentを作成してみる
  28. 28. Intentの動作確認
  29. 29. Dialogflowは学習する!
  30. 30. 謎のIntentが2つある
  31. 31. Default Welcome Intent
  32. 32. Default Fallback Intent
  33. 33. Entity - パラメータ ● 文章から特定の単語を取り出すための辞書 ○ メールアドレス ● 標準的なものは既に用意されている ○ 時間,通貨,メールアドレスなど ● ユニークなワードも自分で作成可能 ■ お店のメニュー ■ 商品名
  34. 34. Fulfillment - サーバー情報の入力 ● サーバーの情報を登録する場所 ● HTTPS POST 通信 ● 登録できる情報 ○ URL ○ BASIC 認証 ○ HEADER ○ DOMAINS
  35. 35. キャンセル待ちを登録するBotを作成してみる
  36. 36. キャンセル待ちに必要な情報 ● メールアドレス
  37. 37. キャンセル待ちに必要な情報 ● メールアドレス ● 興味のあるトピック
  38. 38. Intentの作成
  39. 39. 必須情報の登録
  40. 40. 必須チェックを入れる
  41. 41. PROMPTS(質問文言)を入れる
  42. 42. レスポンスを登録
  43. 43. テスト
  44. 44. 余計なことを入れても
  45. 45. メールアドレスを入れると
  46. 46. Entityの作成 - 興味のあるトピック
  47. 47. 同じようにEntityを登録
  48. 48. 複数回答可にする
  49. 49. テスト
  50. 50. ユーザーから取得できた情報
  51. 51. Dialogflow for Android
  52. 52. Dialogflow Android SDK https://github.com/dialogflow/dialogflow-android-client
  53. 53. 主な機能 ● AIDataService ○ Text Sample ● AIService ○ Service Sample ● AIButton ○ Button Sample ● AIDialog ○ Dialog Sample
  54. 54. AIDataService
  55. 55. AIService
  56. 56. AIButton
  57. 57. AIDialog
  58. 58. Androidアプリにチャットボットを導入してみる
  59. 59. チャットボット導入の流れ ● チャット画面の作成 ○ EditText ○ Button ○ ScrollView ● AIDataServiceの準備 ○ Dialogflowと接続 ■ AccessTokenと言語を設定
  60. 60. ライブラリ選定 - ChatMessageView https://github.com/bassaer/ChatMessageView
  61. 61. ライブラリ選定 - ChatMessageView https://github.com/bassaer/ChatMessageView
  62. 62. ChatMessageViewの準備: アイコンや名前を設定
  63. 63. AIDataServiceの準備: Client access tokenと言語を登録 Client access token
  64. 64. リスナーの動き ● 送信ボタンをクリック ● EditTextの文字をAIDataServiceにセット&リクエスト ● Dialogflowからの結果をChatMessageViewに反映
  65. 65. チャット画面を更新&Dialogflowにリクエストを投げる
  66. 66. Dialogflowの結果をChatMessageViewに反映
  67. 67. アプリのフロー 「こんにちは」と入力 「こんにちは」 「こんにちは」 「こんにちは」 ChatMessageView 相手の発言に反映 AIDataService 挨拶Intet発動
  68. 68. テスト
  69. 69. サンプルアプリ https://github.com/flatfisher/android-dialogflow-chatbot-sample
  70. 70. Dialogflow Tips
  71. 71. 料金プランはあるの? ● Dialogflow Standard Edition ○ 無料 ○ APIリクエスト数に制限がある ○ APIリクエストが少ない小規模なプロジェクトやDialogflowを試したい人向け ○ コミュニティと電子メールによるサポート ● Dialogflow Enterprise Edition ○ 従量課金制 ○ APIリクエスト数に制限が無い ○ 大規模なプロジェクト向け ○ コミュニティ、電子メール、Google Cloudサポートによるサポート
  72. 72. 教材やQ&Aは? ● 公式リファレンス ○ https://dialogflow.com/docs/getting-started/basics ● Qiita ○ https://qiita.com/tags/dialogflow ● 公式Q&Aフォーラム ○ https://productforums.google.com/forum/#!forum/dialogflow ● Stack Overflow ○ https://stackoverflow.com/questions/tagged/dialogflow ● GCPUG Slack ○ dialogflow_ja ○ assistant_ja ○ 招待フォーム ■ https://goo.gl/TFxUNC ● GDG Ishinomaki Slack ○ 招待フォーム ■ https://goo.gl/PRCiHw
  73. 73. Google+ Dialogflow コミュニティ
  74. 74. Entity自動生成ライブラリ https://github.com/flatfisher/flounder
  75. 75. Entity自動生成ライブラリ https://github.com/flatfisher/flounder
  76. 76. https://goo.gl/ztWXLk Qiitaにまとめを書きました
  77. 77. Thank you

×