目次


連載: IBM Watson Workspace #鬼わか アプリケーション開発

第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)

Comments

コンテンツシリーズ

このコンテンツは全#シリーズのパート#です: 連載: IBM Watson Workspace #鬼わか アプリケーション開発

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

このコンテンツはシリーズの一部分です:連載: IBM Watson Workspace #鬼わか アプリケーション開発

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

1

はじめに

皆さん、こんにちは。前回の連載では Node.js を利用してチャットボットを実装する方法についてご紹介しました。 お試しいただけましたでしょうか?それほど難しいものではないということがご理解いただけたのではないかと思います。 さて、前回までは決められた文言に対して決められた返答を返すという単純なチャットボットをご紹介しましたが、今回の連載からは AI(人工知能)を利用したちょっと賢いアプリケーション連携についてご説明します。 IBM Watson Workspace(以下、WWS と表記)ではアクションフルフィルメントという名前の AI によって実現されている機能が搭載されています。 今回はこのアクションフルフィルメントとは何か?そしてこれを利用するとどんなことが出来るのか?といった内容をご説明します。

2

アクションフルフィルメントとは

AI が会話の内容を学習し理解することで、求めている情報をアプリケーションと連携して提供してくれたら便利ですよね。WWS では、スペースに投稿されたメッセージに対して自動的に返答する「チャットボット」に加えて、スペースに投稿されたメッセージを理解し、ワンクリックで関連アプリケーションを呼び出すことができる「アクションフルフィルメント」を使ったサービスを提供する事ができます。

アクションフルフィルメントを使うと、例えば「コンパクトカーの市場動向はどうなっている?」という発言があった際に、関連する市場調査や過去のレポートをアプリケーションが提供できる場合は、その発言にクリック可能な下線を表示し、提供できるアクションがあることを示すことが可能です。ユーザーがその情報を確認したい場合は下線をクリックして内容を確認できます。そして、必要ない場合はクリックせずに会話を続けることもできます。自動的に応答を返すチャットボットでは、必要のない情報もスペース内に残ってしまい状況によってはスペース上の会話ログが煩雑になりますが、アクションフルフィルメントを使うことで、ユーザーが必要な時だけアクションを実行し情報を確認し、重要な情報だけをスペース内に残しておく事ができるようになります。

 

例えば、工場の現場に適用すると、ラインで異常が発生した際に、ラインに設置されたセンサーが異常を検知し IoT (Internet of Things) 技術でその情報をワークスペース上に通知し、アプリケーションがエラーコードから推定されるいくつかの原因や、社内の担当者や専門家の候補を提供することができます。IoT 技術やビックデータと WWS をアクションフルフィルメントによって連携させることで、現場の情報を即座に取り入れ、既存のアプリケーションやデジタル情報からその対応策を探しだして提示することで、早期問題解決につなげることができます。

 

こんな便利なアクションフルフィルメントは、どのようにして WWS に実装できるのでしょうか。3 章以降でその方法をご紹介していきます。

3

メッセージにフォーカスを作成する

3-1. フォーカスとは

アクションフルフィルメントを実現するための第一歩は、スペースに投稿されたメッセージに対して「フォーカス」を作成することです。「フォーカス(Focus)」とはその言葉通り「焦点を当てる・集中させる」からきており、メッセージに関連して WWS が何らかの情報やサービス(=アクション)を提供できることをユーザーに提示し、実際に提供(=フルフィルメント)するための起点となるものです。

フォーカスを作成すると、対象となるメッセージには紫色の下線が描画されます。

 

この下線の引かれたメッセージはクリックできるようになっていて、ユーザーがクリックすると WebHook (message-annotation-added イベント)を通じてアプリケーションに通知されるようになっています。通知イベントにはメッセージ内容のほか、関連付けられた ActionId (アクションを識別するタグのようなもの)や payload(データ)が含まれます。上図のようなフォーカスの場合、例えば 「ActionId = QueryCauseOfError、payload = b5-301」のような情報です。これを受けてアプリケーション側では「b5-301」エラーコードの原因をデータベース等から検索してユーザーに提供する、といったことができるようになります。

この仕組みを利用することでユーザーの求めているサービスや情報(アクション)を判別し、ユーザーの要望に応えることが行える(すなわちアクションをフルフィルする=アクションフルフィルメント)、というわけです。

3-2. メッセージフォーカスの作成方法

ここでご紹介したフォーカスの実体はメッセージに関連づけられるアノテーションの一つで メッセージフォーカス(message-focus)と呼ばれるタイプのアノテーションです。メッセージフォーカスを作成するにはこの message-focus アノテーションをメッセージに付加することになります。

これには WWS では二つの方法があります。一つは WWS の IBM Watson Assistant 連携機能を利用して WWS に自動的に付加させる方法(Make your App cognitive)、もう一つは WWS GraphQL API(*) の addMessageFocus を利用して自力で行う方法です。

* WWS の GraphQL API については 第 2 回目の記事を参照してください

前者の方法では、IBM Watson Assistant による機械学習を適用してユーザーからの自然言語での発言(メッセージ)を理解し、適切なアクション(ActionId)が紐づけられたメッセージフォーカスを自動的に作成させることができるので、より AI らしい動作の実現が可能となります。一方、IBM Watson Assistant の機能を利用せずアプリケーション(開発者)自身でメッセージの解釈をする、または別の AI クラウドサービスと連携させたい場合は後者の方法、WWS GraphQL API を使用して自力でメッセージフォーカスを作成する必要があります。

IBM Watson Assistant 連携機能を利用する方法については次回解説するので、ここではその内部の仕組みであるメッセージフォーカスに慣れ親しんで頂くためにも、後者の GraphQL API を使用する方法を簡単にご紹介しておきたいと思います。

3-3. GraphQL API を用いたメッセージフォーカスの作成方法

下記のような mutation Query を使用します。

 

詳細は次回でも解説しますが、対象メッセージを表す messageId、下線の範囲 start~end、関連づけるアクション(複数可)を示す actions 配列、付加データの payload などを指定します。こうして作成される、関連アクションが定義された message-focus アノテーションの追加を検知すると WWS のクライアントアプリケーションは対象メッセージに下線を描画してリンク化してくれるというわけです。

4

ダイアログにアプリの実行結果を表示する

具体例として、「特定のメッセージが投稿されたら、そのメッセージをクリックして、指定したアクションを行う」というアプリケーションを考えてみましょう。

投稿されたメッセージをクリック可能にするには、前章の「メッセージフォーカス」を利用します。投稿されたメッセージの内容に条件を設定し、条件に合ったメッセージを投稿すると下線がひかれてクリックできるようにします。更にフォーカスされたメッセージをクリックしたら、指定したアクションを実行させることで、このアプリケーションを実現することが可能です。

たとえば、「明日の天気は?」と投稿されたらテキスト入力させるといったイメージです。 この例ですと、「明日の天気は?」と投稿すると下線が引かれクリック可能になり、クリックするとテキスト入力を促すダイアログが表示されます。 この例はシンプルですが、メッセージフォーカスの条件を複数設定してメニューのように分岐させたり、ダイアログの内容をボタン入力にして更にアプリケーションを繋げたりすることもできますので、用途に合わせた様々なアプリケーションを作ることが可能です。

Node-RED と GraphQL Query の組み合わせにより行う具体的な実装方法は次回でご紹介いたしますが、基本的な考え方は、以下の通りです。

  1. 実行したいアプリケーションを準備する
  2. どんなメッセージをトリガーにして「1」を実行させるかを決定する
  3. 「2」のメッセージにメッセージフォーカスを作成し、クリックされたら「1」を実行する設定を行う

アプリケーションの実行はフォーカスが作成されたメッセージをクリックした際のイベントを WebHook で受信します。呼び出されたアプリケーションが処理を行った後に GraphQL でダイアログと呼ばれる WWS の下部に存在するエリアにアプリケーションの実行結果を表示するような流れになります。

5

まとめ

今回は AI の技術を利用した IBM Watson Workspace で実現できるアプリケーション連携技術であるアクションフルフィルメントを鬼わかりやすく解説しました。日常業務の中で、同僚と会話をしながら Web 上から関連するコンテンツを探したり、アプリケーションを起動してプロセスを進めたりする事はよくあると思います。そのたびにアプリケーションを切り替えたりする事で集中力を失ってしまったり、目的の情報がすぐに見つけられないと言うことも経験あるのではないでしょうか?それを IBM Watson Workspace 上での会話の場合は会話の内容を理解して、利用者が求めている可能性の高い情報、アクセスが必要である可能性の高いアプリケーションなどが提案されるので、業務効率の大きな向上が見込めると思っていただけたら幸いです。

さて、次回は業務効率の向上が見込めるアクションフルフィルメントを利用したアプリケーション連携の実装方法を鬼わかりやすく解説します。お楽しみに!


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


関連トピック


コメント

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Lotus
ArticleID=1063414
ArticleTitle=連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)
publish-date=11072018