IBM Bluemix www.bluemix.net 【イノベート・ハブ九州】 Bluemix勉強会@九州⼯業⼤学 2016年7⽉27⽇ ⽇本アイ・ビー・エム株式会社 クラウド事業統括 本⽇の資料はこちら↓ http://www.meetup.com/ja-JP/BluemixMeetup/events/232722576/ IBM Bluemix www.bluemix.net 本⽇の内容 qイノベート・ハック九州概要のご紹介(IBM) q産業⽤ロボットの紹介と新規事業の企画に向けて(安川電機様) qいつもNAVI APIご紹介(ゼンリン様) qBluemixハンズオン(IBM) ¦実習1:外部APIとの連携(いつもNAVI) ¦実習2:Watson APIによる顔認識(AlchemyAPI) 2 © 2016 IBM Corporation IBM Bluemix www.bluemix.net イノベート・ハック九州のご紹介 3 © 2016 IBM Corporation INNOVATE HUB KYUSHUの特⻑ アイデア、技術、マネタイズ。⾼いポテンシャルを持つビジネスを発掘し、構築し、共に発展する。 単なるイベントにとどまらず、プログラム全体を通じて貴社のイノベーション実現を加速します。 発掘 構築 発展 ハッカソンを通じて、 開発⼒を兼ね備えた 優れたアイデアを 発掘 IBM/パートナー 企業の⽀援のもと、 採択企業の事業化を ⽀援 エコシステムの 形成、海外展 開をはじめとする 事業拡⼤ INNOVATE Hack INNOVATE Build INNOVATE Grow 海外スタートアップ招聘/ 海外への展開 最新テクノロジーの提供 特設サイト http://event.f-ventures.vc/innovate_hub_kyushu/hack/ IBMBluemix IBMWatson INNOVATE Hack概要 主旨 九州、および協賛社のイノベーションに寄与する新サービスの発掘 特⻑ 設定したテーマに応じたデータやAPI、ツールが提供されることで、より事業化に近づけられるサービスを発掘することがで きる • Day1(事前説明会&アイデアソン) ⽇程 • Day2-3(ハッカソン) • Day4(DemoDay) 8/6(⼟) TKPガーデンシティ天神(本会場:福岡・天神)/ サムライスタートアップアイランド(リモート会場) 8/27(⼟)-28(⽇)福岡県Ruby・コンテンツ産業振興センター (オールナ イトはなし) 9/6(⽕) JR九州ホール(福岡・博多) 集客規模 • エントリー • ハッカソン • DemoDay 80組 25組 (アイデアシートによって選考) 7組(ハッカソン成果物/プレゼンテーションによって選考) テーマ ①まち・くらし ②観光・エンタメ・スポーツ ③ヘルスケア 参加対象 • チーム単位(法⼈・個⼈問わず) • 九州在住に限らない。海外からの参加も招聘 • 学⽣の参加も受付 参加条件 • 参加規約の同意、データ利⽤覚書への署名 • 開発・実⾏環境として、IBM Bluemixを使⽤ アワード案 (予定) • 事業化に向けたインキュベーション・プログラムへの参加 • 海外視察ツアー招待(予定) • 副賞(ガジェット、データ利⽤権など)の獲得 ④ロボティクス お申し込み先 • http://eventregist.com/e/Innovatehackkyushu 5 参加者がハッカソンに参加するまで 告知 IBM媒体 ・IBM Webサイト ・IBM SNS (BlueHub) ・ChangeMakers 協賛社様 媒体 ・⻄⽇本新聞様 エントリー〜ハッカソン エントリーサイト □代表者情報 □チームメンバー情 報 □ハッカソン⼊賞経 験など 情報収集 事前説明会 ・勉強会 各データ Bluemix、 各APIに関す Watson、IoT る詳細情報 ・勉強会 各テーマ ア イ デ ア シ ト 選 考 □選択するテーマ ハ ッ カ ソ ン DemoDay □メンバー役割 □開発⼒レベル 外部媒体 ・東洋経済 ・⽇経新聞 ・翔泳社 ・その他IT系、 Startup系媒体 ハッカソン〜DemoDay アイデアソン 参加者コミュニティ (Q&A対応) ・技術的な質問 ・運営についての質問等 テーマと 提供されるデータ/API/ツール(6⽉27⽇現在) テーマ まち・ くらし 観光・エンターテイ メント・スポーツ ヘルスケア ロボティクス 概要 関連の深い ご協賛者様 ご提供いただく データ/API/ツール ・⽇々の暮らしを便利 に便利にする新しい サービス ⻄⽇本新聞 新聞記事データ ゼンリン ゼンリンAPIで提供する地図情報 ・防犯、防災、渋滞緩 和、美化など、まちを さらに安全に、住みや すく、美しく。 ソフトバンク ⼈の流動データ ソフトバンク Pepper 福岡銀⾏ ⾦融系サービス/API (IBM Fintech共通APIを利 ⽤) 九州に根差す観光、ス ポーツや、エンターテ イメントを盛り上げる。 インバウンド増加、客 単価の増⼤も視野に⼊ れる 福岡銀⾏ ⾦融系サービス/API (IBM Fintech共通APIを利 ⽤) ゼンリン ゼンリンAPIで提供する地図情報 ⻄⽇本新聞 新聞記事データ ソフトバンク Pepper ソフトバンク ⼈の流動データ アステム 医療関連データ(検討中) ゼンリン ゼンリンAPIで提供する地図情報 ソフトバンク ⼈の流動データ ソフトバンク Pepper 安川電機 ロボットシミュレータ ソフトバンク Pepper 医療⽀援、健康増進⽀ 援・介護⽀援などのヘ ルスケアに関する新し いサービス 産業⽤ロボット、およ び⼈と接するロボット がもっと社会で活躍し、 ⼈間社会を⽀える存在 になるためのサービス 考えられるサービスの例 【交通・都市開発】 ・九州各地への訪問者・運送者に対し、各地の リアルタイムの交通事情に即した最適な移動⼿ 段の情報を提供する 【観光】 ・⼤規模なコンサートやイベントの開催時に、 宿泊施設が予約が困難となる ・宿泊施設の予約・キャンセル情報をリアルタ イム配信や、⺠泊の推進など受け⼊れ環境を強 化する ・⾼齢者向けの介護⽀援(Nursing Care)として、 離れて暮らす親を遠隔地から安否確認を⾏うシ ステムを提供する ・クラウド・ロボティクスにて、クラウド上の 機能(Watson API等)を活⽤したロボット介 護を展開する 産業⽤ロボットの紹介と新規事業の企画 に向けて(安川電機様) いつもNAVI APIご紹介(ゼンリン様) IBM Bluemix www.bluemix.net アイデアをカタチに クラウドを活⽤した⾼速アプリ開発 実習 10 © 2016 IBM Corporation IBM Bluemix www.bluemix.net IBM Bluemixで⾼速アプリ開発 アプリケーションを構築・管理・実⾏するためのオープン・スタンダードな テクノロジーを活⽤した、クラウド・ソリューション Bluemixの主な特徴 1. オープン・スタンダードを採用したPaaS 2. 豊富な「API」と「サービス」の提供 3. DevOps推進のための開発ツールの提供 4. お客様の要件に合わせた提供形態 11 © 2016 IBM Corporation IBM Bluemix www.bluemix.net PaaSにより迅速にアプリ実⾏環境を提供 従来のIT環境 (個別構築/オンプレミス) IaaS (Infrastructure as a Service) PaaS SaaS (Platform as a Service) (Software as a Service) アプリケーション アプリケーション アプリケーション アプリケーション データ データ データ データ ランタイム ランタイム ランタイム ランタイム ミドルウェア ミドルウェア ミドルウェア ミドルウェア OS OS OS OS 仮想化 仮想化 仮想化 仮想化 サーバー サーバー サーバー サーバー ストレージ ストレージ ストレージ ストレージ ネットワーク ネットワーク ネットワーク ネットワーク カスタム、コスト⾼、低い俊敏度 標準化、低コスト、ビジネスニーズに俊敏に対応可 お客様管理 12 クラウドベンダー管理 © 2016 IBM Corporation IBM Bluemix www.bluemix.net 組み⽴て型のアプローチでアプリ開発を加速化 必要な機能を開発するのではなく、提供されているサービスを組み合わせることで、 システムとしての機能を追加/削除していくアプローチ 疎結合な構成 API として呼び出 す データベース Internet of Things アナリティクス セキュリティー モバイル 13 アプリ 実行環境 動的にサービスを 追加・削除可能 コグニティブ コンピューティング © 2016 IBM Corporation IBM Bluemix www.bluemix.net Bluemixの基本⽤語 プッシュ 作成したアプリケーションのランタイムを要求・生成する操作 アプリ開発者 アプリケーション バインド プッシュ サービス作成 開発者が実際に開発し、 アップロードするコード ランタイムからサービスに接続すること ランタイム上の環境変数(VCAP_SERVICES) に接続情報が提供されるようになる バインド アプリ コンテナー 14 ランタイム サービス Java, Node.js, Ruby, PHP, Python, Go等 アプリの開発言語に合わせた実行環境 「コンテナー」単位で環境を提供 アプリケーションが必要とする機能を提供する いつでも好きなタイミングで作成・削除可能 ランタイムとの組み合わせ可否に要注意 © 2016 IBM Corporation IBM Bluemix www.bluemix.net 新しい顧客体験をもたらすIBM Bluemix 迅速なアプリケーション開発、管理、と実⾏を実現するクラウド 豊富な「API」「サービス」をご提供 120を超える⾼品質のサービスでクイックにアプリ開発 1年でAPI,サービス数は約2倍に!強⼒なパートナーシップ提携も!! § § § § § § 15 実⾏環境 § データベース § モバイル § ビッグデータ § アナリティクス § Web & アプリケーション Watson IoT インテグレーション セキュリティ 開発⽀援ツール © 2016 IBM Corporation IBM Bluemix www.bluemix.net 実習1:外部APIとの連携(いつもNAVI) 16 © 2016 IBM Corporation IBM Bluemix www.bluemix.net いつもNAVI APIのユーザー登録 q いつもNAVIデベロッパーズサイトにアクセス ¦ https://support.e-map.ne.jp/developer/ q q q q q 「無料で新規登録」をクリック その後、ガイドに従い、ユーザー登録を完了 再度、いつもNAVIデベロッパーズサイトにアクセス 割り当てられたID、登録したパスワードにてログイン ログイン後、企業IDを確認 ¦ APIを呼び出す際のAPI認証キーとなります。 17 © 2016 IBM Corporation IBM Bluemix www.bluemix.net リファラの登録 q APIを呼び出し元のサーバー(アプリケーションURL)を指定します。 q リファラは、作成したBluemixのNode-REDアプリケーションのURLを指定してください。 q サービス名は、任意の名前をご指定ください。 18 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-REDからいつもNAVI APIを呼び出す q Node-REDからゼンリンいつもNAVI APIを呼び出します。 q 基本セットとなる、下記のノードを構成してください。 templateノード (ここではデフォルトのまま) 19 © 2016 IBM Corporation IBM Bluemix www.bluemix.net スタートガイドにあるサンプルを確認 q 下記URLにある内容を参考に、最も簡単なサンプルを表⽰します。 ¦ http://support.e-map.ne.jp/manuals/V20/index.html?%A5%B9%A5%BF%A1%BC%A5%C8%A5%AC%A5%A4%A5%C9 q サンプルのソースコードをコピーします ソース全⽂をコピー key=xxx はNode-RED上で ご⾃⾝のキーに要変更 20 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Templateノードの編集 q コピーしたソースコードをTemplateノードに貼り付けます q key=xxx の情報をご⾃⾝の企業ID(API認証キー)に置き換えます q 更新する箇所は、key=xxx& の xxx の箇所です。 21 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-REDのデプロイ q Templateノードの編集後、Bluemix上のアプリケーション・ソースコードを反映させ るため、Deployボタンをクリックしてください。 22 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-REDアプリケーションの確認 q 以下のURLでブラウザから表⽰されるか確認する ¦ http://<アプリケーションURL>/map 23 © 2016 IBM Corporation IBM Bluemix www.bluemix.net 任意の場所を中⼼点に表⽰ q ソースコードの緯度、経度の情報を更新して、中⼼点に表⽰される場所を変更します q http://www.geocoding.jp/ などで緯度・経度情報を確認できます ¦ 例 : 九州⼯業⼤学 ⼾畑キャンパス緯度 (33.894152)、経度(130.839226) q 更新後、「OK」ボタンをクリックします q Node-REDのDeployボタンをクリックします 24 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-REDアプリケーションの確認 q 以下のURLでブラウザから表⽰されるか確認する ¦ http://<アプリケーションURL>/map 25 © 2016 IBM Corporation IBM Bluemix www.bluemix.net 地図の種類を指定する q 地図のマップタイプを変更することで異なるデザインの地図を表⽰することができます。 q マップタイプに関する詳細 http://support.emap.ne.jp/manuals/V20/index.html?%A5%AF%A5%E9%A5%B9%A5%EA%A5%D5%A5%A1%A5%EC%A5%F3%A5%B 9%2FZDC.Map#gefe7ee5 26 © 2016 IBM Corporation IBM Bluemix www.bluemix.net mapTypeの追加 q ZDC.Mapの第2引数のオプションmapTypeを指定します。 q 下記の⾚字箇所を追加します。マップタイプ名は前ページの表をご参照ください。 function loadMap() { map = new ZDC.Map( document.getElementById('ZMap'), { latlon: new ZDC.LatLon(lat, lon), zoom: 3, }; 27 ); } mapType: <任意のマップタイプ名> © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-REDアプリケーションの確認 q 以下のURLでブラウザから表⽰されるか確認する ¦ http://<アプリケーションURL>/map 28 © 2016 IBM Corporation IBM Bluemix www.bluemix.net 実習2:Watson APIによる顔認識(AlchemyAPI) 29 © 2016 IBM Corporation IBM Bluemix www.bluemix.net クイズ王を打ち負かした質疑応答システムWatsonとは q ⽶国のクイズ番組 Jeopardy! に出場し、コンピュータの能⼒を⽴証 – – – – – オープンドメインの質問応答 複雑な問題⽂とカテゴリの解釈 ⾼い正解率 (約89%) 確信度の推定 (ボタンを押すか否かの判断) ⾼速な応答 (2〜3秒で回答) q Watsonが解いた問題と情報源 – 事実に基づく知識が問われる問題 – 歴史・⽂学・スポーツ・⾔葉遊び… – 百科事典・ニュース等の静的な情報源を利⽤ – 対戦中はインターネットには接続せず – キーワードの⼀致だけでなく、意味内容に基いて 問題⽂と情報源を関連づけて、正解率を向上させた 30 © 2016 IBM Corporation IBM Bluemix www.bluemix.net 質問応答システムの基本原理 問題(⽂)の内容を分析して、事前に収集された⼤量のテキスト情報から問題の解答候補とその根拠・ 確信度を計算し、⾼い確信度の候補が得られた場合に解答する、という⼀連の知的処理を⾼速に実⾏ するコンピューター・システム 膨⼤な情報源 外交関係 ⽶国が外交関係を持 たない世界の4ヶ国 のうち、この国は最 も北にある ⽶国-外交ない-国 この国-ある-北 ??? 問われている 内容の解析 問題 31 解答候補 の⽣成 ブータンは未だに ⽶国、中国、ロシ ア、英国、フラン スとの外交関係は ない ブータン? キューバ? イラン? 北朝鮮? 根拠の探索と確信 度の計算 これだけの計算を数秒以内に実⾏ キューバは、フ ロリダ半島の 145km南に位置 する。 北朝鮮 最も確信度の⾼ い解答 解答 © 2015 International Business Machines Corporation © 2016 IBM Corporation IBM Bluemix www.bluemix.net WatsonはIBM Bluemixから簡単に使えます 32 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Watsonの事例① 33 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Watsonの事例② LOCAL MOTORS社 -電気ミニバスOlli ・IBM Watsonを乗客インターフェイスに利⽤ ・3Dプリントで製作された⾃動運転⾞を利⽤ Local Motorsの最⾼経営責任者(CEO)兼共同創設者 John B. Rogers, Jr.とOlli 34 ⾞体には、30以上のセンサーが搭載され、10時間で製造。ワシント ンD.Cに続き、マイアミとラスベガスでパイロット予定。 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Watsonの事例③ 「Jill Watson」 学⽣はティーチングアシスタントが実際には⼈間ではなくロボット だったことに気づかなかった • • • • • • 35 ジョージア⼯科⼤学のアショク・ゴール教 授らの研究チームが実施 Watson(ワトソン)を使って、オンライン 学習プログラムのTAをコンピューターに 担当させるという実験 約4万件分の学⽣からのメールやチャット を読み込ませて、質問や相談に対する応答 ⽅法を学習 Jill⾃⾝が「97%以上の精度で正しく答え られる」と判断した質問にのみ応答 300⼈強の学⽣のための9⼈いるTAの⼀⼈ として、2016年1⽉からJillを運⽤し開始 Jillがロボットであるという種明かしをさ れた学⽣は、みな⼀様に驚いたとのこと © 2016 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPI概要 36 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPIによる画像解析 画像解析、タグ付 Classifier Confiden ce Score car 97% racing 97% race 92% motorspo rt 73% circuit 52% 顔認識、⼈名判断 Twitterコメントの感情度分析 37 © 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 38 ※ Face Detection APIの例 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPIが提供するAPI ※2016年3⽉22⽇現在 n AlchemyLanguage 39 API 説明 API 説明 Sentiment Analysis ⽂章のセンチメントを分析 Combined Call Taxonomy ⽂章のトピック・カテゴリーを階層 的に分析/分類 1つのコンテンツに対して複数の 分析をまとめて処理 Publication Date Webページの発⾏⽇を判別 Concept Tagging ⽂章の内容から明⽰的/暗黙的な コンセプトを導出 Data Extraction テキストから⽇付を取得 Emotion Analysis (β) テキストから感情を分析 API 説明 Face Detection 画像から顔の位置、年齢、性別を 判断 Entity Extraction ⽂章から⼈、組織、場所などのエン ティティーを抽出 Keyword Extraction ⽂章からキーワードと関連性、 センチメントを抽出 Relation Extraction ⽂章の主語、述語、⽬的語を抽出 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でリクエスト 送信処理を実装するのがお勧め 40 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPIの利⽤ケース q アプリの要件に依存する部分が多いが、主な利⽤ケースは以下の通り: ¦ AlchemyLanguageやAlchemyDataが基本的に英語のサービスとなるため、⽇本語に対する 処理を⾏いたい場合は、翻訳APIを経由して処理を⾏うことを検討する ① 画像のカテゴリー分類 ② センチメント分析 / 感情分析 チャット データ API呼び出し 分類 ü AlchemyVisonのAPIで⼤まかに画像を分類 • Face Detectionで男⼥, 年齢別に分類 • Image Taggingで画像に対するタグ付け ü ⼤まかに分類した画像を確認し、Watsonの Visual Recognitionでお客様に合わせて学習させ、 画像分類の精度を上げるアプローチで利⽤ 41 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キーは必要 42 (*1)⽇本語は未サポート(2016年3⽉時点) © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPIをBluemixの Node-REDから呼び出そう! 43 © 2016 IBM Corporation IBM Bluemix www.bluemix.net ハンズオン⼿順 qNode-Red全体フロー qBluemixでNode-REDサービス、WatsonのAPIを設定する qAlchemyAPIを追加する qNode-REDでプログラミング q動作確認 44 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED全体フロー q 画像のURL(例:"http://xxxxx.jpg" )をImage AnalysisのAPIにかけると画像解析 を⾏い、顔認識の結果を返してくれるサンプルアプリです。 45 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED環境の作成(1/3) 46 46 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED環境の作成(2/3) n アプリケーション名を⼊⼒します 47 47 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED環境の作成(3/3) 48 48 © 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 49 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPIを追加する q Node-REDのノードに画像認識のためのImage Analysisがあるのですが、このままで は使えません。 このNode-REDのアプリケーションにAlchemyAPIを追加してあげる 必要があります。 https://ibm.biz/Bd4NRZ ←Image Analysis 50 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPIを追加する q Bluemixのメニュー画⾯からダッシュボードをクリックし、先ほどのNode-REDのアプ リケーションをクリックしてください。 https://ibm.biz/Bd4NRZ 51 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPIを追加する q 続いて、サービスのまたはAPIの追加をクリックしてください。 https://ibm.biz/Bd4NRZ 52 © 2016 IBM Corporation IBM Bluemix www.bluemix.net AlchemyAPIを追加する q 次の画⾯で現れるAPIの⼀覧からAlchemyAPIをクリックします。 q その後、再ステージング(再起動)のポップアップ画⾯が表⽰されるので、再ステー ジングし正常に再起動すればOKです。 https://ibm.biz/Bd4NRZ 53 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-REDでプログラミング 54 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED全体フロー q 画像のURL(例:"http://xxxxx.jpg" )をImage AnalysisのAPIにかけると画像解析 を⾏い、顔認識の結果を返してくれるサンプルアプリです。 55 © 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 56 © 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 57 © 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> 58 © 2016 IBM Corporation IBM Bluemix www.bluemix.net change node q ⼊⼒画⾯から画像URLを抽出するchangeノードを定義します。左側のリソースパレッ トのfunctionカテゴリ内のchangeノード をフロー・エディタ中央のキャ ンバスにドラッグ&ドロップします。 ここからpayload属性をimageurl属性に変換し ます。以下の通りにプロパティを設定します。 https://ibm.biz/Bd4NRZ 59 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Image Analysis q 画像解析のためのImage Analysisノードを定義します。左側のリソースパレットの Watsonカテゴリ内のImage Analysisノード をフロー・エディタ中央のキャン バスにドラッグ&ドロップします。プロパティーでは顔認識を⾏うため、以下の通りに DetectをFaceに設定します。 https://ibm.biz/Bd4NRZ 60 © 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 61 © 2016 IBM Corporation IBM Bluemix www.bluemix.net HTTP Response q アウトプットをHTML表⽰させるためのHTTP Responseノード 62 をを追加 © 2016 IBM Corporation IBM Bluemix www.bluemix.net フローをつなげる q 出来上がった各ノードをつなげて、右上のDepoyをクリックすれば完成です!エラーが 出ていないことを確認してください。 https://ibm.biz/Bd4NRZ 63 © 2016 IBM Corporation IBM Bluemix www.bluemix.net 動作確認 q ブラウザのURL欄にhttp://xxxx.mybluemix.net/callwatson をインプットして呼び 出してみましょう。 Image URLの⼊⼒欄にWatsonに読ませたい画像URLを⼊れてみ てください。顔の認識や⼈物名が出てきます!さすがWatson! https://ibm.biz/Bd4NRZ 64 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Bluemix関連情報 65 © 2016 IBM Corporation IBM Bluemix www.bluemix.net いろいろな Bluemix サービスを触ってみたい http://www.ibm.com/developerworks/jp/bluemix/tutorial.html 66 66 © 2016 IBM Corporation IBM Bluemix www.bluemix.net 最新情報をキャッチアップしながらBluemixに触れていきたい セミナー形式、ハンズオン形式、Webセミナー形式など、さまざまな開催形式にて、 Bluemixの技術的な内容、最新情報をお届けしております。 開催内容 概要 URL developerWorks Events ディベロッパー様向け技術イベント情報 クラウドに触れる - イベント情 報 日本IBMのクラウドイベント情報を随時アップデートしております。http://www.ibm.com/cloud-computing/jp/ja/event.html Bluemix いつでも Webinar 2016 年は不定期配信もしくは動画公開のみとなる予定ですが、過 去 27 回にわたるWebinar資料を掲載しています。 http://www.ibm.com /developerworks/jp/events/ https://www.ibm.com /developerworks/community/wikis/home ?lang=en#!/wiki/Wdec01e50fbfa_493c_8a88_6dd85c4d983f/ page/%E4%BB%8A%E3%81%8B%E3%82%89%E3%81%AF% E3%81%98%E3%82%81%E3%82%8BBluemix%20Webinar%E 3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA 67 67 © 2016 IBM Corporation IBM Bluemix www.bluemix.net サービスの組み合わせ⽅のベストプラクティス ユースケースに合わせた Reference Architecture を掲載しています。サンプルアプリ、実施⼿順も掲載 https://developer.ibm.com/architecture/ 68 68 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Bluemix ユーザー会 (Bluemix User Group) Bluemix User Group(BMXUG -ビーザグ): ・IBM Bluemix の利⽤促進や情報交換のためのユーザーグループです ・現時点、⽇本国内では約1,700名のお客様にご登録いただいております ・ユーザーの皆様により、定期的に勉強会や研修等を実施いただいております Qiita の Bluemix タグでの投稿を ぜひフォローしましょう! Slack での情報交換も活発です。 ビーザグ と読みま す bmxug.doorkeeper.jp ibm.biz/bluemixug qiita.com/tags/bluemix ja.stackoverflow.com/questions/tagged/blue mix 69 69 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED を始めるならまずはここ! Qiita の Node-RED タグでの投稿を ぜひフォローしましょう! http://qiita.com/tags/node-red これから始める⽅は、 まず下記の3つは要チェックです! http://qiita.com/joeartsea/items/93e8483a31292067c654 Facebook での Node-RED ユーザー会 http://qiita.com/zuhito/items/e9abfd6f1ba188f908ed https://www.facebook.com/groups/noderedjp/ 70 70 http://qiita.com/junkonakajima/items/a885a88e0f177058b1d6 © 2016 IBM Corporation IBM Bluemix www.bluemix.net IBM Watson Developer Cloud http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/ サービス一覧 各サービス詳細 サンプルアプリ、ユースケース コミュニティー 71 API Reference © 2016 IBM Corporation IBM Bluemix www.bluemix.net ご注意 この資料に含まれる情報は可能な限り正確を期しておりますが、⽇本アイ・ビー・エム株式会社の正式なレビューを受けておらず、当資 料に記載された内容に関して⽇本アイ・ビー・エム株式会社は何ら保証するものではありません。 従って、この情報の利⽤またはこれらの技法の実施はひとえに使⽤者の責任において為されるものであり、資料の内容によって受けたい かなる被害に関しても⼀切の補償をするものではありません。 また、IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。 他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点でのIBMの商標リストについては、 www.ibm.com/legal/copytrade.shtmlをご覧ください。 当資料をコピー等で複製することは、⽇本アイ・ビー・エム株式会社および執筆者の承諾なしではできません。また、当資料に記載され た製品名または会社名はそれぞれの各社の商標または登録商標です。 72 © 2016 IBM Corporation IBM Bluemix www.bluemix.net 付録:Node-RED概要 73 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED について n IBM 英国Hursley 研究所の Emerging Technology Teamで開発され たソフトウェア • 2013年、社内ハッカソンで堂々⼀位、GitHub に登録 • 2014年 Qcon で発表 n オープンソースプロジェクトとして提供 74 74 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-REDの特徴 ハードウェアデバイス,API,オンラインサービスが画期的な ⽅法で結合された"仮想環境をブラウザ上で実現 n ブラウザベース UI n node.js で動作 • 軽量 n 機能をカプセル化して Nodeとして利⽤ n 独⾃Nodeを作成・追加可 能 n Bluemixの様々なサービス を簡単に利⽤可能 75 75 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED 画⾯ シート 表⽰情報の 切り替え 実装UI デプロイ実⾏ ノード 処理フロー ノードパレット 76 Node Infomation またはデバッグコンソール 76 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-RED実装⽅法 ④Deployを選択 Node-RED画⾯ ①ノードを選択し ドラッグ&ドロップ ②ノード間を 接続 ③ノードプロパティ設定 77 77 © 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の更新受信時にイベント起動 コネクタが右側に存在 ⇒①イベントの起動 イベント起動条件を満 たしたとき、その情報 を送信する 78 コネクタが左右に存在 ⇒②データ変換/分岐 左からデータ受信。 それを変換/分岐させ、右側に結 果を返す コネクタが左側に存在 ⇒③外部アプリ起動/DB保存 左からデータを受信し、それ を送信/保存 78 © 2016 IBM Corporation IBM Bluemix www.bluemix.net ①イベントの起動 コネクタが右側に存在するもの 79 Node名称 イベント開始条件 後続フローに送信する内容 Inject 定期起動orノードのクリック 指定⽂字列or現在時刻or 情報なし(起動のみ) デバック向けの機能。 http http://[xxxxxxx].mybluemi x.net/[ノードのURL]リクエ スト送信時 リクエスト情報 Mail メール受信時、または未読 メール存在時定期起動 メール本⽂(text/plain) Twitter 指定メッセージのTweet時に ⾃動起動 Tweet情報 (本⽂、発⾔場所、国…) Feedparse RSS/atomの更新受信時 - 79 © 2016 IBM Corporation IBM Bluemix www.bluemix.net ②データ変換/分岐 コネクタが左右に存在するもの 80 Node名称 機能 後続フローに送信する内容 Function 受領データの更新 更新済データ Switch 条件に応じて、フローを分岐 させる 受信データ Delay フローを待機 受信データ http request 指定サイトに接続 接続サイトのソース Cloudant DB検索 DBの検索結果 Sentiment 受信データをセンチメント分 析 評価情報を追加した受信データ Html HTMLソースのうち、指定タ グをすべて取得 指定したタグの情報 80 © 2016 IBM Corporation IBM Bluemix www.bluemix.net ③外部アプリ起動/DB保存 コネクタが左側に存在するもの 81 Node名称 機能 Debug フロー上に流れている情報を画⾯表⽰ http response http requestを返す Cloudant DBへのデータ保存 Mail メール送信 81 © 2016 IBM Corporation IBM Bluemix www.bluemix.net プログラミング JavaScriptで記述します • 簡易エディターが付属 • ⾮同期処理も可能 ※より複雑な処理は node の 作成をお勧めします。 function は最後に return msg; をいれる と次のnode に送信してくれます。 82 詳細ドキュメント: http://nodered.org/docs/writingfunctions.html 82 © 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 間で共有されるグローバルオブジェクト 83 83 © 2016 IBM Corporation IBM Bluemix www.bluemix.net Node-REDノード操作⽅法 84 84 © 2016 IBM Corporation
© Copyright 2024 ExpyDoc