Watson Assistantを使ってチャットボットを作ろう!

9ea422a61c1a69c888786830eee3dbe6?s=47 osonoi
July 28, 2020

Watson Assistantを使ってチャットボットを作ろう!

Watson Assistantを使ってチャットボットを作ろう!

9ea422a61c1a69c888786830eee3dbe6?s=128

osonoi

July 28, 2020
Tweet

Transcript

  1. IBM Developer Dojo Watson Assistantを使ってチャットボットを作ろう! Yasushi Osonoi

  2. ⼩薗井 康志(Yasushi Osonoi) Developer Advocate IBM @osonoi フォロー、友達リクエストはお気軽に︕

  3. 出席の確認にこちらからログインしてください。 IBM Cloud へのアクセスは上記URLから行ってください https://ibm.biz/BdqVXb • IBM Cloud ログイン アカウントをすでにお持ちの方は、

    こちらからログインしてください • IBM Cloud ライトアカウント作成 アカウントをお持ちでない方は、 ご登録をお願いします 【本⽇のお願い】
  4. 質問&ライブ投票参加 はこちら slido.com #dojo0729 質問タブで質問⼊⼒ ⾃分も知りたい質問には 「いいね」をプッシュ! スマホでもアクセスできます https://app.sli.do/event/ml5kmhbn PC,マックの場合は

  5. 質問する場合はこちらから

  6. 今回使⽤するIBM Watson API – Watson Assistant Watson Assistant アプリケーションに⾃然⾔語インターフェースを追加して エンドユーザとのやり取りを⾃動化

    Text to Speech テキスト⽂章を⾳声に変換する Speech to Text ⾳声をテキスト⽂章に変換する Visual Recognition 画像コンテンツに含まれる意味を検出する Discovery 先進的な洞察エンジンを利⽤して、デー タの隠れた価値を解明し、回答やトレン ドを発⾒する Discovery News Discovery上に実装され、エンリッチ情報 も付加されたニュースに関する公開デー タセット Personality Insights テキストから筆者の性格を推定する Language Translator テキストを他⾔語へ翻訳を⾏う Natural Language Understanding ⾃然⾔語処理を通じてキーワード抽出、エン ティティー抽出、概念タグ付け、関係抽出な どを⾏う Natural Language Classifier テキスト⽂章の分類を⾏う(質問の意図推定など) Tone Analyzer(⽇本語未対応) テキストから筆者の感情、社交性、⽂体を解析 Knowledge Studio コーディングなしに、業務知識から⽣成した 機械学習モデルで、⾮構造テキストデータか ら洞察を取得(学習⽀援ツール) ⼼理系 ⾔語系 照会応答系 知識探索系 ⾳声系 画像系 https://www.ibm.com/watson/jp-ja/developercloud/services-catalog.html
  7. © 2020 International Business Machines Corporation Watsonの照会応答システム 〜 Watson Assistant

    IBM Data and AI 7 • 対話アプリケーションを機械学習や⾃然⾔語解析 の技術を使⽤して開発するためのプラットフォー ム • チャット・ボットやコール・センター⽀援 • Intent, Entity, Dialogの3つの機能要素を組み 合わせて対話アプリケーションを構築 • 統合されたGUIベースの開発・継続学習ツール Assistant Conversation Virtual Agent
  8. © 2020 International Business Machines Corporation 8 IBM Data and

    AI Assistantによるユーザー対話処理 • Assistantはチャットボットを実装するためのAPIです。 • 対話ユーザーの発⾔の⾔い回しなどの多様なバリエーションの解釈含めて単独のサービスとして 提供します。 • ユーザーの意図理解のため、意図分類器を使っています。 Assistant ログイン出来ません ログインの意図 ログイン出来ません ① ⼊⼒メッセージの受信 ② Assistantの呼び出し ⼊⼒メッセージを渡して 対応する返答メッセージ を受け取る ③ 出⼒メッセージの送信 XXお客様サポートへのログイ ンでよろしいでしょうか︖ ⾊々な⾔い回し “ログインができない” “ログインが失敗するけど” XXお客様サポートへの ログインでよろしいで しょうか︖ チャットボット ⼊⼒された内部的な意図に対 する応答メッセージを返す ⼊⼒された⾃然⾔語 に対する学習された 意図を内部的に返す 会話のやりとりを通じてコンテキストを決めていく仕組み → ボットの実現に向いた仕組み
  9. © 2017 International Business Machines Corporation 今は第三次AIブーム 9 IBM Watson事業部

    / Watson⼊⾨ コレ1枚でわかる第3次AIブームとデータ流通量, h'p://blogs.itmedia.co.jp/itsolu:onjuku/2017/04/3ai.html
  10. エキスパートシステム(専⾨分野に特化した⼈⼯知能) 「エキスパートシステム」は、あらかじめ「if〜then」(もし〜ならばこうする)をたくさん⽤意し ておく 参照︓⼈⼯知能と機械学習の違いって︖ (NTTレゾナントxサイボウズ) https://www.slideshare.net/shuyo/ai-vsmlpublic-72939220 プログラムのフロー

  11. 機械学習とは 訓練データ 学習器 分類・予 測・結果 学習モデル データ データ

  12. 機械学習とは 訓練データ 学習器 分類・予 測・結果 学習モデル データ データ 天気予報を知りたい 明⽇のの天気はどう︖

    天気予報を知りたい
  13. © 2020 International Business Machines Corporation 13 IBM Data and

    AI Assistantを構成する3つの要素 • インテント(Intents)〜 「動詞」に該当 – Assistant インスタンスが処理すべき、ユーザーが⼊⼒したテキストに含まれる「⽬的」 が Intents(意図)です。Assistant サービスは、意図分類器により⼊⼒テキストを分類 し、ユーザーが求めている意図を理解します。 • エンティティ(Entities)〜「⽬的語」に該当 – Assistantインスタンスがユーザーの⼊⼒テキストから抽出すべきキーワードのリストが Entities(エンティティ)です。⼊⼒テキストから抽出されたエンティティは、ユーザーの 「⽬的」の対象物を⽰したりします。このエンティティ情報を合わせることで、 Assistantサービスはユーザーの要求を完全に理解します。 • ダイアログ・ノード(Dialog)〜「処理フロー」に該当 – Dialog(ダイアログ)はユーザー要求(意図とエンティティ)とそれに対する回答の組み合 わせです。1回のやり取りのためのひとつのダイアログ・ノードのであることも、複数の 会話のやり取りのための⽊構造となったダイアログ・ノードもあります。 – 曖昧なリクエストで不明な情報を補完するために複数の会話のやり取りを使⽤すること があります。 Watson Assistantは機械学習、プログラムのフローの両⽅を使ってチャットボットを作ります。
  14. 14 照会・応答系アプリケーション 適⽤事例 ⼤⼿銀⾏ Webチャット形式の⾃動対話応答機能 “バーチャルアシスタントChatサービス” を開始 ⾷品会社 マルチ・チャネル対応の対話型⾃動応答 によるお客様サポート

    “A⾷品・チャット・アシスタント”を開 始 航空会社 ⾚ちゃん同伴のハワイ旅⾏の不安を解消 “JALバーチャルアシスタントサービス” 開始 LINE コールセンター モバイル タブレット PC コーヒー マシーン IBM Watson
  15. © 2020 International Business Machines Corporation 15 IBM Data and

    AI Watson Assistantを活⽤したアーキテクチャ AssistantのAPIとしての利⽤イメージは下図のようになります。 • スキル が API の中⼼となり、会話フローに必要な構成を定義します。 • アシスタントは インテグレーションを通して、スキルをエンドユーザーに提供します。 • インテグレーションはエンドユーザー向けのUI層で、カスタム開発の他に、ビルトインでも提供さ れいます。 エンド ユーザー Built-in Custom アシスタント スキル 外部 システム Watson Assistant Watsonサービス IBM Cloud Functions インテグレーション Speech to Text Text to Speech Tone Analyzer 今⽇の内容
  16. さっそくWatson Assistantを作成しましょう︕ ①カタログを選択 ②サービスを選択 ④Watson Assistantを選択 ③AI/Machine learning選択

  17. 作成をクリックしてください 17 ライトが選択されているのを確認してください。

  18. Watson Assistantの起動ですぐに使えます 18 クリックすると別タブでWatson Assistantが起動します

  19. 19 その前に確認してください。 IntentsではなくActionが表示されている。 作業の前に

  20. *もしこのような画面が出てきたら設定が必要です。 20 IntentsではなくActionが表示されている。

  21. 右の2つをクリックしてください。 21 ①クリック ②クリック Revert to Standard

  22. 今回作るのはこんな会話ができるボットです。 予め作成されている会話を読み込んでみましょう。 22 Watson Assistantでは予め作成した応答内容 をjson形式で保存しておくことができます。

  23. 最初にAssistantを作りましょう 23 Group Name / DOC ID / Month XX,

    2018 / © 2018 IBM Corporation
  24. 名前(任意)を入れて”Create assistant” 24

  25. Skillを追加します 25

  26. 新しいskillを作成 26 任意の名前 日本語にする のを忘れずに 最後に “Create dialog skill”をクリック

  27. 今作成したskillをクリック 27

  28. 28 をクリックしてImportを選択 Weather.jsonを選択してください。 ファイルの読み込み ファイルはこちらにあります。https://bit.ly/20200729WA または https://github.com/osonoi/watson_assistant_example

  29. Intentsを見ていきましょう。 29

  30. 例えば#weather 30 Watsonはこれらに近い質問がきたらその 質問はWeatherに関する質問だと理解

  31. 試してみましょう! 31 今日の天気はどう? と入れてみる。入力した質問にはない質問 しかしWatsonはこの質問はWeatherだと理解してくれた。

  32. どこの天気が見たいかを聞くために Entiy があります。 32 Group Name / DOC ID /

    Month XX, 2018 / © 2018 IBM Corporation
  33. Dialogで会話をどのように作られているかみていきましょう。 33

  34. 質問者が挨拶(greeting)をしてきたら “いらっしゃいませ。 ご用件を入力してください”と答える 34

  35. 天気の質問がきたら“どこの天気をお調べしますか?”と答える 35

  36. 続いてどの場所の天気が知りたいかの設定 36

  37. 試してみてください。 37

  38. できたボットを他のサービスと連携しましょう。 38 Group Name / DOC ID / Month XX,

    2018 / © 2018 IBM Corporation Web Chat (Web siteへの チャットの埋め込み) ⼈間の エージェント 天気を知りたい どこの天気を お調べしますか?
  39. IBM Developer Advocacy 2020 Watson AssistantͱSlackͷ࿈ܞ

  40. IBM Developer Advocacy 2020 AssistantsͱSlackΛ࿈ܞ͍͖ͯ͠·͠ΐ͏ɻ ①クリック ②クリック

  41. IBM Developer Advocacy 2020 Add integrationͰ࿈ܞ࡞੒

  42. IBM Developer Advocacy 2020 ͪ͜ΒͷεςοϓͰ࿈ܞ͕ՄೳʹͳΓ·͢ɻ

  43. IBM Developer Advocacy 2020 SlackʹϩάΠϯͯ͠appsͷϖʔδʹߦ͍ͬͯͩ͘͞ https://api.slack.com/apps

  44. IBM Developer Advocacy 2020 任意の名前(ここではweather_bot) チャットボットを入れたいワーク スペースを選択 最後に”Create App”をクリック

  45. IBM Developer Advocacy 2020 Slack画面 Watson Assistant画面 Verification Tokenをコピペ

  46. IBM Developer Advocacy 2020 Add an Oauth Scopeに以下を追加 •app_mentions:read •chat:write

    •im:history •im:read •im:write Slack画面 Oauth & Permissions 追加後
  47. IBM Developer Advocacy 2020 クリック(次ページで“許可する”をクリック Watson Assistant画面 Bot User Oauth

    Access Token をコピペ
  48. IBM Developer Advocacy 2020 ΋͏Ұଉ Slack画面 Event Subscriptions クリック

  49. IBM Developer Advocacy 2020 クリック Watson Assistant画面 Slack画面 URL をコピペ

    数秒まつとVerified と出ます。
  50. IBM Developer Advocacy 2020 ここをクリックして展開 クリック •message.im: Listens for message

    events that are posted in a direct message channel. •app_mention: Listens for only message events that mention your app or bot. •を追加 追加後“Save Change”をクリック
  51. IBM Developer Advocacy 2020 ΋͏ͪΐͬͱʂ クリック、そのままSave Slack画面 App Home クリックしてOnにする

  52. IBM Developer Advocacy 2020 Slack ϫʔΫεϖʔεʹBot͕ग़ͯ͘ΔͷͰձ࿩Λ࢝Ί͍ͯͩ͘͞ɻ

  53. IBM Developer Advocacy 2020 Watson AssistantͱLINEͷ࿈ܞ https://www.slideshare.net/osonoi1/watsonassistant- chat-bot20200117

  54. IBM Developer Advocacy 2020 Watson Assistantͱwebͷ࿈ܞ https://qiita.com/ishida330/items/c0764d66306f9cab2c2b こちらを参照ください。

  55. IBM Developer Advocacy 2020 ͜ͷΑ͏ʹ΢ΣϒαΠτʹຒΊࠐΊ·͢ɻ https://qiita.com/osonoi/items/92f552385e946b1e5ac8

  56. 質問&ライブ投票参加 はこちら slido.com #dojo0729 質問タブで質問⼊⼒ ⾃分も知りたい質問には 「いいね」をプッシュ! スマホでもアクセスできます https://app.sli.do/event/ml5kmhbn PC,マックの場合は