Comments
Description
Transcript
Bluemix
IBM Bluemix www.bluemix.net 【イノベート・ハブ九州】 Bluemix勉強会 @九州⼤学伊都キャンパス 2016年7⽉14⽇ ⽇本アイ・ビー・エム株式会社 クラウド事業統括 IBM Bluemix www.bluemix.net 本⽇の内容 qINNOVATE Hack Kyushu概要のご紹介 qアイデアの作り⽅ - アイデアシートを作ってみよう qアイデアをカタチに - クラウドを活⽤した⾼速アプリ開発 実習 2 © 2016 IBM Corporation IBM Bluemix www.bluemix.net イノベート・ハック九州 概要のご紹介 3 © 2016 IBM Corporation INNOVATE HUB KYUSHUの特⻑ アイデア、技術、マネタイズ。⾼いポテンシャルを持つビジネスを発掘し、構築し、共に発展する。 単なるイベントにとどまらず、プログラム全体を通じて貴社のイノベーション実現を加速します。 発掘 ハッカソンを通じて、 開発⼒を兼ね備えた 優れたアイデアを 発掘 INNOVATE Hack 構築 発展 IBM/パートナー 企業の⽀援のもと、 採択企業の事業化を ⽀援 エコシステムの 形成、海外展 開をはじめとする 事業拡⼤ INNOVATE Build INNOVATE Grow 海外スタートアップ招聘/ 海外への展開 最新テクノロジーの提供 IBMBluemix IBMWatson INNOVATE Hack概要 主旨 九州、および協賛社のイノベーションに寄与する新サービスの発掘 特⻑ 設定したテーマに応じたデータやAPI、ツールが提供されることで、より事業化に近づけられるサービスを発掘することがで きる ⽇程 • Day1(事前説明会&アイデアソ ン) • Day2-3(ハッカソン) • Day4(DemoDay) 8/6(⼟) TKPガーデンシティ天神(本会場:福岡・天神)/ サムライスタートアップアイランド(リモート会場) 8/27(⼟)-28(⽇) 天神 (オールナイトはなし) 9/6(⽕) JR九州ホール(福岡・博多) 集客規模 • エントリー • ハッカソン • DemoDay 80組 25組 (アイデアシートによって選考) 7組(ハッカソン成果物/プレゼンテーションによって選考) テーマ ①まち・くらし 参加対象 • チーム単位(法⼈・個⼈問わず) • 九州在住に限らない。海外からの参加も招聘 • 学⽣の参加も受付 参加条件 • 参加規約の同意、データ利⽤覚書への署名 • 開発・実⾏環境として、IBM Bluemixを使⽤ アワード案 (予定) • 事業化に向けたインキュベーション・プログラムへの参加 • 海外視察ツアー招待(予定) • 副賞(ガジェット、データ利⽤権など)の獲得 ②観光・エンタメ・スポーツ ③ヘルスケア ④ロボティクス 5 参加者がハッカソンに参加するまで 告知 IBM媒体 ・IBM Webサイト ・IBM SNS (BlueHub) ・ChangeMakers ・⻄⽇本新聞様 ・ 外部媒体 ・東洋経済 ・⽇経新聞 ・翔泳社 ・その他IT系、 Startup系媒体 ハッカソン〜DemoDay エントリーサイト □代表者情報 □チームメンバー情報 □メンバー役割 □開発⼒レベル □ハッカソン⼊賞経験 など □選択するテーマ 情報収集 事前説明会 ・勉強会 各データ Bluemix、 各APIに関 Watson、IoT する詳細情報 ・勉強会 各テーマ アイデアソン ア イ デ ア シ ト 選 考 参加者コミュニティ (Q&A対応) ハ ッ カ ソ ン DemoDay 協賛社様 媒体 エントリー〜ハッカソン ・技術的な質問 ・運営についての質問等 テーマと 提供されるデータ/API/ツール(6⽉27⽇現在) テーマ まち・ くらし 観光・エンターテイ メント・スポーツ ヘルスケア ロボティクス 概要 関連の深い ご協賛者様 ご提供いただく データ/API/ツール ・⽇々の暮らしを便利 に便利にする新しい サービス ⻄⽇本新聞 新聞記事データ ゼンリン ゼンリンAPIで提供する地図情報 ・防犯、防災、渋滞緩 和、美化など、まちを さらに安全に、住みや すく、美しく。 ソフトバンク ⼈の流動データ ソフトバンク Pepper 福岡銀⾏ ⾦融系サービス/API (IBM Fintech共通APIを利 ⽤) 九州に根差す観光、ス ポーツや、エンターテ イメントを盛り上げる。 インバウンド増加、客 単価の増⼤も視野に⼊ れる 福岡銀⾏ ⾦融系サービス/API (IBM Fintech共通APIを利 ⽤) ゼンリン ゼンリンAPIで提供する地図情報 ⻄⽇本新聞 新聞記事データ ソフトバンク Pepper ソフトバンク ⼈の流動データ アステム 医療関連データ(検討中) ゼンリン ゼンリンAPIで提供する地図情報 ソフトバンク ⼈の流動データ ソフトバンク Pepper 安川電機 ロボットシミュレータ ソフトバンク Pepper 医療⽀援、健康増進⽀ 援・介護⽀援などのヘ ルスケアに関する新し いサービス 産業⽤ロボット、およ び⼈と接するロボット がもっと社会で活躍し、 ⼈間社会を⽀える存在 になるためのサービス 考えられるサービスの例 【交通・都市開発】 ・九州各地への訪問者・運送者に対し、各地の リアルタイムの交通事情に即した最適な移動⼿ 段の情報を提供する 【観光】 ・⼤規模なコンサートやイベントの開催時に、 宿泊施設が予約が困難となる ・宿泊施設の予約・キャンセル情報をリアルタ イム配信や、⺠泊の推進など受け⼊れ環境を強 化する ・⾼齢者向けの介護⽀援(Nursing Care)として、 離れて暮らす親を遠隔地から安否確認を⾏うシ ステムを提供する ・クラウド・ロボティクスにて、クラウド上の 機能(Watson API等)を活⽤したロボット介 護を展開する INNOVATE Hackのスケジュール text Jun Jul Aug 準備 実⾏ 6/9(⽊) 8/6(⼟) ★ 勉強会 #1 Bluemix @ヌーラボ Sep ★ 事前説明会 & アイデアソン@TKPガーデンシティ天神 6/24(⾦) 〜8/10(⽔) ★ 勉強会 #2 WatsonAPI アイデアシート提出期限 @天神color 12(⾦) ★ アイデア選出(発表) ★ 協賛社 ご担当者様 Kick off @⻄鉄イン 7/6(⽔) ★ 勉強会 #3 IoT Foundation @ヌーラボ 7/15(⾦) 〜8/3(⽔) データ・APIご準備 7/26(⽕) ★ 勉強会 #5 Bluemixの基礎 @天神 ★ 協賛社 公式キックオフ 7/14(⽊) 7/27(⽔) @九州⼤学 ロボティクス @九州⼯業⼤学 ★勉強会 #4 学⽣向け勉強会 および東京(中継) ★ 勉強会 #6 8/27-28 ★Hackathon (2 days) 9/6 ★DemoDay @JR九州ホール IBM Bluemix www.bluemix.net アイデアの作り⽅ アイデアシートを作ってみよう 9 © 2016 IBM Corporation IBM Bluemix www.bluemix.net アイデアをカタチに クラウドを活⽤した⾼速アプリ開発 実習 10 © 2016 IBM Corporation IBM クラウド概要図 ・オープンソースで構築されたインフラ ・レガシーに相性のいい⾼性能なベアメタルも ・Fusion ioや3TBメモリーのマシン等々 ・グローバルサービスで、⽇本DCも IaaS IBMクラウド ・オープンスソースのCloud Foundryベースの Java、Node.jsやRubyを対応するPaaS ・Docker対応やDevOpsサービスも ・約30秒で実⾏環境をセットアップが可能 PaaS ・・・ ・コンポーザブルな開発環境・エコシステム ・開発者は、構成済みのサービス、ランタイム などを使ってブロックを組み⽴てるように⼿間 少なくアプリやシステム構築が可能に SaaS APIエコノミー オープンなPasS IBM Bluemix IBM SoftLayer IBM Bluemix ビジネス・プロセス ビジネス・プロセス アプリケーション アプリケーション ミドルウェア ミドルウェア (APサーバー/DB/監視 etc…) (APサーバー/DB/監視 etc…) OS OS 仮想化基盤 仮想化基盤 ハードウェア ハードウェア (Server,Storage, Network) (Server,Storage, Network) IaaS PaaS 開発者はアプリ開 発に専念 アプリの迅速かつ 継続的な提供 クラウドでご提供 新しい顧客体験をもたらすIBM Bluemix 迅速なアプリケーション開発、管理、と実⾏を実現するクラウド 豊富な「API」「サービス」をご提供 120を超える⾼品質のサービスでクイックにアプリ開発 1年でAPI,サービス数は約2倍に!強⼒なパートナーシップ提携も!! § § § § § § 実⾏環境 データベース モバイル ビッグデータ アナリティクス Web & アプリケーション § Watson § IoT § インテグレーション § セキュリティ § 開発⽀援ツール IBM Bluemix www.bluemix.net Node-RED概要 14 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED について n IBM 英国Hursley 研究所の Emerging Technology Teamで開発され たソフトウェア • 2013年、社内ハッカソンで堂々⼀位、GitHub に登録 • 2014年 Qcon で発表 n オープンソースプロジェクトとして提供 15 15 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-REDの特徴 ハードウェアデバイス,API,オンラインサービスが画期的な ⽅法で結合された"仮想環境をブラウザ上で実現 n ブラウザベース UI n node.js で動作 • 軽量 n 機能をカプセル化して Nodeとして利⽤ n 独⾃Nodeを作成・追加可 能 n Bluemixの様々なサービス を簡単に利⽤可能 16 16 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED 画⾯ シート 表⽰情報の 切り替え 実装UI デプロイ実⾏ ノード 処理フロー ノードパレット 17 Node Infomation またはデバッグコンソール 17 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED実装⽅法 ④Deployを選択 Node-RED画⾯ ①ノードを選択し ドラッグ&ドロップ ②ノード間を 接続 ③ノードプロパティ設定 18 18 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED搭載ノードの紹介 (代表的なもの) Node分類 機能 Input イベントの起動条件の設定 Output 外部アプリへの送信 Function イベント分岐、受信データの変換、⼀時停⽌ 等 Social Twitter/Mail/ircの送受信 Storage DBへの保存、DB検索 Analysis 分析 Advanced RSS/atomの更新受信時にイベント起動 コネクタが右側に存在 ⇒①イベントの起動 イベント起動条件を満 たしたとき、その情報 を送信する 19 コネクタが左右に存在 ⇒②データ変換/分岐 左からデータ受信。 それを変換/分岐させ、右側に結 果を返す コネクタが左側に存在 ⇒③外部アプリ起動/DB保存 左からデータを受信し、それ を送信/保存 19 © 2016 IBM Corporation IBM Bluemix www.bluemix.net ①イベントの起動 コネクタが右側に存在するもの 20 Node名称 イベント開始条件 後続フローに送信する内容 Inject 定期起動orノードのクリック 指定⽂字列or現在時刻or 情報なし(起動のみ) デバック向けの機能。 http http://[xxxxxxx].mybluemi x.net/[ノードのURL]リクエ スト送信時 リクエスト情報 Mail メール受信時、または未読 メール存在時定期起動 メール本⽂(text/plain) Twitter 指定メッセージのTweet時に ⾃動起動 Tweet情報 (本⽂、発⾔場所、国…) Feedparse RSS/atomの更新受信時 - 20 © 2016 IBM Corporation IBM Bluemix www.bluemix.net ②データ変換/分岐 コネクタが左右に存在するもの 21 Node名称 機能 後続フローに送信する内容 Function 受領データの更新 更新済データ Switch 条件に応じて、フローを分岐 させる 受信データ Delay フローを待機 受信データ http request 指定サイトに接続 接続サイトのソース Cloudant DB検索 DBの検索結果 Sentiment 受信データをセンチメント分 析 評価情報を追加した受信データ Html HTMLソースのうち、指定タ グをすべて取得 指定したタグの情報 21 © 2016 IBM Corporation IBM Bluemix www.bluemix.net ③外部アプリ起動/DB保存 コネクタが左側に存在するもの 22 Node名称 機能 Debug フロー上に流れている情報を画⾯表⽰ http response http requestを返す Cloudant DBへのデータ保存 Mail メール送信 22 © 2016 IBM Corporation IBM Bluemix www.bluemix.net プログラミング JavaScriptで記述します • 簡易エディターが付属 • ⾮同期処理も可能 ※より複雑な処理は node の 作成をお勧めします。 function は最後に return msg; をいれる と次のnode に送信してくれます。 23 詳細ドキュメント: http://nodered.org/docs/writingfunctions.html 23 © 2016 IBM Corporation IBM Bluemix www.bluemix.net 覚えておくNode-RED固有変数 “context.global” “context” “msg” “msg” オブジェクト: node 間を流れるメッセージを表す JSON オブジェクト。 msg.payload はかならず存在する。msg.<string> で新しい属性を追加できる。 “context” オブジェクト: node 内部で保存される任意の JSON オブジェクト “context.global” オブジェクト: node 間で共有されるグローバルオブジェクト 24 24 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-REDノード操作⽅法 25 25 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED環境の作成 26 26 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED環境の作成 n アプリケーション名を⼊⼒します 27 27 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED環境の作成 28 28 © 2016 IBM Corporation IBM Bluemix www.bluemix.net IoTアプリを作成 モバイルのセンサーデータを取得する 29 © 2016 IBM Corporation Node-REDでIoTアプリを作成 ■全体像 サービス IoT Foundationサービス は センサーデータを仲介す る IBM IoT Foundation IBM Bluemix デバイス スマホのセンサーで計測し た データをクラウドサービス に送信 30 アプリケーション アプリはサービスからセ ンサー データを取得して処理す る © 2015 IBM Corporation Node-REDでIoTアプリを作成 ■スマートフォンをお持ちの⽅は、スマホのブラウザで下記URLに アクセスしてください。 http://phonesensor.mybluemix.net PhoneSensorが起動します。スマホに内蔵された各種センサーの 情報を取得し、BluemixのIoT Foundationサービスに送信して います。 ■このセンサー情報を受け取って処理するアプリをBluemix上の Node-REDで作ってみましょう。 Node-REDの画⾯で、新しいシートを追加します 31 © 2015 IBM Corporation Node-REDでIoTアプリを作成 ■スマホのセンサー情報を、クラウド上のIoT Foundation サービスから受け取ってみましょう。 左側のパレットから「ibmiot」ノードを中央のキャンバスに ドラッグ&ドロップします。 ドラッグ&ド ロップ ■キャンバスにドロップした「IBM IoT App In」ノードをダブルクリックして設定画⾯を 開きます。 Authentication は「Quickstart」を選択。 Device Id に先程のPhoneSensorに表⽰されている ⽂字列の末尾12桁の数字を⼊⼒。 32 © 2015 IBM Corporation Node-REDでIoTアプリを作成 ■受け取ったデータを表⽰するノードを⽤意します。 左側のパレットから「debug」ノードを中央のキャンバスに ドラッグ&ドロップします。 ドラッグ&ド ロップ ■ノードの横にあるコネクタをクリック&ホールドし、「ibmiot」ノードと 「debug」ノードを線で繋ぎます。 この部分を掴んで引っ 張る 33 © 2015 IBM Corporation Node-REDでIoTアプリを作成 ■これでデータの⼊⼒と出⼒の定義ができました。 それでは実際に動かしてみましょう。 右上の「Deploy」ボタンをクリックします。 ■画⾯上部に「Successfully Deployed」の⽂字が表⽰されればOKです。 (この⽂字はすぐに消えます) ■実⾏結果を確認してみましょう。 右上の「debug」タブを選択します。debugノードに流れて きたデータはここに表⽰されます。 先程のPhoneSensorを動かします。スマホのセンサー情報が debug画⾯に表⽰されれば成功です。 34 取得できる情報はスマホの機種によって 異なる場合があります。 © 2015 IBM Corporation Node-REDでIoTアプリを作成 ■debug画⾯にセンサーデータがうまく表⽰されない場合のチェックポイント -PhoneSensorが正しく稼動しているかどうかを確認してください。スリープ状態でアプリ が 停⽌していないでしょうか。 -PhoneSensorの接続ステータスが「Connected」になっていることを確認してください。 例えば、誤ってPhoneSensor画⾯下部の「Register」をタップしてしまうと、ステータス が 「Disconnected」になります。 -「ibmiot」ノードのDevice Idが 正しく設定されているかどうかを ご確認ください。 例えば、スマホのWebブラウザで PhoneSensorを再読み込みすると Device Idが変わってしまいます。 その場合は再度「ibmiot」ノードの 定義情報をPhoneSensor側と 同じになるよう変更してください。 35 © 2015 IBM Corporation Node-REDでIoTアプリを作成 ■正しくセンサー情報が取得できたので、この情報に応じて何らかの処理を⾏うフ ローを作ってみましょう。 「tiltLR」というデータ項⽬に着⽬します。 これはスマホ端末の左右の傾きを測定しているようです。 実際に端末を動かして、値の変化を確認してください。 この傾き度合いによって表⽰メッセージを変えてみましょう。 ■センサー情報から「tiltLR」の値だけを抽出します。 左側のパレットから「function」ノードを中央のキャンバスに ドラッグ&ドロップします。 ダブルクリックで設定画⾯を開き、Functionの内容を 以下のように書き換えて「OK」をクリックします。 return {payload:msg.payload.d.tiltLR}; 36 © 2015 IBM Corporation Node-REDでIoTアプリを作成 ■正しく動くかどうか確認してみましょう。 「ibmiot」と「debug」との間に、今作成した 「function」ノードを挟むように線を繋ぎ変えます。 線はクリックで選択した状態でDelete キーで 削除できます。 ■右上の「Deploy」ボタンをクリックします。 ■不要な情報が削除されて、「tiltLR」の値だけが 表⽰されればOKです。 37 © 2015 IBM Corporation Node-REDでIoTアプリを作成 ■「tiltLR」の値によって処理を分岐させます。 左側のパレットから「switch」ノードを中央のキャンバスに ドラッグ&ドロップします。 ダブルクリックで設定画⾯を開き、分岐条件を指定します。 左に5度以上傾いた場合=「左に傾いてます」 右に5度以上傾いた場合=「右に傾いてます」 傾きが5度未満の場合=「ほぼフラットです」 上記のような条件設定をするには 右図のように指定して「OK」を クリックします。 傾きが-5度以上(左)なら1番へ 条件を追加するには、 「+rule」 ボタンをクリックします。 38 傾きが5度以上(右)なら2番へ どちらでもない(フラット)な ら3番へ © 2015 IBM Corporation Node-REDでIoTアプリを作成 ■条件分岐された後の処理を作成します。 左側のパレットから「template」ノードを中央のキャンバスに ドラッグ&ドロップします。 ダブルクリックで設定画⾯を開き、表⽰するメッセージを定義します。メッセージ の内容は ⾃由に変更してください。 {{payload}} と指定すると、先程 debug画⾯で確認した傾きデータ の値が表⽰されます。 1番(左) 2番(右) 3番(フラット) 同様に2番、3番のノードも作成し、 それぞれメッセージを定義します。 最後にswitchノードのコネクタと 1番、2番、3番のノードを線で繋げます。 39 © 2015 IBM Corporation Node-REDでIoTアプリを作成 ■キャンバスの中を整理して、各ノードを以下の図のように接続して ください。 正しく線が繋がっていれば、ノー ド⾃体は キャンバス内のどこに置かれてい ても動作に影響はありません。 ■処理フローが完成しました! それでは実際に動かしてみましょう。 右上の「Deploy」ボタンをクリックします。 40 © 2015 IBM Corporation Node-REDでIoTアプリを作成 ■「Successfully Deployed」のメッセージが表⽰されれば 成功です。 PhoneSensorを稼動させたスマホを左右に傾けて 指定したメッセージが表⽰されることを確認してください。 IBM Bluemix と Node-RED によって、ほぼノンプログラミングで IoTデバイスから収集したデータを処理するアプリが作れました。 41 © 2015 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPI概要 42 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPI q 旧AlchemyAPI社が提供する⾃然⾔語解析や画像解析の機能を提供するサービス ¦ テキスト分析、画像分析のためのAPIを多数提供 nAlchemyLanguage (14 APIs + 1 API[ベータ]) nAlchemyVision (3 APIs) nAlchemyData (1 API) ¦ Watsonのサービスと異なり、機械学習にかけるコストが不要な点がメリット n事前に学習済みであり、個別に追加で学習できない点には注意 q 提供されているプラン ¦ Free ¦ Standard : 組織単位で1⽇につき1000 APIコールまで(UTC 0:00にリセット) : 1⽇ごとにAPIコール数でレートが可変(下記参照) q 課⾦形態:従量課⾦(Standardのみ) ¦ 組織単位で1⽇ごとのAPIコール数で以下の費⽤体系で課⾦ n1 - 250,000 :¥0.735 JPY/Events n250,001 - 5,000,000 :¥0.105 JPY/Events n5,000,000+ :¥0.021 JPY/Events 43 ※ Face Detection APIの例 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPIが提供するAPI ※2016年3⽉22⽇現在 n AlchemyLanguage 44 API 説明 API 説明 Sentiment Analysis ⽂章のセンチメントを分析 Combined Call Taxonomy ⽂章のトピック・カテゴリーを階層 的に分析/分類 1つのコンテンツに対して複数の 分析をまとめて処理 Publication Date Webページの発⾏⽇を判別 Concept Tagging ⽂章の内容から明⽰的/暗黙的な コンセプトを導出 Data Extraction テキストから⽇付を取得 Entity Extraction ⽂章から⼈、組織、場所などのエン ティティーを抽出 Emotion Analysis (β) テキストから感情を分析 Keyword Extraction ⽂章からキーワードと関連性、 センチメントを抽出 API 説明 Relation Extraction ⽂章の主語、述語、⽬的語を抽出 Face Detection Text Extraction ⽂章の内容に関連するWebページの リンクを導出 画像から顔の位置、年齢、性別を 判断 Image Link Extraction Authors Extraction ニュースやブログから著者に関する 情報を抽出 URLの⽂書で使⽤されている画像 から適したものを抽出 Image Tagging 画像に対してタグづけ Language Detection ⽂書が何語で書かれているかを判別 Feed Detection Webページにフィードがある場合に リンクを判別 Microformats Parsing Webページに埋め込まれた Microformatsを探し出しパースする n AlchemyVision n AlchemyData API 説明 News API ニュースやブログを期間、キーワード、 センチメントで検索 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPIの使い⽅ q まずはBluemixコンソールからサービス・インスタンスを作成 ¦ サービス・インスタンス作成時にAPIキーが発⾏される ¦ 発⾏されたAPIキーはサービスの「サービス資格情報」から確認できる q インスタンスの作成後、指定されたURLにアクセスすることでサービスを利⽤可能 ¦ 基本のURLフォーム n https://gateway-a.watsonplatform.net/<利⽤するAPIに合わせたコンテキストルート >?apikey=<確認したAPIキー> ¦ 各APIに対するコンテキストルートは次ページを参照 n インプットとなるデータがURLなのか、HTMLなのか、テキストなのかで各APIごとに3つずつ種類が ある(⼀部例外あり) ¦ GET / POSTどちらでも対応できるAPIが多いが、AlchemyData (News API)はGETのみ、 AlchemyLangageのSentiment Analyticsの⼀部APIはPOSTのみサポートとなるため、リク エスト送信の実装は注意が必要 nAlchemy Newsを除き、POSTメソッドはサポートされているので、POSTでリクエスト 送信処理を実装するのがお勧め 45 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyのAPI⼀覧(1/2) n AlchemyLanguage API /calls /url /* /calls /text/* /calls /html /* Sentiment Analysis URLGetTextSentiment URLGetTargetedSentiment TextGetTextSentiment TextGetTargetedSentiment HTMLGetTextSentiment HTMLGetTargetedSentiment Taxonomy URLGetRankedTaxonomy TextGetRankedTaxonomy HTMLGetRankedTaxonomy Concept Tagging URLGetRankedConcepts TextGetRankedConcepts HTMLGetRankedConcepts Entity Extraction URLGetRankedNamedEntities TextGetRankedNamedEntities なし(*1) Keyword Extraction URLGetRankedKeywords TextGetRankedKeywords HTMLGetRankedKeywords Relation Extraction URLGetRelations TextGetRelations HTMLGetRelations Text Extraction URLGetText URLGetRawText URLGetTitle なし HTMLGetText HTMLGetRawText HTMLGetTitle Authors Extraction URLGetAuthors なし HTMLGetAuthors Language Detection URLGetLanguage TextGetLanguage HTMLGetLanguage Feed Detection URLGetFeedLinks なし HTMLGetFeedLinks Microformats Parsing URLGetMicroformatData なし HTMLGetMicroformatData Combined Call URLGetCombinedData TextGetCombinedData HTMLGetCombinedData (*1) マニュアル上に記載なし 46 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyのAPI⼀覧(2/2) n AlchemyLanguage (続き) API /calls /url /* /calls /text/* /calls /html /* Publication Date URLGetPubDate なし HTMLGetPubDate Data Extraction URLExtractDates TextExtractDates HTMLExtractDates Emotion Analysis URLGetEmotion TextGetEmotion HTMLGetEmotion n AlchemyVision API /calls /url /* /calls /html /* /calls /image/* Face Detection URLGetRankedImageFaceTags なし ImageGetRankedImageFaceTags Image Link Extraction URLGetImage HTMLGetImage なし Image Tagging URLGetRankedImageKeywords ImageGetRankedImageKeywords n AlchemyData API /calls /data /* News API GetNews n その他 47 API /calls /info /* 実施トランザクション数 の確認 GetAPIKeyInfo © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPIの利⽤ケース q アプリの要件に依存する部分が多いが、主な利⽤ケースは以下の通り: ¦ AlchemyLanguageやAlchemyDataが基本的に英語のサービスとなるため、⽇本語に対する 処理を⾏いたい場合は、翻訳APIを経由して処理を⾏うことを検討する ① 画像のカテゴリー分類 ② センチメント分析 / 感情分析 チャット データ API呼び出し 分類 ü AlchemyVisonのAPIで⼤まかに画像を分類 • Face Detectionで男⼥, 年齢別に分類 • Image Taggingで画像に対するタグ付け ü ⼤まかに分類した画像を確認し、Watsonの Visual Recognitionでお客様に合わせて学習させ、 画像分類の精度を上げるアプローチで利⽤ 48 Negativeに傾いている 怒り: 60%以上 API呼び出し (翻訳API経由) ü AlchemyLanguage経由でやりとりを分析 • Sentiment Analysis • Emotion Analysis ü 分析の結果、負の感情に傾く状況を検知した場 合には、なんらかのアクションを起こすような 処理を起こすような利⽤が考えられる © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-REDとの連携 q Bluemix上で利⽤可能なNode-REDには、デフォルトで以下の3つのAlchemyAPI ノードがパレットに登録されている ¦ Node-REDでの⼀処理にAlchemyAPIの処理を挟んで、テキスト/画像分析を容易に⾏うこと ができるようになっている sentiment n 単語レベルでの簡易なセンチメント分析を実施(*1) n APIキーは不要 Feature Extract n Combine Call APIがベース(※出⼒結果より判断) n AlchemyLanguageから使⽤したいAPIを選択し、テキスト分析を実施 n APIキーは必要 Image Analysis n AlchemyVisionから使⽤したいAPIを選択し、画像分析を実施 n APIキーは必要 49 (*1)⽇本語は未サポート(2016年3⽉時点) © 2016 IBM Corporation IBM Bluemix www.bluemix.net Alchemy APIをBluemixの Node-REDから呼び出そう! 50 © 2016 IBM Corporation IBM Bluemix www.bluemix.net ハンズオン⼿順 qNode-Red全体フロー qBluemixでNode-REDサービス、WatsonのAPIを設定する qAlchemyAPIを追加する qNode-REDでプログラミング q動作確認 51 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED全体フロー q 画像のURL(例:"http://xxxxx.jpg" )をImage AnalysisのAPIにかけると画像解析 を⾏い、顔認識の結果を返してくれるサンプルアプリです。 52 © 2016 IBM Corporation IBM Bluemix www.bluemix.net BluemixでNode-REDサービス、 WatsonのAPIを設定する 53 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED/Watson APIの準備 q 以下のリンクを参考にHello WorldをNode-REDで実施します。 ¦ https://ibm.biz/Bd4NRZ https://ibm.biz/Bd4NRZ 54 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPIを追加する q Node-REDのノードに画像認識のためのImage Analysisがあるのですが、このままで は使えません。 このNode-REDのアプリケーションにAlchemyAPIを追加してあげる 必要があります。 https://ibm.biz/Bd4NRZ ←Image Analysis 55 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPIを追加する q Bluemixのメニュー画⾯からダッシュボードをクリックし、先ほどのNode-REDのアプ リケーションをクリックしてください。 https://ibm.biz/Bd4NRZ 56 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPIを追加する q 続いて、サービスのまたはAPIの追加をクリックしてください。 https://ibm.biz/Bd4NRZ 57 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPIを追加する q 次の画⾯で現れるAPIの⼀覧からAlchemyAPIをクリックします。 q その後、再ステージング(再起動)のポップアップ画⾯が表⽰されるので、再ステー ジングし正常に再起動すればOKです。 https://ibm.biz/Bd4NRZ 58 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-REDでプログラミング 59 © 2016 IBM Corporation IBM Bluemix www.bluemix.net HTTP Input node q AlchemyAPIはRESTのGETメソッドでアクセスして画像を解析します。 まずは左側のパレットのInputカテゴリ内のhttpのnode をドラッグ&ドロップし、キャンバス内に配置します。 プロパティー内のURL欄にア クセスポイントを記載します。ここでは/callwatsonとしておきます。 q Nameの欄はノードの名前をわかりやすいようにしておくために記述しておきます。任 意ですが、ここではHTTP Inputにしておきます。 https://ibm.biz/Bd4NRZ 60 © 2016 IBM Corporation IBM Bluemix www.bluemix.net switch node q 画像のURLをチェックするノードを準備します。 左側のリソースパレットのfunction カテゴリ内のswitchノード を フローエディタ中央のキャンバスにドラッグ& ドロップします。プロパティー内の左下にある+ruleをクリックして、分岐ロジックを 2つ⽤意します。 Propertyは以下の通りにimagurl属性に含まれるペイロードのnullチ ェックを⾏います。 nullであれば、“1”にそれ以外であれば“2”に値が渡されます。 https://ibm.biz/Bd4NRZ 61 © 2016 IBM Corporation IBM Bluemix www.bluemix.net template node (初期画⾯) q 画⾯のHTMLを表⽰したり、Inputとなる画像を送信するためのメニューを提供するた めにHTMLを記述します。 templateノード をフローエディタ中央のキャ ンバスにドラッグ&ドロップします。プロパティを以下のように記述します。 <h1>Welcome to the Alchemy Vision Face Detection Demo on NodeRED</h1> <H2>Select an image</H2> <form action="{{req._parsedUrl.pathname}}"> <img src="https://si.wsj.net/public/resources/images/MKCK494_SELFIE_GR_20140303174816.jpg" height='100'/> <img src="https://upload.wikimedia.org/wikipedia/commons/f/f1/34th_G8_summit _member_20080707.jpg" height='100'/> <img src="http://demo1.alchemyapi.com/images/vision/politicians.jpg" height='100'/> <br/>Copy above image location URL or enter any image URL:<br/> Image URL: <input type="text" name="imageurl"/> <input type="submit" value="Analyze"/> </form> 62 © 2016 IBM Corporation IBM Bluemix www.bluemix.net change node q ⼊⼒画⾯から画像URLを抽出するchangeノードを定義します。左側のリソースパレッ トのfunctionカテゴリ内のchangeノード をフロー・エディタ中央のキャ ンバスにドラッグ&ドロップします。 ここからpayload属性をimageurl属性に変換し ます。以下の通りにプロパティを設定します。 https://ibm.biz/Bd4NRZ 63 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Image Analysis q 画像解析のためのImage Analysisノードを定義します。左側のリソースパレットの Watsonカテゴリ内のImage Analysisノード をフロー・エディタ中央のキャン バスにドラッグ&ドロップします。プロパティーでは顔認識を⾏うため、以下の通りに DetectをFaceに設定します。 https://ibm.biz/Bd4NRZ 64 © 2016 IBM Corporation IBM Bluemix www.bluemix.net template node (結果) q WatsonのImage Analysisから返ってきた結果を表⽰させるためのHTMLを記載します 。temlpalteノード をフローエディタ中央のキャンバスにドラッグ&ドロ ップします。プロパティを以下のように記述します。 <h1>Alchemy Image Analysis</h1> <p>Analyzed image: {{payload}}<br/><img id="alchemy_image" src="{{payload}}" height="50"/></p> {{^result}} <P>No Face detected</P> {{/result}} <table border='1'> <thead><tr><th>Age Range</th><th>Score</th><th>Gender</th><th>Score</th><th>Name</t h></tr></thead> {{#result}}<tr> <td><b>{{age.ageRange}}</b></td><td><i>{{age.score}}</i></td> <td>{{gender.gender}}</td><td>{{gender.score}}</td> {{#identity}}<td>{{identity.name}} ({{identity.score}})</td>{{/identity}} </tr>{{/result}} </table> <form action="{{req._parsedUrl.pathname}}"> <input type="submit" value="Try again"/> </form> https://ibm.biz/Bd4NRZ 65 © 2016 IBM Corporation IBM Bluemix www.bluemix.net HTTP Response q アウトプットをHTML表⽰させるためのHTTP Responseノード 66 をを追加 © 2016 IBM Corporation IBM Bluemix www.bluemix.net フローをつなげる q 出来上がった各ノードをつなげて、右上のDepoyをクリックすれば完成です!エラーが 出ていないことを確認してください。 https://ibm.biz/Bd4NRZ 67 © 2016 IBM Corporation IBM Bluemix www.bluemix.net 動作確認 68 © 2016 IBM Corporation IBM Bluemix www.bluemix.net 動作確認 q ブラウザのURL欄にhttp://xxxx.mybluemix.net/callwatson をインプットして呼び 出してみましょう。 Image URLの⼊⼒欄にWatsonに読ませたい画像URLを⼊れてみ てください。顔の認識や⼈物名が出てきます!さすがWatson! https://ibm.biz/Bd4NRZ 69 © 2016 IBM Corporation IBM Bluemix www.bluemix.net ご注意 この資料に含まれる情報は可能な限り正確を期しておりますが、⽇本アイ・ビー・エム株式会社の正式なレビューを受けておらず、当資 料に記載された内容に関して⽇本アイ・ビー・エム株式会社は何ら保証するものではありません。 従って、この情報の利⽤またはこれらの技法の実施はひとえに使⽤者の責任において為されるものであり、資料の内容によって受けたい かなる被害に関しても⼀切の補償をするものではありません。 また、IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。 他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点でのIBMの商標リストについては、 www.ibm.com/legal/copytrade.shtmlをご覧ください。 当資料をコピー等で複製することは、⽇本アイ・ビー・エム株式会社および執筆者の承諾なしではできません。また、当資料に記載され た製品名または会社名はそれぞれの各社の商標または登録商標です。 70 © 2016 IBM Corporation