Chatbotの概要
Chatbotとは?
「Chatbot」という言葉は、すでに一般的に使われるようになっているので今さらな解説となってしまいますが、この連載を始めるにあたり、復習の意味も込めて「Chatbotとは何か?」を簡単に確認しておきましょう。
ChatbotはChatとBotの造語です。「Chat」はチャット、文字によるコミュニケーション手段の一つです。手紙や電子メールとは異なり、リアルタイム性があるのが特徴です。文字だけではなく、画像、リアルタイムな動画の送信や音声によるチャットも可能です。こうなるともはやチャットというよりはテレビ電話ですね。「Bot」はロボットのことです。一口にロボットといっても定義範囲は広く、鉄腕アトムのような人型ロボットや、人の代わりに何か作業をする工業ロボットなど形あるものや、プログラムによって自動的に作業をするといったコンピューターの世界のロボットもあります。Chatbotは音声や文字による人との対話をインターフェースとして、自動的に作業を行うアプリケーションやサービスのことです。
「人との対話を自動的に」というところだけ見ると人工知能(AI)が必要と感じるかもしれませんが、あらかじめ決まった様式に沿った範囲内で、選択的に会話を行うのであればプログラムだけで十分実現可能です。Chatbotで有名なところでは、Microsoftが開発したLINEアカウント「りんな」があります。MicrosoftのAI技術を搭載して、一般的な会話のやりとりや、しりとり遊びをしてくれたり、送信した犬の画像から犬種を教えてくれたりとAIをフル活用したChatbotになっています。
注目されるChatbot
最近のインターネットの利用方法を見てみると、以前はホームページからの情報収集やメールが主体であったコミュニケーションが、Twitter、FacebookなどSNSからの情報収集や、LINEなどのメッセージング機能を利用したものへと、変化してきているように感じられます。特定のアカウントをフォローすることによる情報収集のしやすさや、LINEのようにメールよりリアルタイム性に優れており、スタンプやグループといった様々な機能を備えていることも利用機会が増えている理由となっています。人々がインターネットを利用する際のインターフェースが、これまでのパソコンから「ホームページを開く」、「メールを利用する」といったものから、スマートフォンから「SNSやメッセージングアプリを使う」といったかたちに変化しています。
これらの変化に対応すべく、サービスを提供する企業はSNSへの広告配信、メッセージングを利用したユーザーインターフェースの開発に注力することが必須となってきています。そんな中、チャットを新しいユーザーインターフェースとした取り組みが現在盛んに行われています。たとえばFacebookやLINEが公開しているAPIを利用することで、企業やユーザーはメッセージング機能を利用したサービスを提供可能になります。開発者はこれまでのようにアプリケーションのインターフェースを開発する必要がなく、FacebookやLINEなど共通化されたインターフェース内でChatbotの機能開発に集中することができます。また利用者にとっても、使い慣れたチャットのインターフェースで、より簡単に、すばやく目的の情報にたどりつけるようになります。サービスを提供する側としても、スマートフォンのような小さなデバイスでもピンポイントの情報を提供することができ、顧客獲得や、売り上げアップが期待できます。
当初のチャットツールは、人と人とのコミュニケーションツールとして利用されてきましたが、企業が顧客獲得、顧客満足度のアップ、さらには業務の効率化を目的として、チャットに自動応答機能やユーザーの入力内容によって表示される内容を選択するといった自動機能を搭載するようになりました。これがいわゆるChatbotと呼ばれるものです。Chatbotにはあらかじめ用意されたプログラムに即して定型のやり取りをするものと、AIを利用して自然な会話の中からユーザーの要望を理解して回答するといったものがあります。Chatbotが多く採用されている企業のカスタマーサポートでは、ユーザーからの一次対応はAIを利用したChatbotが担当し、より高度で細かい対応が必要な場合は担当者へ引き継ぐといった具合に、Chatbotによって人手による作業の効率化を実現しています。
Chatbotの利用例
実際にChatbotがサービスとして採用されている企業の例をいくつか見てみましょう。
LOHACOのマナミ
LOHACOは、アスクルがヤフーの協力により運営するネットショッピングサイトです。AI搭載のマナミが文章による質問に答えてくれて、目的の商品をすぐに探すことができます。またLINEにも対応しており、スマートフォンからも気軽に利用できます。
フロムエーのパン田一郎
リクルートのアルバイト情報サイトであるフロムエーでは、LINE専用のChatbotとしてパン田一郎と会話することができます。アルバイト情報の検索だけではなく、給料計算などアルバイトに役立つ機能も利用可能です。また、アルバイト探しとは関係なく、日常的な会話のやりとりもできるAI搭載のChatbotとしても楽しむことができます。
NAVIタイムのMr.NAVITIME
経路検索で有名なNAVIタイムでは、これまでアプリとして提供していたサービスを、LINEのメッセージングインターフェースを利用して提供しています。これまでのアプリケーション開発で必要だったインターフェース開発をLINEメッセージングのAPIを利用することで省略、共通化しています。
Chatbotの作り方
Chatbotの実例をいくつか紹介しましたが、このようなChatbotはどのように作ればよいのでしょうか。プログラム経験がある方であれば、予測される会話内容をすべてプログラムに条件式として記載することで、定型応答のChatbotは簡単に作成が可能です。ただ、企業が提供するサービスとして、ある程度の品質と正確さ、開発のしやすさなど考慮すると、専用のChatbot開発サービスの利用をお勧めします。Chatbot開発サービスとしては、有償/無償、AI搭載、プログラミング不要など様々な形態で提供されています。いくつか紹介しておきましょう。
Azure Bot Service
MicrosoftのパブリッククラウドAzureのサービスの一つとして、Chatbot開発用にAzure Bot Serviceが提供されています(原稿執筆時点では、プレビュー版)。ブラウザ上ですべての開発が可能で、開発したChatbotはそのままAzureのWebアプリケーションとして公開できるようになっています。また、Azure AIとして提供されている他のサービスとも連携できるようになっており、よりインテジェントなChatbotサービスを開発することができます。
IBM Watson
IBMが提供する「拡張知能」という位置づけのWatsonには、プログラミング不要で最初からAIが搭載されたChatbotを作成することができるようになっています。あらかじめ例文やそれに対する答えをいくつか入力して、実際に会話の流れをGUIで作成していけば、ある程度のChatbotが簡単に作れるようになっています。もちろん高度なAI機能を搭載したChatbotをプログラミングして開発することも可能です。
Repl AI
ダイアログ形式で想定される会話を組み立てていく、プログラムレスなChatbot作成サービスです。あらかじめ設定したキーワードに対しての返答集を作成するといった形式のサービスで、AIを搭載したものではありませんが、すべてGUIで作成できるので使いやすさには定評があります。定型的なやりとりが想定されるシーンでは簡単にChatbotが作れるサービスです。
My-ope office
My-ope officeは、社内問い合わせに特化した便利な機能を提供するChatbot開発サービスです。CSVによる対話定義の一括流し込みや、Q&Aデータをツリービュー表示で確認できるなど、定型的な問い合わせの多い社内利用に適した使いやすいChatbot開発サービスとなっています。
Microsoft Bot FrameworkでChatbot開発
Webサービスとして提供されているChatbot開発サービスをいくつか紹介しましたが、この連載ではコーディングも含めてMicrosoftが提供している「Microsoft Bot Framework」 を使ってのChatbotの開発方法を紹介します。Microsoft Bot Framework は、Azure Bot ServiceでもChatbot開発のベースとなっており、対話型ユーザーインターフェースを使ったアプリケーション開発のためのフレームワークとなっています。開発したChatbotは、他のメッセージングアプリケーションと連携や、企業のホームページへの埋め込こみなど、様々な形で利用できるようになっています。さらに、AzureのAIサービスである「Cognitive Service」ともAPIで簡単に連携できるようになっています。ChatbotにAIによる文脈解読や、画像認識、音声認識、自然言語解析機能を追加することで、よりインテリジェンスで、より自然な対話のできるChatbotを開発できるようになります。
Bot Framework は「Bot Builder SDK」「Bot Connector」「Bot Directory」の3つで構成されています。提供する機能を個別に見ていきましょう。
Bot Builder SDK
Bot Builder SDKはChatbot用のソフトウェア開発キットで、GitHubでもオープンソースとして公開されています。対応する開発言語は、C#とNode.jsの2種類です。対話形式のアプリケーション開発のためのテンプレートが最初から用意されているため、細かいアプリケーションロジックを作成する必要がなく、対話内容の開発に専念することができるので、非常に効率の良い開発ツールとなっています。
Bot Connector
Bot Connectorは、開発したChatbotを外部のメッセージングアプリケーションやサービスに接続するための機能を提供します。
Bot Directory
Bot Directoryは、Chatbotを一般的に公開して誰でも利用できるようにするサービスです。登録には承認が必要ですが、登録されたChatbotはBingやCortanaから検索ができるようになります。
Bot Connector やBot Directory の設定はBot Framework専用のポータルサイトが用意されていて、ブラウザ上で簡単に接続設定できるようになっています。
Bot Frameworkを利用した開発
Bot Frameworkを利用してのChatbotの開発手順は、以下のようになります。
- 「Bot Builder SDKでボットを作成」
- 「Azure上にWebアプリケーションとして公開」
- 「Bot Frameworkポータルサイトにボットを登録して各メッセージングAPIへの接続設定」
Azure Bot Serviceは、上記の手順をブラウザからWebサービスを利用することで、すべてをAzure上で行ってしまおうというものです。今回は開発のしやすさという点から、使い慣れたPC上に開発環境として、Visual Studio 2017とBot Frameworkをインストールして、C#を使ってChatbotを開発します。開発したChatbotをWebアプリケーションとして公開して、メッセージングアプリケーションから利用できるようにするところまで一つずつ手順を追って紹介していきます。