目次


Node-RED: bot 操作の基礎

ラボ 1: Node-RED ボイラープレート・アプリケーションの作成

Comments

コンテンツシリーズ

このコンテンツは全6シリーズのパート#です: Node-RED: bot 操作の基礎

このシリーズの続きに乞うご期待。

このコンテンツはシリーズの一部分です:Node-RED: bot 操作の基礎

このシリーズの続きに乞うご期待。

ラボ 1 の紹介

概要

このラボでは、IBM Cloud のボイラープレートのカテゴリーにある、Node-RED Starter のインスタンスを作成する方法を説明します。Node-RED をスタンドアロンのアプリケーション、つまりフローとしてデプロイすることもできますが、PaaS (Platform as a Service) である IBM Cloud を使用すれば、Node-RED の前提条件のインストールについての心配は不要です。

前提条件

IBM Cloud アカウントが必要です。

重要: IBM Cloud で利用できる無料サービスの数は 12 までです。このコースでは、6 つのサービスが必要になります。既に IBM Cloud アカウントをお持ちの場合は、使用中のサービスが 6 つを超えていないようにしてください。

このラボでは、以下のサービスを使用します。

  • Language Translator
  • Tone Analyzer
  • Conversation
  • Speech to Text
  • Text to Speech
  • Cloudant データベース

ステップ 1. Node-RED インスタンスを作成する

このステップでは、IBM Cloud 上で実行される Node-RED インスタンスを作成します。

  1. IBM Cloud にログインします。米国の場合なら、https://console.ng.bluemix.net/ を使用します。次に、「カタログ」をクリックします。
  2. 「ボイラープレート」をクリックします。
  3. ボイラープレートのリストで「Node-RED Starter」をクリックします。
  4. Node-RED Starter アプリケーション固有の名前とホスト名を入力します。ホスト名は、アプリケーション名と同じである必要はありませんが、同じにすることもできます。
  5. 「作成」を選択します。作成したアプリケーションが開始するまで待ちます。

ステップ 2. Watson サービスを接続する

このセクションでは、Watson サービスの Language Translator と Conversation を Node-RED インスタンスに接続します。このラボでは Language Translator サービスのみを使用します。他のサービスはラボ 3 で使用しますが、その準備として同様に接続しておきます。

既にこれらの Watson サービスのインスタンスがある場合は、そのインスタンスを Node-RED アプリケーションに接続できます。以下は、サービスを新規に作成して接続する場合の手順です。

  1. 「接続」をクリックします。
  2. 「新規に接続」をクリックします。
  3. 「サービス」の下で、「Watson」を選択します。
  4. 「Language Translator」をクリックします。(「Language Translation」はクリックしないでください。これは非推奨サービスです。)
  5. サービスが Node-RED インスタンスに接続されていることを確認します。「接続」フィールドにアプリケーション名が表示されているはずです。
  6. カスタム翻訳を作成できるようにする場合は、「拡張」料金プランを選択します。このコースのラボには、拡張プランは必要ありません。
  7. 「作成」をクリックしてサービスを作成します。このアクションにより、サービスを使用するための新しい資格情報が作成されます。Node-RED インスタンスに接続することにより、これらの資格情報をアプリケーションで使用できるようになります。
  8. 再ステージングするようプロンプトが出されたら、「キャンセル」をクリックします。これは、再ステージングの前に、もう 1 つのサービスに接続するためです。
  9. 「新規に接続」をもう一度クリックし、上記ステップを繰り返して Conversation サービスを追加します。残りの 3 つのサービスすべてを接続し終えるまで、アプリケーションを再ステージングしないでください。
  10. すべてのサービスを追加したら、「再ステージ」をクリックします。
  11. アプリケーションが再起動するまで待ちます。アプリケーションが再起動すると、「アプリケーションは実行中です」という状況メッセージが表示されます。
  12. 「アプリの表示」をクリックして実行中の Node-RED アプリケーションを開くと、Node-RED インスタンスのランディング・ページが表示されます。
  13. 「Node-RED フロー・エディターに進む (Go to your Node-RED flow editor)」をクリックしてエディターを開きます。

ステップ 3. 最初のフローを作成する

このセクションでは、Node-RED フロー・エディターで最初のフローを作成します。Node-RED 内のアプリケーションを「フロー」と呼びます。

左側の列にあるパレットに、使用できるすべてのノードが表示されています。

ノードはカテゴリーでグループ化されています。ノードのメイン・カテゴリーは、「入力」、「出力」、「機能」です。

  • 「入力」ノードを使用して、データを Node-RED アプリケーション、つまりフローに取り込みます。
  • 「出力」ノードを使用して、 Node-RED フローの外側にデータを送信します。
  • 「機能」ノードを使用して、データを処理します。「機能」ノードは、JavaScript 関数経由でメッセージを受け渡すために使用できます。
  1. 「入力」の inject ノードを選択し、これをキャンバスにドラッグします。
  2. 「出力」の debug ノードを選択し、これをキャンバスにドラッグします。
  3. クリックしてカーソルを一方のノードから他方のノードまでドラッグすることで、この 2 つのノードをリンク、つまり、ワイヤリングします。debug ノードと inject ノードをキャンバスにドラッグすると、それぞれの表示名が変わることに注意してください。この名前変更は予期されたもので、そのノードの追加のコンテキストを示しています。
  4. timestamp ノードをダブルクリックします。「ペイロード」フィールドで、「文字列」を選択します。
  5. 「Hello, this is my first Node-RED application」などの文字列を入力します。
  6. 「名前」フィールドに、このノードの名前を「Hello World inject」などと入力します。
  7. 「完了」をクリックします。

    青色の円は、フローに未保存の変更があることを示しています。つまり、アプリケーションのデプロイが必要であることを意味しています。

  8. デプロイして変更を保存するため、「デプロイ」をクリックします。

    debug ノードは、「デバッグ」タブへの書き込みを行います。これは、アプリケーション全体のフローをモニターする上で役立ちます。

  9. フローを開始するには、inject ノードにリンクされたタブをクリックします。

    これで、出力が「デバッグ」タブに表示されます。

  10. 「ノードを検索」検索フィールドに「translator 」と入力して language translator ノードを見つけます。
  11. このノードを、inject ノードと debug ノードの間に配置されるように、キャンバスにドラッグします。ノードを移動してスペースを空けることができます。

    不要な線を削除するには、その線を選択して、キーボードの Delete を押します。

  12. language translator ノードをダブルクリックします。inject の英語が別の言語に翻訳されるように「Translate」を選択します。「Conversational」ドメインを選択します。
  13. 「完了」をクリックして変更を保存します。
  14. language translator ノードを選択し、「情報」タブをクリックします。

    このノードは、翻訳後の出力を msg.translation に入れることに注意してください。msg は、個々のノードが相互に通信できるようにするために Node-RED が使用する、予約済みオブジェクトです。msg は、エンベロープのようなものだと考えてください。一方のノードがこのエンベロープに情報を入れることで、他方のノードはその情報を読むことができます。language translator ノードは、既に msg エンベロープに入っているペイロードを見つけることを予期しており、この msg エンベロープの中に翻訳を挿入することになります。

  15. debug ノードを開き、「対象」を msg.translation に変更します。単語 translation を、msg. の後に入力します。
  16. 「完了」をクリックして変更を保存します。次に、フローをデプロイします。
  17. inject ノードのタブをクリックすることで、フローを開始します。

    翻訳後のテキストを「デバッグ」タブで確認します。「ペイロード」フィールド (inject ノード内) に入力したテキストを、アプリケーションが翻訳しています。

  18. language translator ノードを変更して News Domain を使用するようにします。
  19. 「完了」をクリックし、アプリケーションをデプロイします。
  20. フローを開始して、Domain が異なれば翻訳も異なることを確認します。例えば、NewsConversation の違いは、新聞を翻訳したときと、話し言葉を翻訳したときに見られるような違いとなります。

    大抵の場合、大きな違いはありませんが、特定の用語や語句が異なる翻訳になる場合があります。

    これで、Watson の Language Translator サービスと Conversation サービスを使用した Node-RED アプリケーション・インスタンスが IBM Cloud 上で実行中となり、基本的なフローを作成できるようになりました。

ラボ 1 ソリューション


ダウンロード可能なリソース


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing, Web development
ArticleID=1051971
ArticleTitle=Node-RED: bot 操作の基礎: ラボ 1: Node-RED ボイラープレート・アプリケーションの作成
publish-date=12262017