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

ページトップへ
8月に公開した記事「Watson Conversation 日本語環境を試してみる」の続きです。Watson Conversationでは、Watsonを用いたチャットボットの会話の仕組みを作ることができますが、Watson Conversationには、実際にアプリケーションに組み込む機能はないので公式のサンプルアプリなどをベースに、別途Webアプリケーションを用意する必要があります。
この記事では、SoftLayerやIDCFクラウド等のサーバー上で、Watson Conversation向けの公式サンプルアプリを用いて、事前に教育したWatsonチャットボットの会話ロジックを実際にアプリとして動かす手順をご紹介します。無事に動くことを確認しましたら、各ソースコードを読みながらカスタマイズしていくと良いでしょう。

使用した公式サンプルアプリ

使用した公式サンプルアプリ「conversation-simple」
ソースコードはこちらから入手できます。ソースコードに適用されるライセンスは「Apache License」です。「Apache License」はオープンライセンスの1つで、商用利用や特許利用を許可されていますが、禁止事項として「商標の利用」や「作者に責任を求めること」があります。

今回ご紹介する手順通りに実際に動かすと下図のようになります。下図は、事前に教育したWatsonの会話ロジックを、Bluemix以外のサーバーで動かしたサンプルアプリで動作確認している様子になります。

サーバー等の準備

どれくらいのアクセスがあるかわかりませんので、とりあえずSoftLayerなどで使える最小構成の仮想サーバーを用意します。
OS:Ubuntu Server 14.04 LTS 64bit版 Minimal install (最小構成)
メモリ:1GB
CPUコア:1
パブリックIP:最低1つ
使用ポート:Node.jsで標準で使用するポート番号の3000 を使用します。ポート番号80でアクセスできるようにする場合は、ポートフォワーディング設定を行ってください。

また、この記事では、Watson Conversationの環境を用いますので、上記サーバーを用意する前に、Bluemix上でWatson Conversationの用意とWatsonに事前に会話を学習させてください。詳しくは「Watson Conversation 日本語環境を試してみる」をご覧ください。

インストール

用意したサーバーにSSH接続でアクセスします。今回は作業用のPCにWindows10を用いましたのて、「Tera Term」を用いてサーバーに接続しています。接続後、さっそく作業を行います。

下準備として、作業に必要なソフトウェアや時刻のタイムゾーンを日本向けに合わせます。
# apt-get update -y && apt-get upgrade -y
# apt-get install wget unzip nano software-properties-common curl git build-essential -y
# echo "Asia/Tokyo" | tee /etc/timezone
# dpkg-reconfigure --frontend noninteractive tzdata
node.jsとnpmをインストールします。
# curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
# apt-get install -y nodejs
インストールされた、node.jsとnpmの各バージョンを確認します。
# node -v
v4.6.1
# npm -v
2.15.9
作業用ディレクトリに移動し、公式サンプルアプリのソースをダウンロードします。
# cd /usr/local/src/
# wget https://codeload.github.com/watson-developer-cloud/conversation-simple/zip/master
# unzip master
# cd conversation-simple-master
公式サンプルアプリを動かすための設定ファイルを作成します。
# cp .env.example .env
# nano .env
設定ファイル(.env)は、
# 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=
となっており、最低限、「WORKSPACE_ID=」「CONVERSATION_USERNAME=」「CONVERSATION_PASSWORD=」に各項目の「=」以降に必要な値を記述します。「WORKSPACE_ID=」「CONVERSATION_USERNAME=」「CONVERSATION_PASSWORD=」の各値は、Blumiex上のWatson Conversationの画面内にありますので、お使いのBluemixにアクセスし、Watson Conversaitonにアクセスします。

「CONVERSATION_USERNAME=」「CONVERSATION_PASSWORD=」は、Bluemix上のWatson Conversationの画面の「サービス資格情報」タブをクリック → 画面右側の「資格情報の表示」をクリックしますと表示されます。
「CONVERSATION_USERNAME=」は、資格情報のusername
「CONVERSATION_PASSWORD=」は、資格情報のpassword
に該当します。

「WORKSPACE_ID=」は、上図の画面で、「管理」タブをクリック → Conversation toolingの「Launch tool」をクリック → 「Workspaces」の画面に移動し、下図のように操作しますと、「WORKSPACE_ID=」が表示されます。これをコピー&ペーストして、設定ファイル(.env)に書き込みましょう。

設定ファイル(.env)に最低限必要な「WORKSPACE_ID=」「CONVERSATION_USERNAME=」「CONVERSATION_PASSWORD=」に、各値を入力しましたら、Ctrlキー + xキーを押し、yキーで保存します。

node.jsとnpmのインストール、ソースのダウンロード、設定ファイルの編集が終わりましたら、公式サンプルアプリのインストールを行います。インストールには下記コマンドを実行します。
# npm install
自動でインストール作業が行われます。インストール終了後アプリを起動してみましょう。
# npm start &
Webブラウザで、http://パブリックIP:3000 にアクセスします。ポート番号80にポートフォワーディング設定を行っている場合は、http://パブリックIPになります。DNSで設定を行っている場合は、http://chatbot.abc.jp:3000 などでアクセスすることができます。

まとめ

いろいろな事情で、WatsonはBluemix上で動かすものの、アプリ側はSoftLayerやその他サーバー、自社内のサーバーで動かしたいといったニーズがありますので、参考として今回の手順をご紹介しました。
公式サンプルアプリは、設定ファイルに同じWatsonサービスである「Speech to Text」やBluemix上のデータベースサービスの「Cloudant」を指定する項目がありますし、基本的に、Node.js(JavaScript)とHTMLの構成ですから、いろいろと手を加えやすいです。また、CMSと連携するとチャット経由で案内できる情報が格段に増えます。チャットボット内の直前の会話内容からキーワードを抽出し、CMS上での検索結果を表示する画面へのリンクをチャットボットの会話内に埋め込み、チャットボットの利用者を誘導することができます。

上記のように工夫することで、Watsonチャットボットを電話相談の前段階として運用することができます。
  • 平日深夜は時間外のため対応できない#8000などの救急電話相談向けの相談用チャットボット
  • パソコンや車などの問い合わせ用チャットボット
  • 会社について教えてくれる就職活動用チャットボット
  • インバウンドの観光客向けに、オススメの料理とレストランを教える多言語チャットボット
  • インバウンドの観光客向けに、病気になった際にどんな薬を買った良いか教える多言語チャットボット
などでの利用が想定できます。