Chatbotの概要

2017年9月21日(木)
樋口 勝一
コミュニケーションの新しい形としてChatbotが注目されている。この連載では既存のサービスを利用してChatbotを作成してみる。

Chatbotとは?

「Chatbot」という言葉は、すでに一般的に使われるようになっているので今さらな解説となってしまいますが、この連載を始めるにあたり、復習の意味も込めて「Chatbotとは何か?」を簡単に確認しておきましょう。

ChatbotはChatとBotの造語です。「Chat」はチャット、文字によるコミュニケーション手段の一つです。手紙や電子メールとは異なり、リアルタイム性があるのが特徴です。文字だけではなく、画像、リアルタイムな動画の送信や音声によるチャットも可能です。こうなるともはやチャットというよりはテレビ電話ですね。「Bot」はロボットのことです。一口にロボットといっても定義範囲は広く、鉄腕アトムのような人型ロボットや、人の代わりに何か作業をする工業ロボットなど形あるものや、プログラムによって自動的に作業をするといったコンピューターの世界のロボットもあります。Chatbotは音声や文字による人との対話をインターフェースとして、自動的に作業を行うアプリケーションやサービスのことです。

「人との対話を自動的に」というところだけ見ると人工知能(AI)が必要と感じるかもしれませんが、あらかじめ決まった様式に沿った範囲内で、選択的に会話を行うのであればプログラムだけで十分実現可能です。Chatbotで有名なところでは、Microsoftが開発したLINEアカウント「りんな」があります。MicrosoftのAI技術を搭載して、一般的な会話のやりとりや、しりとり遊びをしてくれたり、送信した犬の画像から犬種を教えてくれたりとAIをフル活用したChatbotになっています。

AI搭載のChatbot「りんな」

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のマナミ

LOHACOは、アスクルがヤフーの協力により運営するネットショッピングサイトです。AI搭載のマナミが文章による質問に答えてくれて、目的の商品をすぐに探すことができます。またLINEにも対応しており、スマートフォンからも気軽に利用できます。

LOHACOのマナミ

LOHACOのマナミ

フロムエーのパン田一郎

フロムエーのパン田一郎

リクルートのアルバイト情報サイトであるフロムエーでは、LINE専用のChatbotとしてパン田一郎と会話することができます。アルバイト情報の検索だけではなく、給料計算などアルバイトに役立つ機能も利用可能です。また、アルバイト探しとは関係なく、日常的な会話のやりとりもできるAI搭載のChatbotとしても楽しむことができます。

フロムエーのパン田一郎

フロムエーのパン田一郎

NAVIタイムのMr.NAVITIME

NAVIタイムのMr.NAVITIME

経路検索で有名なNAVIタイムでは、これまでアプリとして提供していたサービスを、LINEのメッセージングインターフェースを利用して提供しています。これまでのアプリケーション開発で必要だったインターフェース開発をLINEメッセージングのAPIを利用することで省略、共通化しています。

NAVIタイムのMr.NAVITIME)

NAVIタイムのMr.NAVITIME)

Chatbotの作り方

Chatbotの実例をいくつか紹介しましたが、このようなChatbotはどのように作ればよいのでしょうか。プログラム経験がある方であれば、予測される会話内容をすべてプログラムに条件式として記載することで、定型応答のChatbotは簡単に作成が可能です。ただ、企業が提供するサービスとして、ある程度の品質と正確さ、開発のしやすさなど考慮すると、専用のChatbot開発サービスの利用をお勧めします。Chatbot開発サービスとしては、有償/無償、AI搭載、プログラミング不要など様々な形態で提供されています。いくつか紹介しておきましょう。

Azure Bot Service

Azure Bot Service(プレビュー)

MicrosoftのパブリッククラウドAzureのサービスの一つとして、Chatbot開発用にAzure Bot Serviceが提供されています(原稿執筆時点では、プレビュー版)。ブラウザ上ですべての開発が可能で、開発したChatbotはそのままAzureのWebアプリケーションとして公開できるようになっています。また、Azure AIとして提供されている他のサービスとも連携できるようになっており、よりインテジェントなChatbotサービスを開発することができます。

Azure Bot Service

Azure Bot Service

IBM Watson

IBM Watson

IBMが提供する「拡張知能」という位置づけのWatsonには、プログラミング不要で最初からAIが搭載されたChatbotを作成することができるようになっています。あらかじめ例文やそれに対する答えをいくつか入力して、実際に会話の流れをGUIで作成していけば、ある程度のChatbotが簡単に作れるようになっています。もちろん高度なAI機能を搭載したChatbotをプログラミングして開発することも可能です。

IBM Watson

IBM Watson

Repl AI

Repl AI

ダイアログ形式で想定される会話を組み立てていく、プログラムレスなChatbot作成サービスです。あらかじめ設定したキーワードに対しての返答集を作成するといった形式のサービスで、AIを搭載したものではありませんが、すべてGUIで作成できるので使いやすさには定評があります。定型的なやりとりが想定されるシーンでは簡単にChatbotが作れるサービスです。

Repl AI

Repl AI

My-ope office

My-ope office

My-ope officeは、社内問い合わせに特化した便利な機能を提供するChatbot開発サービスです。CSVによる対話定義の一括流し込みや、Q&Aデータをツリービュー表示で確認できるなど、定型的な問い合わせの多い社内利用に適した使いやすいChatbot開発サービスとなっています。

My-ope office

My-ope office

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 Builder SDK

Bot Builder SDK

Bot Builder SDK

Bot Connector

Bot Connectorは、開発したChatbotを外部のメッセージングアプリケーションやサービスに接続するための機能を提供します。

Bot Directory

Bot Directoryは、Chatbotを一般的に公開して誰でも利用できるようにするサービスです。登録には承認が必要ですが、登録されたChatbotはBingやCortanaから検索ができるようになります。

Bot Connector やBot Directory の設定はBot Framework専用のポータルサイトが用意されていて、ブラウザ上で簡単に接続設定できるようになっています。

Bot Framework ポータル

Bot Framework ポータル

Bot Framework ポータル

Bot Connector

Bot Connector

Bot Directory

Bot Directory

Bot Frameworkを利用した開発

Bot Frameworkを利用してのChatbotの開発手順は、以下のようになります。

  1. 「Bot Builder SDKでボットを作成」
  2. 「Azure上にWebアプリケーションとして公開」
  3. 「Bot Frameworkポータルサイトにボットを登録して各メッセージングAPIへの接続設定」

Azure Bot Serviceは、上記の手順をブラウザからWebサービスを利用することで、すべてをAzure上で行ってしまおうというものです。今回は開発のしやすさという点から、使い慣れたPC上に開発環境として、Visual Studio 2017とBot Frameworkをインストールして、C#を使ってChatbotを開発します。開発したChatbotをWebアプリケーションとして公開して、メッセージングアプリケーションから利用できるようにするところまで一つずつ手順を追って紹介していきます。

Visual Studio 2017を使ってChatbotを開発

Visual Studio 2017を使ってChatbotを開発

GMOインターネット株式会社 Windowsソリューション チーフエグゼクティブ

GMOインターネットでWindowsのサービス開発運用に関わって16年、数年単位で進化し続けるMicrosoftのWindowsは新しもの好きにはたまらない製品です。自動販売機に見たことのないジュースがあれば、迷わすボタンを押します。そんなチャレンジが僕の人生を明るく、楽しくしてくれています。

お名前.com デスクトップクラウド
http://www.onamae-desktop.com/

お名前.com VPS Hyper-V
http://www.onamae-server.com/vps/hyperv/

連載バックナンバー

Web開発技術解説
第10回

Chatbotから話しかける(プロアクティブメッセージの送信)

2018/5/18
連載10回目となる今回は、Chatbotから先に話しかけるための手順を紹介します。
Web開発技術解説
第9回

Chatbotで画像コミュニケーションを実現する

2018/5/14
連載9回目となる今回は、Chatbotとの文字でのやり取りに画像を追加する方法を解説します。
Web開発技術解説
第8回

FacebookでChatbotを公開する

2018/4/17
連載8回目となる今回は、FacebookのMessengerを介してChatbotとやり取りする方法を解説します。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています