×
最新の人気コンテンツ情報をまとめた
メールマガジンをお届けします

ページトップへ
この記事は、前回記事の「教育したWatson チャットボットの会話ロジックをアプリとして動かす手順」の続きです。先ず、Bluemix IaaS(旧SoftLayer)やIDCFクラウドの仮想サーバー、自社所有のサーバー等に、Watson Conversationと公式サンプルアプリを用いてチャットボットアプリを構築します。構築には、前回記事の手順を参考に、下記コマンドを実行したところまで進めておきます。
# cp .env.example .env
また、ファイアウォールについては、Node.jsで使用するポート3000番に加え、「Cloudant」で使用するポート443番を開放します。

会話ログ格納先の準備

チャットボットアプリ上の会話ログを記録するために、データベースサービスを使用します。使用するデータベースサービスは、Bluemix上で使用できる「Cloudant NoSQL DB」(ご紹介ページはこちら)です。単にCloudantと略すことがあります。

Cloudantを利用するためには、BluemixダッシュボードからCloudantのサービスを作成します。

「サービスの作成」ボタンをクリックし、Cloudant NoSQL DBを検索します。検索後、「Cloudant NoSQL DB」のアイコンをクリックします。

Cloudantのサービス内容や価格が表示されます。無料のLiteプランが選択されている状態になっているはずなので、サービス内容を確認後、画面下の「作成」ボタンをクリックします。

すると、下図のような画面が表示され、4つのメニューと「LAUNCH」ボタンが表示されます。これらは、Bluemixのダッシュボード画面から、稼働中のCloudantのサービス名をクリックしたときも表示されます。

Watson Conversationによるチャットボットアプリ上での会話ログを記録するデータベースを用意するために、「LAUNCH」ボタンをクリックし、Cloudantの管理画面にアクセスします。アクセス後、画面右上の「Create Database」にてデータベースを作成します。

「chatbot_logs」というデータベースを作成しました。次は、チャットボットアプリからデータベースに接続するために必要な、資格情報を取得します。

Bluemixのダッシュボード画面から、稼働中のCloudantのサービス名をクリックし、その後「サービス資格情報」タブをクリックします。その後、赤枠部分の「資格情報の表示」をクリックし、「username」「password」「url」の3項目の値をメモ帳などにコピー&ペーストしておきます。これら3つの値は、後で使用します。

サンプルアプリの一部書き換え

前回記事で使用しました公式サンプルアプリを改修し、チャットボット上での会話を先ほどのCloudant上のデータベースに記録するように改修します。
まだ準備が終わっていない方は、前回記事を参考に準備し、前述のCloudantによるデータベース作成まで終えてください。

ダウンロードした公式サンプルアプリのソースコード内の「app.js」を開き、148~164行目付近にある、7箇所の「car_logs」を「chatbot_logs」に書き換えます。書き換えることで、アプリ上での会話がログとして、先ほど作成したCloudant上のデータベース「chatbot_logs」に記録されます。
書き換える場所は下記のとおりです。
# nano app.js
148行目 nano.db.get( 'car_logs', function(err) {  の「car_logs」を「chatbot_logs」へ
151行目 nano.db.create( 'car_logs', function(errCreate) {  の「car_logs」を「chatbot_logs」へ
153行目 logs = nano.db.use( 'car_logs' );  の「car_logs」を「chatbot_logs」へ
156行目 logs = nano.db.use( 'car_logs' );  の「car_logs」を「chatbot_logs」へ
162行目 nano.db.destroy( 'car_logs', function() {  の「car_logs」を「chatbot_logs」へ
163行目 nano.db.create( 'car_logs', function() {  の「car_logs」を「chatbot_logs」へ
164行目 logs = nano.db.use( 'car_logs' );  の「car_logs」を「chatbot_logs」へ

デプロイと動作確認

書き換えが終わりましたら、設定ファイルに各値を入力し、実際にアプリを動かしてみましょう。
# nano .env
設定ファイル(.env)を開き、前回記事を参考に、「WORKSPACE_ID=」「CONVERSATION_USERNAME=」「CONVERSATION_PASSWORD=」に各項目の「=」以降に必要な値を記述します。次に、先ほどメモ帳にコピー&ペーストしておいた、「CLOUDANT_URL=」の=以降に「url」を、「LOG_USER=」の=以降に「username」、「LOG_PASS=」の=以降に「password」の値を入力します。
# Environment variables
WORKSPACE_ID=
CONVERSATION_USERNAME=
CONVERSATION_PASSWORD=
#Optional params, delete any which are not used!
#Optional params to enable Speech to text
STT_USERNAME=
STT_PASSWORD=
#Optional cloudant URL for loggin
CLOUDANT_URL=
#If cloudant url is specified a user name and password must be specified to secure the logging endpoints
LOG_USER=
LOG_PASS=
各値を入力後、Ctrlキー + x キーを押し、yキーで、設定ファイル(.env)を保存します。
設定ファイル保存後、次のコマンドを実行し、インストール作業を行います。
# npm install
エラーがなく終了しましたら、動かしてみましょう。
# npm start &
Webブラウザで、http://パブリックIP:3000 にアクセスします。ポート番号80にポートフォワーディング設定を行っている場合は、http://パブリックIPになります。DNSで設定を行っている場合は、http://chatbot.abc.jp:3000 などでアクセスすることができます。

下図は、Android搭載のスマートフォンでアクセスしたときの画面ショットです。スマートフォン上で何度か会話しましょう。スマートフォンの基本機能に音声入力がありますので、チャットボットアプリ側を音声入力対応にしなくても、iPhoneあるいはAndroidの基本機能で音声入力が可能です。

Cloudantの管理画面にアクセスし、データベース「chatbot_logs」にアクセスします。するとデータベース内のドキュメント(OracleやMySQLで言うところのレコード)が表示されます。画面右上の「Table」ボタンをクリックすると表形式になります。「Metadata」名をクリックすると、チャットボットアプリ上での会話ログが表示されます。

まとめ

前回記事で動かしたチャットボットアプリに対して、データベースを作成し会話ログを取得・保管できるようにしました。次回は、公式サンプルアプリの見た目をカスタマイズしてみます。
公式サンプルアプリは、オープンソースライセンスの「Apache ラインセス」のため、必須事項や禁止事項を守っていれば、カスタマイズして商用利用し易いので、Watsonを自社サービスで活用するために検証すると良いでしょう。