IBM Cloud Blog

Watson APIを使ってみよう!

記事をシェアする:

著者:西戸京子, Developer Advocate, 日本IBM デベロッパーアドボカシー事業部

IBMの提供するAIサービスWatsonはAPI経由で簡単に呼び出して使用することが可能です。また主要な言語にはSDKがあるので、SDKを使って簡単にコーディングできます。本記事ではWatsonのAPIドキュメント掲載のサンプルコードを利用し、Node.jsとnode-sdkを使ってWatsonのAPIを呼び出す手順を解説します。

 

Watson APIの仕組み

Watson APIはネットワーク経由でREST形式でのやり取りを行います。下記はその例です。データはJSON形式でやり取りが行われます。もし使いたい言語にSDKがない場合は、その言語でREST形式のやり取りを行うコードを書けばWatson APIは使用可能です。

SDKが存在する場合は、SDKを利用するとAuthenticationやJSONへのパラメータのマッピングなどはパラメータを渡せば裏でSDKがやってくれます。SDKがある場合はSDKを使うのがおすすめです。SDKは以下のURLから確認できます。

 

今回の手順を実施するための準備

  1. IBM Cloudのアカウントの作成
    まだIBM Cloudのアカウントをお持ちでない方はこちらより取得してください。
  2. 自分のPCへのNode.jsのインストール
    Node.jsが未導入の場合は、下記のNode.jsサイトからダウンロードしてインストールしてください。

 

さっそくWatson APIを使ってみよう

準備はできましたか?では早速Watson APIを使ってみましょう!

1. Watson APIのサービスの作成

Watson APIを使うには、まず使用するWatson APIのサービスを、IBM Cloudで作成します。今回はWatsonの言語翻訳サービスであるLanguage Translatorを例に説明します。

1-1: IBM Cloudに以下のURLからログインします。尚IBM CloudのアカウントIDは登録時に使用したメールアドレスとなります。

1-2: ダッシュボードが表示されるので、「カタログ」をクリックします。

1-3: 左側のカテゴリーからAI をクリックし、使いたいWatsonのサービスをクリックします。使いたいサービスが表示されていない場合は、下にスクロールします。今回はLanguage Translatorを使いますので、「Language Translator」をクリックします。


1-4:「地域の選択」、「料金プラン」を確認して右側の「作成」をクリック。画面が変われば作成完了です。

2. 使用するWatsonサービスの資格情報とURLの取得

APIで使用する際に使う、サービスの資格情報である

  • API KEY(API鍵)
  • URL

はIBM CloudのWeb画面から取得できます。

尚、アプリ別など個別に権限を設定して作成も可能です(今回は説明しません)。

以下の手順で取得してください。

2-1: ダッシュボードを表示します(左上のIBM Cloudロゴをクリック)。

2-2: リソースの要約の「Services」をクリックし、表⽰されたリソースリストから資格情報を取得したいWatson のサービス名をクリックします。

2-3: 左のメニューの「管理」(通常最初はこの画面)をクリックすると、資格情報にAPI鍵(API KEYのこと)とURLが表示されるのでコピーし、手元のテキストファイルなど貼り付けておきます。

コピーアイコン(右側の四角アイコン)をクリックしてクリップポードにコピーできます。

3. APIの使い方の確認

3-1: まずはAPIの使い方をドキュメントで確認してみましょう。以下のURLから使いたいWatsonのサービスをクリックします。今回はLanguage Translatorを使います。

3-2: 使用する言語を指定します。今回はNodeを使うので、「Node」をクリックします。

3-3: Methodを確認してみます。今回はTranslateを使うので、左側のMETHODS- > Translation -> Translateをクリックします。

真ん中にRequestパラメーターやResponseについて説明があります。
右側に「Example request」の部分にサンプルコードがあります。今回はNodeを選んでいるのでNodeのサンプルコードが表示されます。他の言語を選べば他の言語のサンプルコードが表示されます。
次セクションではこのサンプルコードを使ってみます。

 

4. サンプルコードを動かしてみます

ではAPIドキュメントの「Example request」にあるサンプルコードを動かしてみましょう!

4-1: ターミナル または コマンドウィンドウを開きます。

4-2: 以下のコマンドでディレクトリを作成し、作成したディレクトリに移動します。(先頭の$は入力しないでください)

$ mkdir translate
$ cd translate

4-3: ターミナル または コマンドウィンドウはそのままにして、エディター(VSCode, メモ帳(windows), vi(Mac)など)を開きます。開く際にファイル名が必要な場合はtranslate.jsとしてください。

4-4: APIドキュメントにあるMETHODS- > Translation -> TranslateのExample requestのコードをクリップボードにコピーします。

URL: https://cloud.ibm.com/apidocs/language-translator?code=node#translate

4-5: コピーしたコードを開いているエディターにペーストします。

4-6: 7行目: {apikey}を2でコピーしたAPI鍵で置き換えます。

4-7: 9行目: {url}を2でコピーしたURLで置き換えます。

4-8: 4-2で作成したディレクトリにtranslate.js という名前で保存します。

4-9: APIドキュメントにあるInstallationのコードをコピーします。

URL: https://cloud.ibm.com/apidocs/language-translator?code=node#introduction

4-10: 先ほど開いたターミナル または コマンドウィンドウに戻り、コピーしたコマンドをペーストし実行します。

$ npm install ibm-watson@^5.1.0

Macで権限エラーが発生する場合は、先頭に sudo を付けて実行してください。

$ sudo npm install ibm-watson@^5.1.0

4-11: 以下のコマンドでtranslate.jsを 実行します。(先頭の$は不要です)

$ node translate.js

4-12: 実行結果の確認

英語のHelloがスペイン語のHolaに変換されています。APIドキュメントを確認して、RequestパラメーターやResponseも確認してみましょう。

サンプルコード内のパラメータ:

結果:

5. 応用編

5-1: 翻訳言語の変更

translate.jsを修正し、13行目のtextを適当な日本語の文章に、model_idを’ja-en’にして保存し、実行してみましょう。

サンプルコード translate.js:

以下をのコマンドを実行(先頭の$は不要です):

$ node translate.js

結果:

参考までに使用可能なmodel_idはこちらです:

https://cloud.ibm.com/docs/services/language-translator?topic=language-translator-translation-models

 

5-2: Credentials fileの使用

サービスのAPI KEY, URLが取得できる管理画面からibm-credentials.env というAPI KEYとURLが入っているファイルがダウンロードできます。

これを以下のいずれかに置くと、コード内でAPI KEYとURLの記述が不要です。

  • 環境変数IBM_CREDENTIALS_FILEで指定したPATH
  • システムのhome directory
  • プログラムの実行directory(working directory)

ibm-credentials.envでAPI KEYとURLを指定する方法を実施してみましょう。

 

5-2-1: 「2. 使用するWatsonサービスの資格情報とURLの取得」を参照して、Language Translationサービスの管理画面を表示します。

資格情報の「ダウンロード」をクリックし、4-2で作成したディレクトリにibm-credentials.env というファイルを保存します。

5-2-2: translate.jsを修正し、 IamAuthenticatorの定義をしている2行目と、APIKEYとURL を指定している9行目から9行目部分を//でコメントアウトし、保存します。

修正前:

修正後:

5-2-3: 以下のコマンドでtranslation.jsを 実行します(先頭の$は不要です):

$ node translate.js

ソースにAPIKEYとURLがなくとも、 ibm-credentials.env からAPIKEYとURLが読み込まれ正しく実行できることを確認します。

 

まとめ

いかがでしたか?APIドキュメントで提供されているサンプルコードが簡単に実行できることを体験いただけたと思います。次は自分のアプリケーションに好きな言語を使ってぜひWatsonのAPIを組み込んでみてください!

More IBM Cloud Blog stories

IBMエッジ・コンピューティング

IBM Cloud Blog

  ソース近くで収集されたデータの処理 IBMエッジ・コンピューティングは、リアルタイムにAI、5G ...続きを読む


IBM Cloud上のミッション・クリティカルなシステムに求められる高可用性の実現

IBM Cloud Blog

[著者] サイオステクノロジー株式会社 第1事業部 BC事業企画部 クラウドサービスグループ グループマネージ ...続きを読む


ビジネスのためのオープンかつセキュアな パブリック・クラウドで変革を加速する10社のお客様事例

IBM Cloud Blog

IBM Cloudが提供するエンタープライズ向けのサービス、オープン・イノベーション、およびセキュリティーにお ...続きを読む