...

Bluemix

by user

on
Category: Documents
27

views

Report

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
Fly UP