前回までに、Microsoft Cognitive Servicesによって様々なAI機能が利用できることを紹介した。画像分析、音声分析、自然言語分析などのサービスは単体でも利用価値が高いが、他のサービスと組み合わせることで、さらに高度な処理が可能だ。

 今回はSlackなどと組み合わせ、自然文で対話し関連ニュースをテキスト表示するチャットボットを作成する。ユーザーが入力した自然文を処理してキーワードを抽出したうえで、ニュース検索を行う。

 チャットボットの開発の歴史は古く、始まりは1966年にジョセフ・ワイゼンバウム氏が作成した「ELIZA」だといわれる。日本では1980年代に8ビットパソコンが商品化されたころから「人工無脳」と呼ばれるソフトウエアが数多く登場した。

 現在はTwitterなどのSNSで、自然文を自動投稿するボットが数多く見受けられるようになった。女子高生のような対話を実現した、Microsoftの「りんな」は代表例の一つだ。Amazon EchoやGoogle Homeのようなスマートスピーカー(AIスピーカー)も、チャットボットの一種といえる。

 チャットボットは業務にも役立つ。例えば顧客チャネルの一つとしてチャットを用意し、チャットボットで1次対応する、という使い方が始まっている。単純な問い合わせはチャットボットで対応し、それ以外はオペレーターが対応する、といった具合だ。

 今回取り上げるチャットボットのアーキテクチャーや開発方法は、顧客対応のような業務用のチャットボットに応用できる。基本を押さえて、業務に活用してほしい。

Bot Service、LUIS、Bing、Slackを組み合わせ

 それでは、今回作成するチャットボットについて説明する。

 まずチャットボットの内部構成を見てみよう(図1)。チャットボットの中核アプリケーションにはチャットボットSDKの「Azure Bot Service」を、自然言語処理にはLUIS(Language Understanding)を、インターネット上のニュース検索にはAzureサービスの一つ「Bing News Search API」を、ユーザーとのチャットインタフェースには「Slack」をそれぞれ用いる。

図1 今回作成するチャットボットの内部構成
[画像のクリックで拡大表示]

 具体的な処理の流れは以下の通りである。

(1)ユーザーがSlackに自然言語の質問文を書き込む
(2)Bot ServiceがSlackから質問文を受け取る
(3)質問文をLUISに渡し、検索ワードを抽出する
(4) 検索ワードをBing News Search APIに渡し、ニュース検索を行う
(5)検索結果を受け取り、Slackに投稿する

 このチャットボットを開発するため、次のプロセスで作業を進める。

Process1 LUISアプリケーションの作成
Process2 ボットアプリケーションの作成
Process3 ボットとLUISの連携
Process4 ボットのひな型コードのカスタマイズ
Process5 ボットとSlackの連携

 五つのプロセスを一つずつ詳しく見ていこう。

この先は有料会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら