IBM Watson Car_Demo サンプルをやってみるその１

IBM Watson Car_Demo サンプルをやってみるその１

■　はじめに

　IBMのWatsonサンプルの備忘録を投稿します。
　そもそもWatsonとは、IBMの初代社長だよね、IBMの社是が「Think」なのは、このWatsonさんが決めたんです。
　コナンドイルのシャーロックホームズシリーズのDr.Watsonではないです。
　IBMがAIの名前にWatsonにしたのは、必然のような気がします。

　ついに、コンピューターが人間と会話する時代が到来しようとしています。
　私もAmazonのAIスピーカーを利用しています。
「アレクサ、おはよう」
「おはようございます、今日は・・・・」的な会話を楽しめます。
　2001年宇宙の旅のHALが自在に会話をするのみて、こんな時代がくるのかなと思っていましたが、来ちゃいました。
　IBMが力を入れているWatson系のチュートリアルをちゃっかり利用するのが今回の趣旨。
　とにかく、習うより慣れるかな。チュートリアルで挫折しないための手引きです。
　まだ日本語版がないので．．．

■　前提

　開発をやるためには、環境を整える必要があります。
　ちなみに、私のOS環境はWindows7/10環境です。
　ざっと以下をインストールしました。
　IBM Cloud [ライトアカウントの作成](https://www.ibm.com/cloud-computing/jp/ja/bluemix/lite-account/)
　IBM Cloud CLI [cfコマンドをインストール](https://console.bluemix.net/docs/cli/reference/bluemix_cli/get_started.html#getting-started)
　エディター [Visual Studio Code](https://code.visualstudio.com/download)
　[Node.js](https://nodejs.org/ja/)
　[Car_Demo ソース](https://github.com/watson-developer-cloud/assistant-simple)
  
　※1 Car_DemoのgithubにあるREADME.mdの英語版があるのでその手順でやればできます。

■　サンプルを試してみる

　1. [Car_Demoソースのダウンロード](https://github.com/watson-developer-cloud/assistant-simple)
![Watson_01.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/93eccbc3-0899-7e15-9f59-5da10c37e7eb.jpeg)

　　Clone or downloadの緑ボタンを押下→Download ZIPを選択
　　任意のディレクトリに配置→zipファイルを解凍
　　※2 私の場合、C:\Users\kousei00\basic\IBMSample\

　2. .dep.sampleファイルの名前変更
　　ZIPを解凍後、training\\.dep.sampleファイル名を.training\\.depに変更します。
![Watson_02.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/51d00d5e-b52b-7573-ce76-1f222c624232.jpeg)

　3. IBM Cloudeにログイン
　　VSCode(Visual Studio Code)のターミナルで、
　　[ターミナル]cf login
![Watson_03.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/66d88b85-91b0-ea8b-580d-bad723546ca1.jpeg)

　4. Watson Assistant Serviceのインスタンス作成
　　VSCode(Visual Studio Code)のターミナルで、
　　[ターミナル]cf create-service conversation free my-watson-assistant-service
　　　※3 conversionは作成する会話サービスタイプ
　　　　 freeはIBM Cloudの料金プラン、もちろん無料はfree
　　　　 my-watson-assistant-serviceはインスタンス名、任意


![Watson_04.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/bf84d238-773f-a495-fe8d-1b186c87f2b2.jpeg)

　5. ワークスペースの作成
　　[IBM Cloudのコンソールにログイン](https://console.ng.bluemix.net/dashboard/services)します。

　　4.で作成したインスタンスが作成されています。
　　赤枠のインスタンスをクリックします。

![Watson_05.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/a232dc72-80b3-4435-63d7-935006562e61.jpeg)

　Watsonインスタンスの管理画面で緑のLaunch toolをクリックします。

![Watson_06.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/b5b1f7be-ca3a-1646-98fb-720d7b035e9f.jpeg)

　Watson Assistant Tool画面でWorkspacesタブを選択します。
![Watson_07.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/a8001313-6a39-e04a-5f92-c1593f493d21.jpeg)

　↑矢印がImportボタンです。ローカルのCar_DemoをワークスペースにImportします。
　クリックすると、ファイル選択のダイアログボックスが表示されます。
　赤枠のChoose a Fileをクリックするとファイル選択のダイアログが表示されますので、Car_Demoサンプルの
　training/car_workspace.jsonファイルを選択します。

![Watson_08.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/ee0dc7c0-2a27-2cf5-7eff-11e5b73bf16d.jpeg)

　ファイル名を入力すると、Importボタンが活性化されるので、クリックします。
　これでワークスペースにCae_DemoのすべてがImportされます。

　6. ワークスペースのサービスキー作成とワークスペースID取得
　ワークスペースのサービスキーを作成します。
　[ターミナル]cf create-service-key my-watson-assistant-service myKey

　※4 cf create-service-key ワークスペース サービスキー（任意）
  ワークスペースへアクセスするためのユーザとパスワードを作成します。

![Watson_09.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/27d543a3-8a43-4521-4a6f-bda6e9e893c6.jpeg)

　作成したサービスキーのユーザとパスワードを確認します。
　[ターミナル]cf service-key my-watson-assistant-service myKey

![Watson_10.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/92551a7f-90eb-f13e-2e6d-c53920766788.jpeg)

　取得した,usernameとpasswordをtraining/.depファイルに設定します。
![Watson_11.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/3c0acff5-df64-cf0a-97a6-2e87d1ac94ab.jpeg)
 ASSISTANT_USERNAME=上記のusernameを設定
 ASSISTANT_PASSWORD=上記のpasswordを設定

　※5 .devのデフォルトは<>の間に値が入力されています、=<>の<>を取ってユーザとパスワードを直接設定します。
　例
　ASSISTANT_USERNAME=ca2905e6-7b5d-4408-9192-e4d54d83e604
　ASSISTANT_PASSWORD=87iT7aqpvU7l

　次に.depのWORKSPACE_IDを取得します。

　IBM Watson Assistant toolのWorkspaces画面よりCar_Demoの・・・（縦）ボタンをクリックすると表示されるドロップリストよりView Detailsを選択します。
![Watson_12.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/0204fdf1-f15c-0755-6503-c51619b280db.jpeg)

 View Details画面のWorkspace ID；の下にあるIDコピーボタンをクリックして、Workspace IDをクリップボードにコピーします。
![Watson_13.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/6e2567c5-3f03-808f-0e71-d42f9cb64143.jpeg)

　.depのWORKSPACE_ID=の右辺にカーソルを合わせ、Ctrl+vでコピーしたWorkspace IDを貼り付けます。
　※6 <>を削除します。
　例 
　WORKSPACE_ID=57cb2d27-xxx-xxx-xxxx-xxxx9cc336a1

　これで、.depが完成したので、Ctrl+sで保存します。

　7. Nodeのモジュールをディレクトリにインストール
　　VSCode(Visual Studio Code)のターミナルで、
　　[ターミナル]npm install

![Watson_14.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/dd39d6d5-b3ae-d482-9ce2-4593dc359515.jpeg)

   インストールでnode_modulesのディレクトリにnode.jsを動かす環境がインストールされます。

　8. サービスの開始
　VSCode(Visual Studio Code)のターミナルで、
　[ターミナル]npm start

![Watson_15.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/46242fc2-f351-e9da-1208-798b50874f63.jpeg)
  
　ブラウザーでURL<http://localhost:3000/>を指定します。
　アプリが動けばOKです。
  
![Watson_16.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/5ec8d7de-feab-7015-7830-72e61c04dc60.jpeg)

　下部のType somthingに車に関する操作を英語で指示します。
　例：turn on light (ライトを点けて）
　Watsonは「I'll turn on the lights for you」と返してきます。（感動！）
　とりあえず仕組みは別途検討しましょう。
　car_workspace.jsonにヒントがありあそうです。

![Watson_17.jpg](https://qiita-image-store.s3.amazonaws.com/0/239597/096c58bc-63e8-8efe-8198-59b28752eb77.jpeg)

■ まとめ

　Watson使うためには、ワークスペースを作成する必要がある。
　ワークスペースにアクセスするためには、.devファイルに設定が必要。
　時間があるときに、もう少し内容を深堀しましょう。
　最初、cf pushがうまくいかななかったです。
　なんとかできましたので次回はそれについて説明します。

以上、おそまつ