Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

出席の確認にこちらからログインしてください。 IBM Cloud へのアクセスは上記URLから行ってください https://ibm.biz/dojo201021 • IBM Cloud ログイン アカウントをすでにお持ちの方は、 こちらからログインしてください • IBM Cloud ライトアカウント作成 アカウントをお持ちでない方は、 ご登録をお願いします 【本⽇のお願い】

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

データのダウンロード http://ibm.biz/dojo201021d

Slide 7

Slide 7 text

学習の⽬的とゴール ⽬的 Watson Assistantを使ったチャットボットの作り⽅を理解す る ゴール Rwatson Assistantを使ってチャットボットの会話フローを作 成する。Slackでそのフローに連携、チャットボットを作成す る。 このコースを学ぶ⽅の想定スキル 初めてチャットボット作成を⾏う⽅

Slide 8

Slide 8 text

本⽇のタイムテーブル 14:00-14:20 (15分) Watson Assistant 概要説明 14:20-15:00 (40分) Watson Assistantハンズオン (Watson Assistantで会話フローの作成、Slackとの連携) 15:00-15:15 (15分) Q & A

Slide 9

Slide 9 text

今回使⽤する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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

© 2017 International Business Machines Corporation 今は第三次AIブーム 12 IBM Watson事業部 / Watson⼊⾨ コレ1枚でわかる第3次AIブームとデータ流通量, http://blogs.itmedia.co.jp/itsolutionjuku/2017/04/3ai.html

Slide 13

Slide 13 text

エキスパートシステム(専⾨分野に特化した⼈⼯知能) 「エキスパートシステム」は、あらかじめ「if〜then」(もし〜ならばこうする)をたくさん⽤意し ておく 参照︓⼈⼯知能と機械学習の違いって︖ (NTTレゾナントxサイボウズ) https://www.slideshare.net/shuyo/ai-vsmlpublic-72939220 プログラムのフロー

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

© 2020 International Business Machines Corporation 16 IBM Data and AI Assistantを構成する3つの要素 • インテント(Intents)〜 「動詞」に該当 – Assistant インスタンスが処理すべき、ユーザーが⼊⼒したテキストに含まれる「⽬的」 が Intents(意図)です。Assistant サービスは、意図分類器により⼊⼒テキストを分類し、 ユーザーが求めている意図を理解します。 • エンティティ(Entities)〜「⽬的語」に該当 – Assistantインスタンスがユーザーの⼊⼒テキストから抽出すべきキーワードのリストが Entities(エンティティ)です。⼊⼒テキストから抽出されたエンティティは、ユーザーの 「⽬的」の対象物を⽰したりします。このエンティティ情報を合わせることで、 Assistantサービスはユーザーの要求を完全に理解します。 • ダイアログ・ノード(Dialog)〜「処理フロー」に該当 – Dialog(ダイアログ)はユーザー要求(意図とエンティティ)とそれに対する回答の組み合 わせです。1回のやり取りのためのひとつのダイアログ・ノードのであることも、複数の 会話のやり取りのための⽊構造となったダイアログ・ノードもあります。 – 曖昧なリクエストで不明な情報を補完するために複数の会話のやり取りを使⽤すること があります。 Watson Assistantは機械学習、プログラムのフローの両⽅を使ってチャットボットを作ります。

Slide 17

Slide 17 text

17 照会・応答系アプリケーション 適⽤事例 ⼤⼿銀⾏ Webチャット形式の⾃動対話応答機能 “バーチャルアシスタントChatサービス” を開始 ⾷品会社 マルチ・チャネル対応の対話型⾃動応答 によるお客様サポート “A⾷品・チャット・アシスタント”を開 始 航空会社 ⾚ちゃん同伴のハワイ旅⾏の不安を解消 “JALバーチャルアシスタントサービス” 開始 LINE コールセンター モバイル タブレット PC コーヒー マシーン IBM Watson

Slide 18

Slide 18 text

© 2020 International Business Machines Corporation 18 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 今⽇の内容

Slide 19

Slide 19 text

さっそくWatson Assistantを作成しましょう︕ ①カタログを選択 ②サービスを選択 ④Watson Assistantを選択 ③AI/Machine learning選択

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

最初にAssistantを作りましょう 26 Group Name / DOC ID / Month XX, 2018 / © 2018 IBM Corporation

Slide 27

Slide 27 text

名前(任意)を入れて”Create assistant” 27

Slide 28

Slide 28 text

Skillを追加します 28

Slide 29

Slide 29 text

Import skillで先ほどダウンロードしたファイルをインポートしてください。 (Weather.json) 29 Importできたら左上のIBM Watson Assistant をクリックしてください。

Slide 30

Slide 30 text

今作成したskillをクリック 30

Slide 31

Slide 31 text

Intentsを見ていきましょう。 31

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

どこの天気が見たいかを聞くために Entity があります。 34 Group Name / DOC ID / Month XX, 2018 / © 2018 IBM Corporation

Slide 35

Slide 35 text

Dialogで会話をどのように作られているかみていきましょう。 35

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

試してみてください。 39

Slide 40

Slide 40 text

できたボットを他のサービスと連携しましょう。 40 Group Name / DOC ID / Month XX, 2018 / © 2018 IBM Corporation Web Chat (Web siteへの チャットの埋め込み) ⼈間の エージェント 天気を知りたい どこの天気を お調べしますか?

Slide 41

Slide 41 text

IBM Developer Advocacy 2020 Watson AssistantͱSlackͷ࿈ܞ

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

IBM Developer Advocacy 2020 Add integrationͰ࿈ܞ࡞੒

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

IBM Developer Advocacy 2020 Add an Oauth Scopeに以下を追加 •app_mentions:read •chat:write •im:history •im:read •im:write Slack画面 Oauth & Permissions 追加後

Slide 49

Slide 49 text

IBM Developer Advocacy 2020 クリック(次ページで“許可する”をクリック Watson Assistant画面 Bot User Oauth Access Token をコピペ

Slide 50

Slide 50 text

IBM Developer Advocacy 2020 ΋͏Ұଉ Slack画面 Event Subscriptions クリック

Slide 51

Slide 51 text

IBM Developer Advocacy 2020 クリック Watson Assistant画面 Slack画面 URL をコピペ 数秒まつとVerified と出ます。

Slide 52

Slide 52 text

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”をクリック

Slide 53

Slide 53 text

IBM Developer Advocacy 2020 ΋͏ͪΐͬͱʂ クリック、そのままSave Slack画面 App Home クリックしてOnにする

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

免責事項 59 IBM Dojoは、開発者の⽅を対象に、IBM Cloudを主とした技術情報をお伝えする⽬的で開催して います。講師や運営スタッフにより、開催毎に最適と判断した内容でお届けしています。 現在、ハンズオンを伴う講義はお客様の費⽤負担がない環境と⼿順でご案内しています。 講義終了後、想定外の費⽤が発⽣しないよう、不要になりました制作物はお客様ご⾃⾝で削除を お願いいたします。講師陣はみなさまの利⽤状況を確認することはできません。 ご理解とご協⼒をお願いいたします。 削除⽅法については講義内にご案内いたします。 ご不安な点がございましたら、当⽇確認をお願いいたします。 講義終了後のご請求のお問い合わせにつきましては、弊社サポートセンターまで、次のいづれか の⽅法でお問い合わせください。 IBM Cloudダッシュボードの「サポート」メニューから「Case」を作成してください IBM Cloudサポートセンター「相談する」ボタンからチャットまたは電話でご連絡ください https://www.ibm.com/jp-ja/cloud/support ご参加ありがとうございました。