Slide 1

Slide 1 text

秋のIBM Dojo #6 AI(Watson API) + App on OpenShift Kyoko Nishito Developer Advocate Tokyo City Team

Slide 2

Slide 2 text

Kyoko Nishito IBM Developer Advocate 2 KyokoNishito

Slide 3

Slide 3 text

本⽇のタイムテーブル 14:00-14:05 (5min) オープニング 資料ダウンロード,出席登録など 14:05-15:00 (55min) AI (Watson API) <座学+DEMO> 15:00-16:30 (90min) AI (Watson API) + App on Minishift コードチャレンジ <ワークショップ> 16:30-17:00 (30min) クローズ

Slide 4

Slide 4 text

本⽇の資料 本⽇の資料はこちらからPCにダウンロードお願いし ます。URLをクリックしたり、コマンドをコピペしたりでき ますので、サイトでみるのではなく、ダウンロードをお勧めし ます。(connpassの資料にもリンクあり) http://ibm.biz/dojo20191120doc

Slide 5

Slide 5 text

出席登録 こちらのURLにアクセスして、IBM Cloudにログイン お願いします。 アカウント未登録の⽅もこちらから登録お願いします。 https://ibm.biz/BdzuAW

Slide 6

Slide 6 text

ハンズオン事前準備 https://ibm.box.com/v/20191120DojoPrep 1. IBM Cloudアカウントの取得 2. IBM Cloud CLIのインストール 3. Node.jsのインストール 4. Gitのインストール 5. VS Codeなどコードエディタ 6. Minishift (オプション) 詳細は

Slide 7

Slide 7 text

学習の⽬的とゴール ⽬的 WatsonとWatson APIの概要について理解する ゴール Watson APIを利⽤したアプリケーションを作成できる このコースを学ぶ⽅の想定スキル 何かしらのプログラミング経験があり、Watson APIを初めて 利⽤する⽅

Slide 8

Slide 8 text

本⽇の説明内容 1. AI & IBM Watson 2. Watson API 3. Watson APIの使い⽅ (DEMO) 4. まとめ 5. コードチャレンジ

Slide 9

Slide 9 text

1. AI & IBM Watson

Slide 10

Slide 10 text

⼈⼯知能(AI)は ⼈間の知能のはたらきを模倣し, 機械(技術)で実現した能⼒です。 10

Slide 11

Slide 11 text

⼈間の知能の例 Human Intelligence 11 計画 学習 創造性 問題解決 推論 知覚 操作

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Watson APIサービス⼀覧 2019年3⽉現在 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 14

Slide 14 text

• データにラベルをつけたりDeep Learningのモデルを⼤量データで学習させるのは ⾮常に労⼒がかかります。企業は⼤量のデータを持つがラベル付けされているデー タは多くはなく、また学習のための仕組みを持っていません。 • すでに多くの企業がWatsonを業務に活⽤しており、顧客体験の向上や専⾨家の ワークの効率化や新しいビジネスモデルや戦略の開発を実現しています。 • 社内の様々なシステムと連携しフルトランザクションに対応 • 顧客が選べるよう複数チャネルを展開 • 双⽅向のデジタルコミュニケーション • 少ないデータでも効率的に学習できるというWatsonのアドバンテージ • ①ラベルのないデータからの学習 • ②コンセプトからの学習 • ③誤りからの学習 • ④学習の仕⽅についての学習 • Watsonはテクノロジーをシンプルなものとして企業にお届けし、AIを企業全体に スケールして活⽤することを⽀援します Trends & Directions: Put AI to Work @think2019

Slide 15

Slide 15 text

Cloud上で使えるAIサービス ・・・ Internet PC Azure AWS GCP IBM Cloud Smart Phone Server 各社クラウド Direct Link

Slide 16

Slide 16 text

16 Watson APIの特徴 • ネットワーク経由でアクセス • REST形式のインターフェイス • Java, Python, Node.jsなどに対応した APIライブラリ(SDK) • https://github.com/watson-developer-cloud

Slide 17

Slide 17 text

17 Watson APIの特徴 • ネットワーク経由でアクセス • REST形式のインターフェイス • Java, Python, Node.jsなどに対応した APIライブラリ(SDK) • https://github.com/watson-developer-cloud

Slide 18

Slide 18 text

18 Watson API REST形式のインターフェース ・・・ HTTP Request GET POST PC HTTP Response JSON JSON Azure AWS GCP IBM Cloud Smart Phone Server 各社クラウド

Slide 19

Slide 19 text

RESTインターフェースの例 19 クライアント https://gateway.watsonplatform.net /language- translator/api/v3/translate URL: https://gateway.watsonplatform.net/ language-translator/api/v3/translate メソッド: POST {"text":["Hello"], "model_id":"en-ja"} {"text":["Hello"], "model_id":"en-ja"} JSON ②対応する 処理 APIサービス {"text":["Hello"], "model_id":"en-ja"} JSON { "translations" : [ { "translation" : "ハロー" } ], "word_count" : 1, "character_count" : 5 } ①リクエスト 送信 ③レスポンス 送信

Slide 20

Slide 20 text

20 Watson APIの特徴 • ネットワーク経由でアクセス • REST形式のインターフェイス • Java, Python, Node.jsなどに対応した APIライブラリ(SDK) • https://github.com/watson-developer-cloud

Slide 21

Slide 21 text

IBM の データ & AI プラットフォーム インフラ ストラクチャー インダストリー プラット フォーム Security Services Any SaaS Insurance Industrial Public & Comms Any AI Watson OpenScale Block- chain IoT Watson Studio Watson Machine Learning Watson Knowledge Catalog Watson API RedHat OpenShift Any Cloud AWS, Azure… Cloud Integration SW(Cloud Pak) Banking & Financial Markets Any Hardware IBM Systems Z, P IBM Cloud VMware SAP Cloud Native Distribution Cloud Pak for Data Any Tool ハイブリッド、マルチクラウドに対応し、オープンなAI活⽤を実現

Slide 22

Slide 22 text

2. Watson API

Slide 23

Slide 23 text

Watson APIサービス一覧 2019年3⽉現在 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 24

Slide 24 text

Watson APIサービス一覧 2019年3⽉現在 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 25

Slide 25 text

Watson Assistant 25 ü チャットボットのような対 話アプリケーションの開発 に最適 ü 会話フローをグラフィカル に開発できるツールを提供 ü 作成した会話フローをAPIで 呼び出し Watson: こんにち はシステムサポー トです。何かお困 りですか︖ User: 交通費精算シ ステムだよ。 エンティティー: システム Value: 交通費精算システム Watson: 何のシス テムにログインで きないのですか︖ User: ログインでき ないよ 意図: ログイン不可 Watson:交通費精 算システムにログ インできない場合 のチェック項⽬の URLを送ります http://xxx 交通費精算システムのログイ ン不可にに関する情報を検索 色々な言い回し “ログインエラーになる” “ログインが失敗するけど” 色々な言い回し “交通費のやつ” “精算システム” Webツールで インテント、 エンティ ティー、 会話フロー を作成可能 https://www.ibm.com/watson/jp- ja/developercloud/conversation.html

Slide 26

Slide 26 text

DEMO 26 DOC ID / Month XX, 2018 / © 2018 IBM Corporation Watsonを使⽤したLINE chat bot

Slide 27

Slide 27 text

参考情報 27 LINEチャットボットとWatsonを連携する https://medium.com/@taiponrock/line%E3%83 %81%E3%83%A3%E3%83%83%E3%83%88% E3%83%9C%E3%83%83%E3%83%88%E3%81 %A8watson%E3%82%92%E9%80%A3%E6%90 %BA%E3%81%99%E3%82%8B-8a7d89a49e57 10分で解説︕ Watson Assistantでチャットボットを開発する https://www.youtube.com/watch?v=ZRwsu4OXLeE

Slide 28

Slide 28 text

Natural Language Understanding (NLU) üテキストを分析し、概念、エンティ ティー、キーワード、カテゴリー、 感情、関係、意味役割などのメタ データを抽出※ ü事前学習済みであり、学習なしで解 析結果を取得 抽出できるもの • エンティティ(Entities) • 関係(Relations) • 概念(Concepts) • キーワード(Keywords) • 評判 (Sentiment) • 感情 (Emotion) ※ • カテゴリー(Categories) • 構⽂解析(Semantic Roles) ※ 感情分析(Emotion)は⽇本語には対応していません https://www.ibm.com/watson/services/natural-language- understanding/

Slide 29

Slide 29 text

DEMO 29 https://natural-language-understanding-demo.ng.bluemix.net/ 今⽇のニュースからメタデータを抽出してみます

Slide 30

Slide 30 text

üWatsonを利⽤した⽂書検索 エンジン ü膨⼤なテキストデータを取 り込み、NLUで解析、検索に 利⽤ ü⾃然⾔語でも検索できる (またはDiscovery Query Language(DQL)) Discovery https://www.ibm.com/watson/jp-ja/developercloud/discovery.html

Slide 31

Slide 31 text

Discovery News üDiscoveryのインスタンスを作成すると、世界各地のニュー ス記事を保持している、事前作成済み読み取り専⽤コレク ション Discovery News がすぐに使える状態になります。 ・データ登録の必要なしにすぐに使える ・IBM選定の10万のニュースソース ・1⽇当たり30万件以上の記事(⽇本語記事は1⽇あたり17,000件)

Slide 32

Slide 32 text

DEMO 32 気になるニュースを検索してみましょう︕ https://discovery-news-demo.ng.bluemix.net/

Slide 33

Slide 33 text

33 Visual Recognition • 画像認識「⼀般種別」(General Tagging): • 事前学習済みの分類器の出⼒を返します • 画像認識「カスタム」: • 識別を⾏いたいクラスのイメージを事前学習させ、その 分類器の出⼒を返します。 事前学習 不要 事前学習 必要 https://www.ibm.com/watson/jp-ja/developercloud/visual-recognition.html

Slide 34

Slide 34 text

DEMO 34 後ほどの「コードチャレンジ」で実際に作成できます

Slide 35

Slide 35 text

DOC ID / Month XX, 2018 / © 2018 IBM Corporation Text to Speech テキスト⽂章を⾳声に変換する https://text-to-speech-demo.ng.bluemix.net DEMO

Slide 36

Slide 36 text

DOC ID / Month XX, 2018 / © 2018 IBM Corporation Speech to Text ⾳声をテキスト⽂章に変換する https://www.ibm.com/watson/jp-ja/developercloud/speech-to-text.html Language Translator ⾃然⾔語テキストについて他⾔語へ翻訳を⾏う Natural Language Classifier テキスト⽂章の分類を⾏う(質問の意図推定など) https://www.ibm.com/watson/jp-ja/developercloud/language-translator.html https://www.ibm.com/watson/jp-ja/developercloud/nl-classifier.html

Slide 37

Slide 37 text

37 © 2018 IBM Corporation Personality Insights テキストから筆者の性格を推定する https://www.ibm.com/watson/jp-ja/developercloud/personality-insights.html DEMO https://personality-insights-demo.ng.bluemix.net/

Slide 38

Slide 38 text

38 © 2018 IBM Corporation Tone Analyzer(⽇本語未対応) テキストから筆者の感情、社交性、⽂体を 解析する https://tone-analyzer-demo.ng.bluemix.net/

Slide 39

Slide 39 text

3. Watson APIの使い⽅ (DEMO) ここからDEMOになります。 事前準備がお済みの⽅は⼀緒にやってみましょう︕

Slide 40

Slide 40 text

Watson APIの使い⽅の基本 40 1. IBM Cloudにログインして必要なサービスを作成 今回はLanguage Translator を使います。 2. 作成したサービスの資格情報である API KEY(API鍵)、URLを取得 3. 取得したAPI KEY、URLを指定してAPIを呼び出す APIの詳細はこちらから確認 https://cloud.ibm.com/apidocs

Slide 41

Slide 41 text

Watson APIの使い⽅の基本 41 1. IBM Cloudにログインして必要なサービスを作成 今回はLanguage Translator を使います。 2. 作成したサービスの資格情報である API KEY(API鍵)、URLを取得 3. 取得したAPI KEY、URLを指定してAPIを呼び出す APIの詳細はこちらから確認 https://cloud.ibm.com/apidocs

Slide 42

Slide 42 text

本イベントでは、 IBM Cloud へのアクセスは上記URLから行ってください • IBM Cloud ログイン アカウントをすでにお持ちの方は、 こちらからログインしてください • IBM Cloud ライトアカウント作成 アカウントをお持ちでない方は、 ご登録をお願いします 【本⽇のお願い】 1. IBM Cloudにログイン︕ DEMO 本イベント以外では https://cloud.ibm.com/login からログイン可能です https://ibm.biz/BdzuAW

Slide 43

Slide 43 text

2. 「カタログ」をクリック 43 DEMO

Slide 44

Slide 44 text

44 3. 左側のメニューから 「AI」をクリック DEMO

Slide 45

Slide 45 text

45 3. スクロールして使いたいWatsonサービスを クリック 今回は Language Translator をクリックしてください。 DEMO

Slide 46

Slide 46 text

46 4. 地域とプランを選んだら「作成」をクリック DEMO

Slide 47

Slide 47 text

47 5. 下記のような画⾯に変わったら作成完了! DEMO

Slide 48

Slide 48 text

Watson APIの使い⽅の基本 48 1. IBM Cloudにログインして必要なサービスを作成 今回はLanguage Translator を使います。 2. 作成したサービスの資格情報である API KEY(API鍵)、URLを取得 3. 取得したAPI KEY、URLを指定してAPIを呼び出す APIの詳細はこちらから確認 https://cloud.ibm.com/apidocs

Slide 49

Slide 49 text

49 1. 左側のメニューから「管理」をクリック DEMO

Slide 50

Slide 50 text

50 資格情報にあるAPI KEYとURLをテキストファイルなどにコピーします。 このアイコンで コピーできます 2. API鍵(=API KEY), URLをコピー DEMO

Slide 51

Slide 51 text

51 1 HINT: よくわからない画⾯になった場合 IBM Cloud→リソースの表⽰→サービス→表⽰させたいサービス名 2 3 4

Slide 52

Slide 52 text

Watson APIの使い⽅の基本 52 1. IBM Cloudにログインして必要なサービスを作成 今回はLanguage Translator を使います。 2. 作成したサービスの資格情報である API KEY(API鍵)、URLを取得 3. 取得したAPI KEY、URLを指定してAPIを呼び出す APIの詳細はこちらから確認 https://cloud.ibm.com/apidocs

Slide 53

Slide 53 text

53 APIの詳細はこちらから確認 https://cloud.ibm.com/apidocs 1. まずはAPIの使い⽅を確認 クリック DEMO

Slide 54

Slide 54 text

54 2. 今回はNodeを使うのでNodeのタブを確認 他の⾔語の SDKから使 う場合は対 応する⾔語 をクリック します DEMO

Slide 55

Slide 55 text

55 3. Translateの使い⽅を確認 DEMO

Slide 56

Slide 56 text

56 4-1: ターミナル または コマンドウィンドウを開きます。 4-2: 以下のコマンドでディレクトリを作成し、作成したディ レクトリに移動します。($は⼊⼒しないでください) 4. サンプルコード実⾏ DEMO $ mkdir translate $ cd translate 4-3:ターミナル または コマンドウィンドウはそのままにして、 エディター(VSCode, メモ帳(windows), vi(Mac)など)を開き ます。

Slide 57

Slide 57 text

57 4-4: APIドキュメントにあるExample requestのコードをコ ピーします。 url: https://cloud.ibm.com/apidocs/language-translator?code=node#translate 4. サンプルコード実⾏ DEMO

Slide 58

Slide 58 text

58 4-5: コピーしたコードを開いているエディターにペーストし ます。 4. サンプルコードの実⾏ DEMO

Slide 59

Slide 59 text

59 4-6: 7⾏⽬: {apikey}を2でコピーしたAPI鍵で置き換えます。 4. サンプルコードの実⾏ DEMO 4-7: 9⾏⽬: {url}を2でコピーしたURLで置き換えます。

Slide 60

Slide 60 text

60 4-8: 4-2で作成したディレクトリに translate.js という名前で保存します。 4. サンプルコードの実⾏ DEMO

Slide 61

Slide 61 text

61 4-9: APIドキュメントにあるInstallationのコードをコピーしま す。 url: https://cloud.ibm.com/apidocs/language-translator?code=node#introduction 4. サンプルコードの実⾏ DEMO

Slide 62

Slide 62 text

62 4-10: 先ほど開いたターミナル または コマンドウィンドウに 戻り、コピーしたコマンドをペーストし実⾏します。 4. サンプルコードの実⾏ DEMO $ npm install ibm-watson@^5.1.0 4-11: 以下のコマンドでtranslate.jsを 実⾏します。 $ node translate.js Macで権限エラーが発⽣する場合は、先頭に sudo をつけて実⾏してください。 sudo npm install ibm-watson@^5.1.0

Slide 63

Slide 63 text

63 4-12: 実⾏結果は確認できましたか︖ 英語のHelloがスペイン語のHolaに変換されています。 4. サンプルコードの実⾏ DEMO サンプルコード 結果

Slide 64

Slide 64 text

64 translate.jsを修正し、13⾏⽬のtextを適当な⽇本語の⽂章に、 model_idを'ja-en'にして保存し、実⾏してみましょう。 4. [オプション]サンプルコードの実⾏ A. 翻訳⾔語の変更 DEMO サンプルコード 結果 https://cloud.ibm.com/docs/services/language-translator?topic=language-translator-translation-models 使⽤可能なmodel_idはこちら: $ node translate.js 以下をのコマンドを実⾏

Slide 65

Slide 65 text

65 サービスのAPI KEY, URLが取得できる管理画⾯から ibm-credentials.env というAPI KEYとURLが⼊っているファ イルがダウンロードできます。 これを以下のいずれかに置くと、コード内でAPI KEYとURLの 記述が不要です。 • 環境変数IBM_CREDENTIALS_FILEで指定したPATH • システムのhome directory • プログラムの実⾏directory(working directory) 4. [オプション]サンプルコードの実⾏ B. Credentials fileの使⽤ DEMO

Slide 66

Slide 66 text

66 4B-1: この資料の46ページ、 44­15ページを参照して、 Language Translationサービス の管理画⾯を表⽰します。 資格情報の「ダウンロード」をク リックし、4-2で作成したディレ クトリにibm-credentials.env と いうファイルを保存します。 4. [オプション]サンプルコードの実⾏ B. Credentials fileの使⽤ DEMO

Slide 67

Slide 67 text

67 4B-2: translate.jsを修正し、 IamAuthenticatorの定義をしている2⾏⽬と、APIKEYとURL を指定している6⾏⽬から9⾏⽬部分を//でコメントアウトし、保存します。 4. [オプション]サンプルコードの実⾏ B. Credentials fileの使⽤ DEMO 修正前: 修正後:

Slide 68

Slide 68 text

68 実⾏します。 4. [オプション]サンプルコードの実⾏ B. Credentials fileの使⽤ DEMO 4B-3: 以下のコマンドでtranslation.jsを 実⾏します。 $ node translation.js ソースでAPIKEY、URLしてしなくとも、 ibm-credentials.env から読み込まれ正しく実⾏できることを確認します。

Slide 69

Slide 69 text

まとめ Watsonはビジネスで使いやすいAIサービス いろいろなサービスがAPIで呼び出せる SDKで簡単に実装可能

Slide 70

Slide 70 text

おすすめ情報 今すぐ使えるWatson API/サービス⼀覧 https://www.ibm.com/watson/jp-ja/developercloud/services-catalog.html チュートリアル Watson APIを使うための前準備: サービスの作成と資格情報の取得 https://qiita.com/nishikyon/items/9b8f697db7ad0a693839 Watson Visual Recognition カスタムクラスを作ろう! https://qiita.com/nishikyon/items/7d1c07e2f50c1002e815 IBM Code Patterns - アプリ開発パターン集 http://ibm.biz/ibmcodejp

Slide 71

Slide 71 text

コードチャレンジ: AI (Watson API+Minishift)

Slide 72

Slide 72 text

ベーシックチャレンジ 1. 事前準備を完了しましょう 本⽇実施する⽅は6(オプション)は時間がかかりますのでメインチャレンジ 後に時間があれば実施ください。 http://ibm.biz/dojo20191120doc この資料: https://ibm.box.com/v/20191120DojoPrep 2. 先ほど実施の「 3. Watson APIの使い⽅ 」を完了しましょう

Slide 73

Slide 73 text

IBM Watson Visual Recognitionを使った node.jsの画像認識Webアプリの作成 https://github.com/kyokonishito/watson-vr-node オプションチャレンジ: CodePatterns 株式情報、株価、センチメントを取得するアプリを作成する https://developer.ibm.com/jp/patterns/create-a-web-app-to- get-stock-information-prices-and-sentiment/ メインチャレンジ

Slide 74

Slide 74 text

IBM CloudのCloud Foundry アプリケーションはクレジットカードを登録したPAYGアカウントの場合、動かし たまま1ヶ⽉経過すると課⾦対象になります。またライトアカウントの場合は最⼤256Mまでしかメモリが使⽤ できませんので、新しいアプリケーションを動かしたい場合は、使っていないアプリケーションを停⽌しないと 動かない場合があります。 必要に応じてアプリケーションを停⽌お願いします。 停⽌の⽅法はこちら: IBM Cloud: Cloud Foundry アプリケーションの停⽌・開始 https://qiita.com/nishikyon/items/3356db8bb4c1524517be メインチャレンジ:補⾜

Slide 75

Slide 75 text

メインチャレンジ IBM Watson Visual Recognitionを使った node.jsの画像認識Webアプリ https://github.com/kyokonishito/watson-vr-node をMinishiftで動かしてみよう! 前提: • 事前準備6の完了 minishift start済み, startしてない⽅はstart後開始してください • できればメインチャレンジを完了しているとよい(オプションチャレンジは不要) Minishift チャレンジ

Slide 76

Slide 76 text

76 0. メインチャレンジ未完了の⽅のみ︓ Visual Recognitionサービスの作成 以下を参考に、 Visual Recognitionサービスを作成してください。 https://github.com/kyokonishito/watson-vr-node#2-visual-recognition- %E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AE%E4%BD%9C%E6%88%90

Slide 77

Slide 77 text

77 1. Visual Recognitionサービス ibm-credentials.env のダウンロード 1.1: IBM Cloudにログインし、 Visual Recognitionサービスの管理画⾯を表⽰します。 ⼿順が不明の⽅は、下記を参照してください: https://qiita.com/nishikyon/items/9b8f697db7ad0a693839#2- %E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AE%E8%B3%87%E6%A0%BC% E6%83%85%E5%A0%B1%E5%8F%96%E5%BE%97

Slide 78

Slide 78 text

78 1.2: ibm-credentials.env のダウンロード 資格情報の「ダウンロード」を クリックし、⾃分のPCに ibm-credentials.env という ファイルを保存します。 あとでコマンドラインからこの ファイルを指定しますので、 ocコマンドを実⾏する予定の フォルダー(home directoryや minishift startしたdirectoryな ど) に保存します。

Slide 79

Slide 79 text

79 1.2: ibm-credentials.env の編集 ①ibm-credentials.envをエディターで開きます。 4⾏分全てコピーして、5⾏⽬以降に貼り付けます。 編集前 編集後

Slide 80

Slide 80 text

80 1.2: ibm-credentials.env の編集 ②コピーした5⾏⽬以降の VISUAL_RECOGNITION を WATSON_VISION_COMBINED に置き換えます (v5 SDKのバグ(?)対応なので将来的にVISUAL_RECOGNITIONの⽅が有効になるかもしれないため、ガイド的には VISUAL_RECOGNITIONも残しておきます。) 編集後 置き換え後保存してエディタを閉じてください。 どこに保存したのかPATHがわかるようにしてください。

Slide 81

Slide 81 text

81 このあとは、ほぼほぼコマンド操作です︕ ターミナル(Mac) または コマンドウィンドウ(Win)を 開きます。

Slide 82

Slide 82 text

2. Minishift アプリ作成 82 2.1. クラスターにログインします $ oc login -u system:admin minishift startを実⾏した後、下記のコマンドでクラスターにログインし ます。 2.2. プロジェクトを作成する $ oc new-project watson-vr --display-name="watson-vr" -- description="Sample Watson Visual Recognition Node.js app" 下記コマンドで、新しいアプリケーション⽤に新しいプロジェクトを作成 します。 (コマンドは1⾏です)

Slide 83

Slide 83 text

83 2.3. アプリケーションの作成 $ oc new-app https://github.com/kyokonishito/watson-vr-node.git -- build-env-file= --build-env CLASSIFIER_ID= githubのソースコードから、下記のコマンドでアプリケーションを作成し ます。 • 1.2でダウンロードしたibm-credentials.envをPATHも含めて、下記に指定します。 • カスタムクラスを作成した場合は、 に⾃分のカスタムクラ スのclassification_idを指定します。作成していない場合は にfoodを指定します (コマンドは1⾏です) $ oc new-app https://github.com/kyokonishito/watson-vr-node.git -- build-env-file=./ibm-credentials.env --build-env CLASSIFIER_ID=food 例

Slide 84

Slide 84 text

84 2.4. ビルドログを表⽰します $ oc logs -f bc/watson-vr-node 下記のコマンドでビルドログを表⽰し、「 Push successful 」で終わるま で待ちます。 2.5. ポートを公開します $ oc expose dc watson-vr-node --port=3000 --type=LoadBalancer -- name=watson-vr-node-ingress 下記コマンドを実⾏します。(コマンドは1⾏です)

Slide 85

Slide 85 text

85 2.6. 作成されたNodePortを確認します $ oc get --export svc watson-vr-node-ingress 2.7. アクセス可能なクラスターIPアドレスを確認します NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE watson-vr-node-ingress LoadBalancer 172.29.77.196 3000:31202/TCP 下記コマンドを実⾏します。(コマンドは1⾏です) 下記コマンドを実⾏します。(コマンドは1⾏です) $ oc get node -o wide 出⼒: 下記の場合、マッピングされた外部ポートは31202 NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME localhost Ready 26m v1.11.0+d4cacc0 192.168.64.19 CentOS Linux 7 (Core) 3.10.0-957.5.1.el7.x86_64 docker://1.13.1 出⼒: 下記の場合、アクセス可能なクラスターIPアドレスは192.168.64.19

Slide 86

Slide 86 text

86 2.8. ブラウザーでアプリケーションにアクセスします 2.6で確認したポート: 31202 2.7で確認したIPアドレス: 192.168.64.19 の 場合は http://192.168.64.19:31202/ にアクセスします。 (ご⾃分の値をお使いください) アプリケーションは表⽰できましたか? ボタンを押して動作確認してみましょう!

Slide 87

Slide 87 text

Minishift補⾜ • Minishiftの停⽌コマンド $ minishift stop • Minishiftの起動、初期メモリ・ディスクの制限 $ minishift start --memory 2G --disk-size 10G --vm-driver • Minishift VM削除(VM再作成したい場合などに、、、) $ minishift delete • Minishift101 コマンドラインで作成したProjectをWebコン ソールで表⽰(developerでログイン) $ oc policy add-role-to-user admin developer

Slide 88

Slide 88 text

IBM Code Patterns https://ibm.biz/ibmcodejp 解説 + デモ動画 + ソースコードが揃ったアプリ開発パターン集

Slide 89

Slide 89 text

開発者向けサイト IBM Developer ibm.biz/IBMDevJP 最新情報やスキルアップに役⽴つ6,000を超える技術記事を提供

Slide 90

Slide 90 text

No content