今回、執筆活動を始めた、4番手の執筆者の「Ogawa」です。野球でいうと4番は主砲ですが、私はまだまだです。

今回は、目新しい機能である「GeneXus 15 U12」から機能追加された”Chatbot ジェネレーター”の使い方を、ご紹介させて頂きます。 GeneXusでは、「IBM Watson」と「Google DialogFlow」が選択できます。今回は「IBM Watson」を使用して、ご説明します。尚、IBM Watsonへの登録を除けば、『超高速』<数十分程>で、チャットボットの実装が可能です。

※本機能は2019年4月にリリースされた「GeneXus 16」の目玉機能でもあります。先行してのご紹介になります。(GeneXus16のbeta版より、GeneXus15U12に先行搭載されました。)

チャットボットとは?IBM Watsonって?いう説明は割愛させて頂きます。
(Web検索頂ければ、詳しい情報は、何処でも得られるはずです。

【2019年5月7日追記】
GeneXus16U2より、追加されたプロパティを追記致しました。また本記事の手順で、動作可能な事を確認しております。

Server要件

(GeneXus Wikiから抜粋)
http://wiki.genexus.jp/hwiki.aspx?Web 通知およびプログレス ユーザー コントロールの要件

Java:
Java 7
Java EE 7 互換アプリケーションサーバー (最小要件: Tomcat 7.0.67)
JVM 1.7 で実行されている Servlet サーバー
WAR デプロイメントをビルドしている場合、次の JAR を追加する必要があります: commons-io-2.2.jar および GXWebSocket.jar

.NET
IIS8 以降 (Window 8 以降/Windows Server 2012 以降)
.NET Framework 4.5

Javaは、殆ど影響はないと思いますが、OSのバージョンに起因するため、「.Net版」は注意が必要です。
尚、執筆者のPCがWindows7だったため、「.Net版」は上手くいきませんでした。(返答レスがシームレスに返って来なかった…)

1.IBM Cloudのアカウント作成

「IBM Watson」を使用するには、「IBM Cloud」への登録が必要になります。

1) フリーアカウントの作成をクリックします。

 

 

 

 

 

 

 

2) 登録内容を入力します。

3

 

 

 

 

 

 

 

3)入力したメールアドレス宛に届くメールからログインします。

4

2. Watson Assistantへ登録

ログイン後はダッシュボードが表示されます。「リソースの作成」をクリックします。
5

 

 

 

 

 

 

すべてのカテゴリー → AI → Watson Assistant でクリックします。
6

 

 

 

 

 

 

サービス名は任意で分かりやすい名前に変更可能です。地域は「ダラス」を選択して下さい。
*「東京」を選択した所、GeneXusからの接続が上手く動作しませんでした。2019年4月にGeneXus16U2に試した際にも事象は改善されていませんでした。
7

 

 

 

 

 

 

 

 

作成をクリックします。画面が切り替わり、下記画面になります。
ツール(「Watson Assistant」)の起動をします。

8

 

 

 

 

 

 

 

画面が切り替わります → ページ中段の「Create a Skill」をクリックします。

8

 

 

 

 

 

 

 

ワークスペース(フロー)の作成をします。「Create New」をクリックします。(画像の右側の画面)
(GeneXusと連携される部分になります。)
Name、Descriptionは任意、Languageは、Japanese を選択して下さい。

10

 

 

 

 

Watsonを利用する際は「ワークスペース」で会話フローを作成しますが、
後述するGeneXusのチャットボットオブジェクトで会話フローの作成・定義 → Watson(該当のワークスペース)へ反映となるため、IBMのサイト上では、変更は出来ません。

3. GeneXus ChatBot ジェネレーター

新規オブジェクト → Chatbots → ConversationalFlows

11

 

作成をすると、チャットボットに使用されるオブジェクト群が、インポート(オブジェクトの作成)が行われます。

 

 

 

 

作成されると、サンプルの会話フローが出来ています。

12

 

 

 

 

 

 

この状態では、連携されていないため、接続の設定をします。一番上のノード(青いアイコン)をクリックします。NLPのプロパティを設定します。

13

NLP Provider Watson  接続するチャットボット:Googleの「Dialogflow」とIBMの「Watson」が選択出来ます。
User Name  下記の「User Name、User Password、Workspce Idの確認方法」を参照下さい。
利用者パスワード
ワークスペースID 入力しない場合は、新しいワークスペースが作成されます。入力した場合は、既存のワークスペースが利用されますが、GeneXusから上書きされます。

※GeneXus 16以降(GeneXus16U2時点)の新しいプロパティ 

Instance Language WorkSpaceの言語(※GeneXusのデフォルト値のメッセージは日本語になりませんでした。)
Enable SD UI Generation スマートデバイスの画面の作成可否
  • 認証方法のプロパティが追加されています。
Authentication Type Basic ユーザーID、パスワードを利用します。
IAM Authentication APIキーのみを使用します。

IAM Authentication 選択の際、地域を選択する必要があります。尚、東京は選択肢として、用意されていないため、GeneXus16U2時点では利用できません。

Region Frankfurt , London , Sydney , Washington, DC , Dallas

■User Name、User Password、Workspce Idの確認方法

2.で作成したWatson Assistantのツールの起動をします。

14 15

 

 

 

 

 

 

 

 

「・・・」の箇所をクリック → View API Details をクリックします。
画面が表示されます。表示されているUser Name、User Password、Workspce IdをGeneXusに入力します。

16

 

 

 

 

17

 

 

GeneXusの入力を終えて保存して、正常に完了すると「同期 成功」と表示されます。
接続が出来ない場合は、「サーバーエラー」などのエラーメッセージが表示されます。

上記の同期後に、IBM Watson側を確認すると、GeneXusで定義されているフローの情報に更新されています。

18 19

 

 

 

 

 

 

ここまでで設定は完了です。

実行内容

ChatBotオブジェクトのTry Liveタブでは、定義した会話フローをGeneXus上で即座に確認する事が可能です。

Try Liveタブでの動作例

Try Liveタブでの動作例

 

 

 

 

 

 

 

 

 

尚、ChatBot ジェネレーターを作成した時点で、画面は自動生成されています。「PanelChatWeb」オブジェクトです。特に変更する事なく、ビルド後、動作しました。
(テーマを変更して、某有名アプリケーションぽっい様にしました。)

ChatBot動作例

ChatBot動作例

 

 

 

 

 

 

 

 

 

今回は以上です。最後までご覧頂きありがとうございました。