Watson Assistant チャットボットと連携するアプリ開発体験(会話フロー作成・API会話編)
IBM DeveloperOnline1Embeddable AI Dojo #3ɿWatson Assistant νϟοτϘοτͱ࿈ܞ͢ΔΞϓϦ։ൃମݧ(ձϑϩʔ࡞ɾAPIձฤ)
View Slide
⽇本アイ・ビー・エム株式会社ύʔτφʔΞϥΠΞϯεࣄۀ෦ιϦϡʔγϣϯग़ϥϘソリューションアーキテクト松島 輝昌 [email protected]SI企業、医療機器メーカー、通信企業等でエンジニアとして研鑽。現在、⽇本IBMにてソリューション アーキテクトとして従事。twitter : @trtrbohzfacebook : https://www.facebook.com/Teru.MatsushimaLinked-in : https://www.linkedin.com/in/teruyoshi-matsushima2014年6⽉ E2D3 ver0.1 企画・設計・開発・構築⽇経ソフトウエア主催のOffice⽤アプリ開発コンテストにて特別賞受賞IBM Red Hat Synergy Go to Market © 2021 IBM Corporation⾃⼰紹介
"HFOEB1. Watson Assistant のおさらい2. Watson Assistant のHands-on環境準備3. Watson Assistant でチャットボット作成4. チャットボットとPythonで会話
తͱΰʔϧతΰʔϧ• Watson Assistant を使ってチャットボット構築を体験する• チャットボットから会話フローを切り取ってみる•Watson Assistant の会話フローを作成してみる•Python を使って会話フローを切り取ってみる
1 Watson AssistantWatson Assistant サービス概要https://www.youtube.com/watch?v=5tmTDLEYwj4顧客体験を向上させるバーチャル・エージェントIBM Watson Assistant
8BUTPO"TTJTUBOUͱϢʔβʔͱίϯϐϡʔλʔͷରΛՄೳʹ͢Δ։ൃπʔϧࣗવݴޠͰͷ͍߹ΘͤΛཧղ͠ɺదͳճΛฦ͢6ސ٬ νϟωϧ ղܾμΠΞϩά ݕࡧ ΤʔδΣϯτεΩϧϧʔςΟϯά͋Γ͖ͨΓͳνϟοτϘοτͰ͋Γ·ͤΜ*#.8BUTPO"TTJTUBOUσʔλɾϓϥΠόγʔΛอূ͢Δͱಉ࣌ʹϓϩΞΫςΟϒͰύʔιφϥΠζ͞ΕͨαʔϏεΛఏڙ͢Δ͜ͱͰɺاۀͷϒϥϯυɾϩΠϠϧςΟʔͷ্ސ٬ମݧͷมֵΛࢧԉ͢Δاۀ͚ਓೳ "*ΤʔδΣϯτͰ͢ɻ"*ͷಛl ڝ߹ΑΓগͳ͍σʔλͰֶश͢Δl ෆ͔֬ͳ߹ʹ͍͋·͍͞Λআڈ͢Δl τϐοΫΛม͑ΒΕΔl γεςϜΛվળ͢Δํ๏ΛఏҊ͢Δճ࣭ͷ্ֶशɾӡ༻ͷෛՙܰݮAI౷߹౷߹ͷಛl ସखஈͱͯ͠ݕࡧ 8BUTPO%JTDPWFSZ·ͨਓؒͷΤʔδΣϯτΛར༻͢Δl ΦϜχνϟωϧʹରԠ͢Δl ύϒϦοΫɾΫϥυͱΦϯϓϨϛεͷ͍͔ͳΔΠϯϑϥετϥΫνϟʔʹσϓϩΠͰ͖ΔϢʔβʔମݧͷ্
γϯϓϧͰײతͳΠϯλʔϑΣʔεԾΞγελϯτߏஙͷҰ࿈ͷ࡞ۀΛφϏήʔτ͢Δϝχϡʔߏ7#VJMEձϑϩʔͷఆٛɺυϥϑτڥͰݕূ%FQMPZ࡞ͨ͠ΞγελϯτΛຊ൪ڥʹެ։*NQSPWFձͷੳΛߦ͍ΞγελϯτΛվળ
2 Watson Assistant の Hands-on 環境準備
IBM Cloud ①1. IBM Cloud (https://cloud.ibm.com/)に IBM Id を使ってサインイン2. ポータルサイトにて「カタログ」をクリック
IBM Clouc ②3. 「カタログ」欄に“assistant”と⼊⼒。表⽰される製品の中で「Watson Assistant」を選択。4. ロケーション、料⾦プランを確認し、同意後「作成」ボタンをクリック“assistant”と⼊⼒表⽰される「Watson Assistant」を選択①「ロケーションの選択」︓東京(jp-tok)②「ライト」に✓がついていることを確認③「以下のご使⽤条件を読み・・・」に✓④「作成」ボタンをクリック
IBM Cloud ③5. Assistant起動画⾯“Watson Assistant の起動”をクリック
「Assistant name」︓myproject(任意)「Assistant language」: Japanese(任意)今回はPrersonalize以下割愛のため左上のをクリックIBM Cloud ④
3.1. アプリ開発体験l テーマ︓Assistant でチャットボットを構築する⽅法を体験l コードのURLhttps://github.com/Teruyoshi-Matsushima/WatsonAssistantExample
「Create action」をクリックし、次に開くダイアログで「天気」と⼊⼒①②3.1. action作成
3.1. 問い合わせ①作成枠内をクリックし「天気予報をお調べします。どこの天気をお調べしますか︖」と⼊⼒
①②③④3.1.問い合わせ①作成 - ユーザーレスポンス定義①「Define customer response」をクリック②「Options」をクリック③「東京」「⼤阪」「札幌」を⼊⼒し、Applyをクリック④「New step +」をクリック
①② ③3.1. 問い合わせ②作成「〇〇の天気をお調べします。」と記載したい。〇〇には『1天気予報をお調べします。どこの天気』の回答を持ってきたい
『1天気予報をお調べします。どこの天気』のあとに「の天気をお調べします。」と記載。次に「いつの天気をおしらべしますか︖」と⼊⼒。①②”Define customer response“をクリック3.1. 問い合わせ②作成”今⽇“”明⽇“を⼊⼒し、下のApplyをクリック③
3.1. 問い合わせ③作成
3.1. 会話終了
こんな感じのダイアログ
4 Watson Assistant からAPIを使って会話を取得• python, nodeのサンプルhttps://cloud.ibm.com/docs/watson-assistant?topic=watson-assistant-api-client&locale=ja&code=python• Watson SDK (Java, Node.js, Python, .NET)https://cloud.ibm.com/docs/watson?topic=watson-using-sdks&locale=ja
4.1. APIを使⽤したカスタムクライアント(python)作成1. python3 watson_create_session.pyセッションIDを取得2. python3 watson_send_message_1.py3. python3 watson_send_message_2.py4. python3 watson_send_message_3.py「天気は︖」と尋ねるとー>「天気をお調べします。どこの天気をお調べしますか︖」と返ってくる。「東京」と答えるー>「今⽇」「明⽇」のオプションと返ってくる。「今⽇」と答えるー>「東京の今⽇の天気をお調べします。」と返ってくる。セッションID取得
認証情報API key, URLの取得 Environment ID の取得「Environment」タブギアマークをクリック「Environment ID」
①セッションID取得 - watson_create_session.py「API key」を設定「URL」を設定「Environment ID」を設定「Sessino ID」
②「今⽇の天気」と尋ねる -watson_send_message_1.py「Session ID」を設定「API key」を設定「URL」を設定「Environment ID」を設定「今⽇の天気」を設定
「今⽇の天気は︖」と尋ねるとー>「天気をお調べします。どこの天気をお調べしますか︖」と返ってくる。②確認
③「東京」を伺う - watson_send_message_2.py「API key」を設定「URL」を設定「Environment ID」を設定「Session ID」を設定「東京」を設定
「東京」と答えるー>「今⽇」「明⽇」のオプションと返ってくる。③確認
④「今⽇」を伺う - watson_send_message_3.py「API key」を設定「URL」を設定「Environment ID」を設定「Session ID」を設定「今⽇」を設定
「今⽇」と答えるー>「東京の今⽇の天気をお調べします。」と返ってくる。④確認
Appendix初めての『IBM Watson Assistant』〜これから触ってみる⽅への体験ガイド〜https://qiita.com/yanagih/items/27dc6e0561340168724f
Appendix Watson Assistant マンガhttps://www.ibm.com/downloads/cas/NJEOR0PAマンガで解説_ 意味不明なチャットボットに今こそ決別。
·ͱΊ•Watson Assistant を使ってチャットボット構築を体験した•チャットボットから会話フローを切り取った
ࠓޙ• Watson Discovery / Watson Assistantͷ࿈ܞΞϓϦ։ൃମݧ
એ<ΈࠐΈAI ηϧϑαʔϏεܕσδλϧڞମݧ>ϒϩά࢝Ί·ͨ͠ɻͪ͜ΒͰɺDigital Self-Serve Co-Create Experience( https://dsce.ibm.com/ ) ʹهࡌ͍ͯ͠ΔίϯςϯπΛͬͯΈͨɻͱ͍͏ͷΛൃ৴͍͖ͯ͠·͢ɻ·ͨɺίϛϡχςΟ͋Γ·͢ɻIBM AI and Data Science ʹདྷ͍͖ͯͨͩʮJoin nowʯΛͯ͘͠ΕΔͱخ͍͠Ͱ͢ɻ
ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独⾃の⾒解を反映したものです。それらは情報提供の⽬的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助⾔を意図したものではなく、またそのような結果を⽣むものでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努⼒しましたが、「現状のまま」提供され、明⽰または暗⽰にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使⽤によって、あるいはその他の関連によって、いかなる損害が⽣じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使⽤を規定する適⽤ライセンス契約の条項を変更することを意図したものでもなく、またそのような結果を⽣むものでもありません。本講演資料でIBM製品、プログラム、またはサービスに⾔及していても、IBMが営業活動を⾏っているすべての国でそれらが使⽤可能であることを暗⽰するものではありません。本講演資料で⾔及している製品リリース⽇付や製品機能は、市場機会またはその他の要因に基づいてIBM独⾃の決定権をもっていつでも変更できるものとし、いかなる⽅法においても将来の製品または機能が使⽤可能になると確約することを意図したものではありません。本講演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上⾼の向上、またはその他の結果が⽣じると述べる、または暗⽰することを意図したものでも、またそのような結果を⽣むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使⽤した測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、⼊出⼒構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使⽤したか、またそれらのお客様が達成した結果の実例として⽰されたものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。IBM、IBM ロゴ、ibm.com、IBM Cloud、IBM Cloud Paksは、 世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。Microsoft, Windows, Windows Server, .NET Framework, .NET, .NET Coreは、Microsoft Corporationͷඪ·ͨొඪͰ͢ɻ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
EOF