最速!アプリ開発マニュアル「これだけ読めば、すぐにつくれる!」~Watsonをクラウドサービス「Bluemix」から使う(第二回)

  • f
  • t
  • p
  • h
  • l
title_watson_bluemix

20分で作るWatson連携アプリ

前回は連載第一回として「Watson・Bluemix・クラウド」の関係を簡単に説明させていただきました。その中で高度な質疑応答システムであるWatsonの機能をクラウドサービスのBluemixから利用できるようになったことをご理解いただけたと思います。第二回の今回は実際にBluemixクラウドサービスの画面を見ながらWatsonの機能を利用するアプリを構築していきます。

  • Watsonを利用するサンプルアプリケーションのソースを入手して、
  • ソースをBluemix上に搭載して
  • ほんのちょっとカスタマイズして
  • カスタマイズ済アプリケーションを実行する

という手順で説明を行います。

ちなみにこの「サンプルアプリケーション」とは前回説明させていただいたWatsonのデモサイト「http://watson-qa-demo.mybluemix.net/」と同一のアプリケーションです。すなわち今回の手順をなぞっていただく事により「Watsonデモサイトと同じアプリケーションをみなさん個別の環境に構築する事」ができます。

事前に準備するもの

IBMのクラウドサービスである「Bluemix」へのログインID/PWが必要になります。これを取得してBluemixのログイン画面(https://www-947.ibm.com/account/userservices/jsp/login.jsp)からログインしてください。ID/PWを取得していないかたはログイン画面にあるボタン「IBM Identity の生成」からID/PWの登録処理を行ってください。

Bluemixへのログインが成功するとアプリケーションの実行領域として「スペース」の作成が求められます。ここでは「スペース名」として「dev」というスペースを作成してください。

さぁアプリを作りましょう!(ここから20分w)

まず、上記で述べた「サンプルソース」を入手します。サンプルソースはクラウド上のソース管理サービスである「GitHub」に存在します。のちほど詳しく述べますがBluemixはGitHubと非常に優秀に連携していて、サンプルソースの入手からBluemixへのアプリケーションの搭載を簡単に行う事ができます。

ブラウザで「GitHub上のBluemixサンプルソース集」のページにアクセスしてください。URLは「https://github.com/watson-developer-cloud」です。以下の画面が表示されます。このページにBluemix上で動くアプリケーションサンプルソースがズラっとならんでいます。今回はここから「question-and-answer-ruby」というアプリケーションを選択します。このサンプルは前回説明させていただいた「Watsonの機能を使って”英語で質問をすると回答を返してくれる”というアプリケーション」をRuby語で記述したサンプルアプリケーションです。(本手順はRubyだけでなくNode.JsやJavaにも参考になりますのでBluemixでの開発手順を知りたい方は、Ruby言語使用者に限らずこの後も読み進めていってください。)このアプリケーションの一覧は複数ページにまたがっていますので、この「question-and-answer-ruby」が見当たらない場合はページ下部にある「次のページへ」のリンクを押しながら目的のサンプルアプリケーションを探してください。本原稿執筆時には2ページ目にありました。

 

以下の画面です。ここで、リンク「question-and-answer-ruby」をクリックします。

 

以下のページが表示されました。ここで下にスクロールしてください。ボタン「Deploy to Bluemix」が見えてきます。

 

このボタン「Deploy to Bluemix」がGitHubからBluemixへソースを連携するボタンです。この機能がBluemixの便利さのキモの一つです。ボタンをクリックしてみましょう。

 

ここからはサンプルソース「question-and-answer-ruby」をBluemix上にある自分だけの領域に取り込んでいきます。ここではBluemixへのログインを求められていますので、ボタン「LOG IN」をクリックします。

 

ログイン画面が表示されました。さきほど事前に準備したID/PWでログインしてください。

 

ログインが完了すると、以下の画面が表示されます。ここでボタン「DEPLOY」をクリックしてください。これがBluemixへのソース取り込みボタンです。

 

ここで3分ほどデプロイ完了(取り込みおよび配置)を待ちます。完了すると以下のように画面下部に「Success」の表示が行われます。

 

おめでとうございます!この状態ですでにあなたは実際に動くアプリケーションを手に入れることができました!ここから先はカスタマイズですが、まずはカスタマイズ前のアプリケーションを見てみましょう。画面下部のボタン「VIEW YOUR APP」を右クリックして画面の遷移先を新しいウィンドウで開いてください。もちろん普通にクリックしてもOKですが、以降の私の説明のしやすさを考えて新しいウィンドウで開きましょう。

 

おお!前回紹介したアプリケーションとほぼ同じアプリケーションが立ち上がりましたね?前回のアプリケーションはWatsonデモサイト上にあるアプリケーションでしたが、このアプリケーションはBluemix上に配置されたあなただけの領域から立ち上がっているアプリケーションです。前回の説明と同様に画面入力欄に質問を入力してボタンAskをクリックすれば、このあなたのアプリケーションがWatsonを利用して質問の答えを返却します。これ以降の説明では本画面は必要ないので、本画面は閉じてください。

 

ここからは本アプリケーションにちょっとしたカスタマイズを入れていきます。さきほどの「デプロイ完了」の画面がまだ表示されていると思いますので、ボタン「EDIT CODE」をクリックしてください。

 

ここからは「Bluemix上でソースを編集する画面」になります。なんとBluemix上で管理されているアプリケーションは、みなさんがお使いのPCにソースを持ってくることなく、ブラウザのみを使用してクラウド上でアプリケーションをカスタマイズ(もしくは修正)することが可能なのです。

 

今回は「画面上に文字”(Hello world)”をつけたす」という非常に簡単なカスタマイズを行います。画面左側にこのアプリケーションを構成するファイルの一覧があります。ここから「viewsの下にあるindex.erb」を選択してください。画面右側にソースが表示されました。今回の修正対象はアプリケーションの画面を担当するファイルなのでこのindex.erbはまるでhtmlのようなソースコードになっています。

 

今回はソースの31行目に注目してください。ここに記述されている文字列に”(Hello world)”という文字を書き足します。

 

次にこのカスタマイズしたアプリケーションを再びBluemix上に配置します。画面上部の△ボタンをクリックしてください。

 

確認メッセージが表示されます。ボタン「OK」をクリックしてください。

 

画面上部中央にメッセージ「デプロイ中」が表示されている間は、しばらくお待ちください。

 

画面上部中央のメッセージが「実行中」になったらデプロイ完了です。

 

さて、いよいよカスタマイズしたアプリケーションを表示させてみましょう。画面上部中央の「□に矢印」のボタンをクリックしてください。

 

再びおめでとうございます!アプリケーションが表示されていると思います。今度の画面は画面上に”Hello world”の文字が表示されていますね。

 

ちなみに今までの簡単なカスタマイズでは「Watsonの機能を呼び出す場所」についてまったく触れていません。ここにはみなさん興味があると思いますのでちょっとだけ説明します。ここを担当しているファイルは「app.rb」です。このファイルの88行目~92行目で「Watsonの機能を呼び出す処理」が行われています。

 

ここまでで最低限の説明は完了しました。ここからは追加の説明シナリオとして「ダッシュボードからアプリケーション編集画面を表示する方法」を説明します。画面最上部のリンク「DASHBOARD」をクリックしてください。

 

ダッシュボードが表示されます。ちなみにログイン直後にもこのダッシュボード画面が表示されます。このため、ここからアプリケーション編集画面へ遷移していくのが、いわゆる「一番普通の方法」になります。ここで画面中央ちょっと下に「アプリケーション」のセクションがあります。ここにBluemix利用者が開発したアプリケーションが一覧になって表示されます。赤枠で示したとおり、アプリケーションが一つ表示されています。これがさきほどデプロイしたアプリケーションです。このアプリケーションの項目をクリックしてください。

 

これがアプリケーションを管理するためのコントロールパネルになります。画面中央のボタン「コードの編集」をクリックすると、さきほど説明させていただいたアプリケーションのソースコードを編集する画面に遷移します。

 

また、このコントロールパネルの画面にはもう一つ注目していただきたい箇所があります。画面中央部の赤枠で囲った部分です。「Question and Answer」と表示されたこの部分、この部分こそが「このアプリケーションがWatsonと連携している事」を表しているのです。「Question and Answer」というのは「”英語で質問をすると回答を返してくれる”という”Watsonの部品”」の名前です。Bluemixの世界ではこの部品を「サービス」と呼んでいます。このようにBluemixではBluemixのサービス利用者である開発者が「Watsonなどの各種サービス(=部品)」を「開発者自身が作るアプリケーション」から利用する事で機能を作成していくのです。ちなみに今までの手順の中でみなさんは明示的にこの「サービスとアプリケーション」の関係を意識していませんが、それは「GitHubから取得したサンプルアプリケーション」の中に設定情報がすでに作成されているのです。この「設定済の情報をサンプルとして入手できる事」がこの「サンプルを基にしたアプリケーション作成」の最も大きなメリットの一つです。

 

以上、駆け足ではありますがWatsonの機能を利用したアプリケーション開発の手順を説明させていただきました。20分でご理解いただけたでしょうか?今までは「名前は有名だがとっつきにくい存在」であったWatsonをすごく手軽にお使いいただけることを実感していただけたと思います。またクラウドサービスであるBluemix上でのアプリケーション開発という視点においても、フルマネージドサービスであるがゆえの簡単・便利なアプリケーション作成が可能になったことをお伝えできたなら幸いです。

おまけ:Watsonの機能を外部(Bluemix以外)から利用する

今回は「Watsonの機能(サービス=部品)をBluemix上で自作したアプリケーションから利用する」というシナリオで説明させていただきましたが、この利用方法以外にも「Watsonの機能(サービス=部品)を外部から利用する」という方法もIBMは用意しています。これについては現在調査中です。この方法を利用することによって、Bluemix上で自作でアプリケーションを作成することなしにWatsonの機能を利用することができます。これは「Web API(REST API)」と呼ばれる方法です。すでにIBMからマニュアル(REST API Documentation)が提供されていますので興味のあるかたはご参照ください。

  • f
  • t
  • p
  • h
  • l