(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024061459
(43)【公開日】2024-05-07
(54)【発明の名称】情報処理装置、情報処理システム、プログラムおよび情報処理方法
(51)【国際特許分類】
G06F 16/90 20190101AFI20240425BHJP
【FI】
G06F16/90 100
【審査請求】有
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022169426
(22)【出願日】2022-10-21
(71)【出願人】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】中村 円亮
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175EA01
(57)【要約】
【課題】チャットボット機能において、外部システムから取得する情報を適切に取り扱うことができるようにする。
【解決手段】シナリオと当該シナリオにおいて質問情報から応答情報に導くオブジェクトとを対応付けるシナリオ情報に基づいて、前記質問情報を外部システムに送信して得られた項目名と項目値とを前記応答情報として自動応答するチャットボット機能を提供する情報処理装置であって、前記シナリオ情報における前記オブジェクトの設定において、前記項目名を識別するための識別情報の設定を受け付ける表示制御部を備え、前記表示制御部は、前記外部システムから取得した前記項目名に対応する前記識別情報が設定されている場合、当該項目名を前記識別情報に変更する。
【選択図】
図9
【特許請求の範囲】
【請求項1】
シナリオと当該シナリオにおいて質問情報から応答情報に導くオブジェクトとを対応付けるシナリオ情報に基づいて、前記質問情報を外部システムに送信して得られた項目名と項目値とを前記応答情報として自動応答するチャットボット機能を提供する情報処理装置であって、
前記シナリオ情報における前記オブジェクトの設定において、前記項目名を識別するための識別情報の設定を受け付ける表示制御部を備え、
前記表示制御部は、前記外部システムから取得した前記項目名に対応する前記識別情報が設定されている場合、当該項目名を前記識別情報に変更する、
ことを特徴とする情報処理装置。
【請求項2】
前記表示制御部は、前記識別情報に対応付けて前記項目値を登録する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記表示制御部は、同一の前記項目名にかかる異なる前記識別情報を、一の画面に表示する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記表示制御部は、前記識別情報として既に設定されている情報を入力した場合、すでに設定されている旨を報知する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項5】
シナリオと当該シナリオにおいて質問情報から応答情報に導くオブジェクトとを対応付けるシナリオ情報に基づいて、前記質問情報を外部システムに送信して得られた項目名と項目値とを前記応答情報として端末装置に自動応答するチャットボット機能を提供する情報処理システムであって、
前記シナリオ情報における前記オブジェクトの設定において、前記項目名を識別するための識別情報の設定を受け付ける表示制御部を備え、
前記表示制御部は、前記外部システムから取得した前記項目名に対応する前記識別情報が設定されている場合、当該項目名を前記識別情報に変更する、
ことを特徴とする情報処理システム。
【請求項6】
シナリオと当該シナリオにおいて質問情報から応答情報に導くオブジェクトとを対応付けるシナリオ情報に基づいて、前記質問情報を外部システムに送信して得られた項目名と項目値とを前記応答情報として自動応答するチャットボット機能を提供する情報処理装置を制御するコンピュータを、
前記シナリオ情報における前記オブジェクトの設定において、前記項目名を識別するための識別情報の設定を受け付ける表示制御部として機能させ、
前記表示制御部は、前記外部システムから取得した前記項目名に対応する前記識別情報が設定されている場合、当該項目名を前記識別情報に変更する、
ことを特徴とするプログラム。
【請求項7】
シナリオと当該シナリオにおいて質問情報から応答情報に導くオブジェクトとを対応付けるシナリオ情報に基づいて、前記質問情報を外部システムに送信して得られた項目名と項目値とを前記応答情報として自動応答するチャットボット機能を提供する情報処理装置における情報処理方法であって、
表示制御部が、前記シナリオ情報における前記オブジェクトの設定において、前記項目名を識別するための識別情報の設定を受け付ける表示制御工程を含み、
前記表示制御部は、前記外部システムから取得した前記項目名に対応する前記識別情報が設定されている場合、当該項目名を前記識別情報に変更する、
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム、プログラムおよび情報処理方法に関する。
【背景技術】
【0002】
今日において、ユーザから入力されたテキスト、音声又は画像のパターン認識をクラウド経由で行い、会話、質問等に対する応答、機械制御等を行う、いわゆるチャットボットが知られている。このようなチャットボットとして、ユーザとの間で対話(チャット)形式のやり取りを行うことにより情報を送受する対話型通信を行うものが知られている。
【0003】
例えば、特許文献1には、予め作成されたチャットボットのシナリオ情報に基づいて外部システムから取得した情報を、ユーザに提供するチャットボットシステムが開示されている。より詳細には、従来のチャットボットシステムによれば、API(Application Programming Interface)を呼び出された外部システムは、例えば、JSON形式のように、キー(項目名)とバリュー(項目値)とセットで応答することが多い。チャットボットシステムは、このキー(項目名)を使うことで、対応するバリュー(項目値)を特定することができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、従来のチャットボットシステムによれば、複数の外部システムから情報を取得する際に、外部システムから応答がされた情報のキー(項目名)が重複する可能性がある、という問題がある。さらに、従来のチャットボットシステムによれば、同一の外部システムから情報を複数回取得し、各回で取得した情報を区別して利用したい場合において、これらの情報のキー(項目名)が重複してしまう、という問題がある。
【0005】
このように、従来のチャットボットシステムによれば、外部システムから取得した情報を適切に取り扱うことが困難な可能性がある、という問題がある。
【0006】
本発明は、上記に鑑みてなされたものであって、チャットボット機能において、外部システムから取得する情報を適切に取り扱うことができるようにすることを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するために、本発明は、シナリオと当該シナリオにおいて質問情報から応答情報に導くオブジェクトとを対応付けるシナリオ情報に基づいて、前記質問情報を外部システムに送信して得られた項目名と項目値とを前記応答情報として自動応答するチャットボット機能を提供する情報処理装置であって、前記シナリオ情報における前記オブジェクトの設定において、前記項目名を識別するための識別情報の設定を受け付ける表示制御部を備え、前記表示制御部は、前記外部システムから取得した前記項目名に対応する前記識別情報が設定されている場合、当該項目名を前記識別情報に変更する、ことを特徴とする。
【発明の効果】
【0008】
本発明によれば、チャットボット機能において、外部システムから取得する情報を適切に取り扱うことができる、という効果を奏する。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態にかかる自動応答システムを含むシステム構成の一例を示す図である。
【
図2】
図2は、チャットボットサービスサーバ及び外部連携サーバのハードウェア構成の一例を示す図である。
【
図3】
図3は、自動応答システムの機能構成の一例を示す図である。
【
図4】
図4は、内部登録部の機能構成の一例を示す図である。
【
図5】
図5は、FAQテーブルのデータ構成の一例を示す図である。
【
図6】
図6は、外部連携テーブルのデータ構成の一例を示す図である。
【
図7】
図7は、シナリオテーブルのデータ構成の一例を示す図である。
【
図8-1】
図8-1は、オブジェクト管理テーブル(テキスト)のデータ構成の一例を示す図である。
【
図8-2】
図8-2は、オブジェクト管理テーブル(デフォルト)のデータ構成の一例を示す図である。
【
図8-3】
図8-3は、オブジェクト管理テーブル(システムデータ表示)のデータ構成の一例を示す図である。
【
図8-4】
図8-4は、オブジェクト管理テーブル(API連携)のデータ構成の一例を示す図である。
【
図9】
図9は、管理画面入出力部により表示されるシナリオ設定画面の一例を示す図である。
【
図10】
図10は、管理画面入出力部により表示されるシナリオ設定画面の一例を示す図である。
【
図11】
図11は、管理画面入出力部により表示されるシナリオ設定画面の一例を示す図である。
【
図12】
図12は、従来のチャットボットシステムにおける問題点を示す図である。
【
図13】
図13は、チャット画面の更新処理の流れを示すシーケンス図である。
【
図14】
図14は、取得情報を保存する処理の流れを示すフローチャートである。
【
図15】
図15は、取得情報管理テーブルの一例を示す図である。
【
図16】
図16は、チャットボットサービスにより表示されるチャット画面の一例を示す図である。
【発明を実施するための形態】
【0010】
以下に添付図面を参照して、情報処理装置、情報処理システム、プログラムおよび情報処理方法の実施の形態を詳細に説明する。
【0011】
図1は、実施の形態にかかる自動応答システム1を含む情報処理システム100のシステム構成の一例を示す図である。情報処理システム100は、自動応答システム1と、端末装置であるユーザ端末3と、管理者端末4と、外部システム6と、を備える。自動応答システム1は、いわゆるチャットボットを利用して、ユーザ端末3を使用するユーザ(会話ユーザ)からの質問等に対して自動的又は半自動的に応答するためのシステムである。
【0012】
図1に示す例においては、自動応答システム1はネットワーク2を介してユーザ端末3を通信可能にネットワーク接続し、ネットワーク5を介して管理者端末4及び外部システム6A,6B,…と通信可能にネットワーク接続している。以下、複数の外部システム6A,6B,…のそれぞれを区別する必要が無い場合には外部システム6と記載する場合がある。
【0013】
ユーザ端末3は、ユーザ(会話ユーザ)が使用する端末装置である。ユーザ端末3は、例えば、PC(Personal Computer)、タブレット端末、スマートフォン等である。管理者端末4は、自動応答システム1により実現されるやり取りの内容を管理する管理者(管理ユーザ)が使用する端末装置である。管理者端末4は、例えば、PC、タブレット端末、スマートフォン等である。ユーザ端末3及び管理者端末4は、それぞれ複数であってもよい。
【0014】
外部システム6は、所定の情報を提供可能なコンピュータシステムである。外部システム6は、例えば、1又は複数のコンピュータ(サーバ、PC等)により構成されるシステムである。外部システム6の数は、特に限定されるべきものではなく、1であっても3以上であってもよい。本実施形態においては、外部システム6Aは顧客管理システム、外部システム6Bは追跡システムである。以下、外部システム6Aは顧客管理システム6A、外部システム6Bは追跡システム6Bという。顧客管理システム6Aは、顧客の注文履歴などを管理するシステムである。追跡システム6Bは、顧客が注文した商品の発送にかかる追跡情報を管理するシステムである。
【0015】
ネットワーク2,5は、例えば、インターネット、LAN(Local Area Network)等である。ネットワーク2,5は、互いに独立していてもよいし、重複、連携等するものであってもよい。
【0016】
本実施の形態の自動応答システム1は、情報処理装置であるチャットボットサービスサーバ11及び外部連携サーバ12を有する。なお、本実施形態においては、チャットボットサービスサーバ11と外部連携サーバ12とを別体としたが、これに限るものではなく、チャットボットサービスサーバ11と外部連携サーバ12とは一体であってもよい。
【0017】
チャットボットサービスサーバ11は、予め登録されたシナリオ情報に基づきユーザ端末3との間で対話型通信を確立し、ユーザ端末3から送信された質問情報に対する応答情報を、当該質問情報を送信したユーザ端末3に送信するための処理を行う。ここで、シナリオ情報は、シナリオ型のチャットボットが質問情報から応答情報へ導くフロー(すなわち、ユーザ端末3との会話に使用するフロー)である。
【0018】
外部連携サーバ12は、適切な応答情報を生成するために、外部システム6(顧客管理システム6A、追跡システム6B)から必要な情報を取得するための処理を行う。
【0019】
図2は、チャットボットサービスサーバ11及び外部連携サーバ12のハードウェア構成の一例を示す図である。本実施形態のチャットボットサービスサーバ11及び外部連携サーバ12は、コンピュータにより構築されている。チャットボットサービスサーバ11及び外部連携サーバ12は、CPU(Central Processing Unit)21、ROM(Read Only Memory)22、RAM(Random Access Memory)23、HD(Hard Disk)24、HDD(Hard Disk Drive)コントローラ25、ディスプレイ26、外部機器接続I/F(Interface)28、ネットワークI/F29、バスライン30、キーボード31、ポインティングデバイス32、DVD-RW(Digital Versatile Disc Rewritable)ドライブ34及びメディアI/F36を備えている。
【0020】
CPU21は、チャットボットサービスサーバ11又は外部連携サーバ12全体の動作を制御する。ROM22は、IPL(Initial Program Loader)等のCPU21の駆動に用いられるプログラムを記憶する。RAM23は、CPU21のワークエリアとして使用される。
【0021】
HD24は、プログラム等の各種データを記憶する。HDDコントローラ25は、CPU21の制御に従いHD24に対する各種データの読み出し又は書き込みを制御する。
【0022】
ディスプレイ26は、カーソル、メニュー、ウィンドウ、文字、画像等の各種情報を表示する。外部機器接続I/F28は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、USB(Universal Serial Bus)メモリ、プリンタ等である。ネットワークI/F29は、ネットワーク2,5を利用してデータ通信をするためのインターフェースである。バスライン30は、CPU21等の各構成要素を電気的に接続するためのアドレスバス、データバス等である。
【0023】
キーボード31は、文字、数値、各種指示等の入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス32は、各種指示の選択や実行、処理対象の選択、カーソルの移動等を行う入力手段の一種である。
【0024】
DVD-RWドライブ34は、着脱可能な記録媒体の一例としてのDVD-RW33に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RWに限らず、DVD-R等であってもよい。メディアI/F36は、フラッシュメモリ等の記録メディア35に対するデータの読み出し又は書き込み(記憶)を制御する。
【0025】
次に、チャットボットサービスサーバ11のCPU21がHD24に記憶されているプログラムを実行、および、外部連携サーバ12のCPU21がHD24に記憶されているプログラムを実行することで実現される、自動応答システム1の機能構成について説明する。
【0026】
図3は、自動応答システム1の機能構成の一例を示す図である。自動応答システム1は、通信部101、連携判断部102、検索部103、連携部104、登録部105、FAQテーブル131(内部登録情報)、外部連携テーブル132(外部連携情報)、及びシナリオテーブル133(シナリオ情報)を有する。
【0027】
通信部101は、不特定多数のユーザ端末3(3A,3B,3C)との間で情報を送受する対話型通信を実行するための処理を行う。対話型通信とは、ユーザ端末とチャットボットとの間で対話(チャット)形式のやり取りを行うことにより情報を送受するためのものである。以下、複数のユーザ端末3A,3B,3Cのそれぞれを区別する必要が無い場合にはユーザ端末3と記載する場合がある。通信部101は、ユーザ端末3から送信された情報を受信する受信部111と、ユーザ端末3へ情報を送信する送信部112とを有する。受信部111は、ユーザ端末3から質問情報を受信する。送信部112は、受信された質問情報に対する応答情報を、当該質問情報を送信したユーザ端末3に送信する。
【0028】
図3に示す例では、対話型通信を行うための手段が互いに異なる3台のユーザ端末3A,3B,3Cが示されている。ユーザ端末3Aは、ブラウザ(インターネットブラウザ)41を利用して対話型通信を確立する。ユーザ端末3Bは、特定のSNS(Social Networking Service)等のコミュニケーションツール42を利用して対話型通信を確立する。ユーザ端末3Cは、ブラウザ41又は/及び特定のコミュニケーションツール42を利用して対話型通信を確立する。このように、対話型通信を確立するためのユーザ端末3側の手段は任意に設定され得る。
【0029】
連携判断部102は、受信部111が受信した質問情報に対する応答情報を取得する際に、外部システム6との連携が必要であるか否かを判断する。連携判断部102は、ユーザ端末3から受信された質問情報に含まれるキーワードに基づき、通常モード又は外部連携モードのいずれを実行するかを判断する。また、連携判断部102は、対話型通信において取得された質問情報とシナリオテーブル133とに基づいて判断することもできる。通常モードとは、質問情報に含まれる要素(例えばユーザにより選択された選択肢、ユーザにより入力されたフリーワード等)と応答情報とを対応付けたFAQテーブル131に基づき応答情報を取得するモードである。外部連携モードとは、質問情報に含まれる要素と連携すべき外部システム6に関する情報とを対応付けた外部連携テーブル132に基づき外部システム6と連携して応答情報を取得するモードである。
【0030】
検索部103は、連携判断部102により通常モードを実行すると判断された場合に、FAQテーブル131から応答情報を取得する。また、検索部103は、FAQテーブル131に加えシナリオテーブル133を参照して応答情報を取得してもよい。
【0031】
連携部104は、連携判断部102により外部連携モードを実行すると判断された場合に、外部システム6から情報を取得するための処理を行う。本実施形態の連携部104は、チャットボットサービスサーバ11が有する連携制御部115と外部連携サーバ12が有する連携処理部116とを含む。連携制御部115は、連携判断部102により外部連携モードを実行すると判断された場合に、外部連携テーブル132から連携すべき外部システム6に関する情報を取得する。連携処理部116は、連携制御部115により取得された外部システム6に関する情報に基づき、対象となる外部システム6と通信を確立し、当該外部システム6から必要な情報を取得するための処理を行う。なお、当該連携部104の構成は一例であり、連携制御部115と連携処理部116とは同一のハードウェアに搭載されてもよい。
【0032】
登録部105は、ユーザ端末3以外の特定の端末である管理者端末4から送信された登録情報に基づき、FAQテーブル131、外部連携テーブル132及びシナリオテーブル133を登録(生成、編集、削除等を含む)するための処理を行う。本実施形態の登録部105は、FAQテーブル131及びシナリオテーブル133を登録するための処理を行う内部登録部121と、外部連携テーブル132を登録するための処理を行う外部登録部122とを含む。
【0033】
ここで、内部登録部121の機能構成について詳述する。
【0034】
図4は、内部登録部121の機能構成の一例を示す図である。
図4に示すように、内部登録部121は、管理画面入出力部301、質問管理部302、シナリオ管理部306を実現する。
【0035】
管理画面入出力部301は、チャットボットによって会話するにあたり必要な質問情報および応答情報(以下、質問回答データという)、チャットボットの設定を行うユーザの情報を管理するためのUI(User Interface)を提供する表示制御部の一例として機能する。また、管理画面入出力部301は、ユーザ端末3からメッセージ情報を受信し、シナリオ情報および設定情報に従って、受信したメッセージに対して応答するメッセージ情報をユーザ端末3に送信するシナリオ型のチャットボットを実行する。ここで、シナリオ情報は、上述したように、質問情報から応答情報に導くフローである。また、設定情報は、質問情報と応答情報とを対応付ける情報である。
【0036】
例えば、管理画面入出力部301は、チャットボットによる会話により入力される入力テキストをメッセージ情報(問合せ情報)として受信する。ここで、入力テキストは、例えば、文字または音声により入力されても良いが、テキストに変換可能な情報であれば、これに限定するものではない。また、管理画面入出力部301は、設定情報に含まれる質問回答データを追加または編集する場合、新たな質問回答データを質問管理部302に受け渡す。
【0037】
質問管理部302は、管理画面入出力部301から送られてきた各種情報(例えば、質問回答データ)に基づいて、当該各種情報をFAQテーブル131へ登録したり、FAQテーブル131から各種情報を取得して管理画面入出力部301へ返したりする。
【0038】
また、質問管理部302は、質問回答データを追加・編集する場合、管理画面入出力部301から受け取った質問回答データが登録可能であれば、当該質問回答データをFAQテーブル131に登録する。
【0039】
FAQテーブル131は、チャットボットがメッセージ情報の送信に用いる質問回答データ、当該質問回答データのカテゴリ等の各種情報を格納する。
【0040】
シナリオ管理部306は、シナリオテーブル133からシナリオ情報を取得して、管理画面入出力部301へ返す役割を持つ。ここで、シナリオ情報は、上述したように、シナリオ型のチャットボットが質問情報から応答情報へ導くフロー(すなわち、ユーザ端末3との会話に使用するフロー)である。なお、シナリオ管理部306は、シナリオテーブル133のほか、後述するオブジェクト管理テーブル140-1~140-5を管理する。オブジェクト管理テーブル140-1~140-5は、シナリオテーブル133に関連するオブジェクト(ボタン)にかかる各種情報を管理する。
【0041】
シナリオテーブル133は、チャットボットがユーザ端末3との会話に使用するシナリオ情報を格納する。
【0042】
次に、各種のテーブルのデータ構成について説明する。
【0043】
図5は、FAQテーブル131のデータ構成の一例を示す図である。
図5に示すように、本実施形態のFAQテーブル131は、「質問ID」、「質問内容」及び「応答情報」を対応付けている。「質問ID」は「質問内容」と「応答情報」との組み合わせ(本実施形態ではFAQテーブル131の行)を特定するための識別情報である。「質問内容」は対話型通信においてユーザにより入力された質問の内容を示す情報であり、質問情報に含まれる「要素」の一例である。「質問内容」は、例えば、複数の選択肢の中からユーザにより選択された選択肢、ユーザにより入力されたフリーワード、それらの類義語等であり得る。「応答情報」は質問内容に対応する応答の内容を示す情報であり、ここではインターネットで閲覧可能なホームページのURL等を示す情報が例示されている。
【0044】
図6は、外部連携テーブル132のデータ構成の一例を示す図である。
図6に示すように、本実施形態の外部連携テーブル132は、連携先テーブル135及び必要情報テーブル136を含む。
【0045】
本実施形態の連携先テーブル135は適切な応答情報を取得するために利用すべき外部サービス(外部システム6により提供されるサービス)へのアクセス方法を示す情報であり、「外部サービスURL」、「連携ID」、「種別」、「キーワード」及び「呼び出しID」を対応付けている。「外部サービスURL」は外部システム6により提供される外部サービスへアクセスするためのURLである。「外部サービスURL」は、例えば、顧客管理システム6A、追跡システム6B、…毎に割り当てられた、所定のホームページにアクセルするためのURL等であり得る。「連携ID」は「キーワード」と「種別」と「呼び出しID」との組み合わせ(本実施形態では連携先テーブル135の行)を特定するための識別情報である。「種別」は呼び出しIDの種別を示す情報である。ここでは「呼び出しID」の種別が関数(function)であることが例示されている。「キーワード」は対話型通信においてユーザが選択、入力等可能な語句、文節、文章等であり、質問情報に含まれる「要素」の一例である。「呼び出しID」は外部サービス内で目的の情報を取得するために必要な情報であり、例えば、「外部サービスURL」に対応するホームページにおける特定のリンク先を示す情報等であり得る。上記のような連携先テーブル135が顧客管理システム6A、追跡システム6B、…毎に生成されてもよい。
【0046】
必要情報テーブル136は、外部システム6と通信を確立する(外部サービスを利用する)ために必要なパラメータ(必要情報)を、顧客管理システム6A、追跡システム6B、…毎(本実施形態では外部サービスURL及び呼び出しID毎)に特定するためのテーブルである。本実施形態の必要情報テーブル136は「外部サービスURL」、「呼び出しID」、「パラメータ」、「種別」、「聞き返し情報」、「ユーザ入力情報」及び「終了メッセージ」を対応付けている。必要情報テーブル136における「外部サービスURL」及び「呼び出しID」は上記連携先テーブル135における「外部サービスURL」及び「呼び出しID」と対応している。「パラメータ」は外部システム6(外部サービス)から必要な情報を取得するために必要な(外部システム6が要求する)情報であり、本実施形態では「呼び出しID」毎に定められている。
図6に示す例では、URL:https://△△△△△.net/api/に対応する外部サービス内で呼び出しID:HttpConnector?code=02に対応する情報を取得するためには、ユーザの名前、組織名及びメールアドレスが必要であることが示されている。「種別」は「パラメータ」の種別(入力条件等)を示す情報である。「聞き返し情報」はユーザに「パラメータ」の入力を促すためにユーザ端末3に出力される文字や音声を示す情報である。「ユーザ入力」はユーザ端末3に入力されたパラメータを示す情報である。「終了メッセージ」は全てのパラメータが取得された後にユーザ端末3に出力されるメッセージを示す情報である。
【0047】
図7は、シナリオテーブル133のデータ構成の一例を示す図である。
図7に示すように、
図7に示すように、本実施形態のシナリオテーブル133は、チャットボットがユーザ端末3との会話に使用するシナリオを格納する。シナリオテーブル133は、シナリオID(シナリオを特定する識別情報)、シナリオの名称であるシナリオ名、シナリオに含まれるカードのIDであるカードID(カードを特定する識別情報)、カード種別、カード内に含まれるオブジェクト(ボタン)の識別情報であるオブジェクトID、および呼び出し元オブジェクトIDを対応付けて記憶する。
【0048】
カード種別は、シナリオに含まれるカードを、「一般」と「システム」との何れかの種別に分類する。種別が「システム」に分類されるカードは、ユーザ端末3のユーザ画面には表示されない。呼び出し元オブジェクトIDは、オブジェクトIDの呼び出し元となるものである。
【0049】
次に、シナリオテーブル133に関連するオブジェクト(ボタン)を管理するオブジェクト管理テーブル140-1~140-5について説明する。
【0050】
図8-1は、オブジェクト管理テーブル(テキスト)140-1のデータ構成の一例を示す図である。
図8-1に示すように、オブジェクト管理テーブル(テキスト)140-1は、オブジェクトIDに対応付けて、オブジェクト(ボタン)の詳細を表すテキストを記憶する。
【0051】
図8-2は、オブジェクト管理テーブル(デフォルト)140-2のデータ構成の一例を示す図である。
図8-2に示すように、オブジェクト管理テーブル(デフォルト)140-2は、オブジェクトIDに対応付けて、オブジェクト(ボタン)の種別であるオブジェクト種別を記憶する。例えば、オブジェクト種別としては、自動的に最初のカードに戻る「最初に戻る」が記憶されている。この場合、自動的に最初のカードに戻るため、呼び出し元オブジェクトIDに登録する必要はない。
【0052】
図8-3は、オブジェクト管理テーブル(システムデータ表示)140-3のデータ構成の一例を示す図である。
図8-3に示すように、オブジェクト管理テーブル(システムデータ表示)140-3は、オブジェクトIDに対応付けて、オブジェクト(ボタン)の表示内容(システムデータ表示)を記憶する。
【0053】
図8-4は、オブジェクト管理テーブル(API連携)140-4のデータ構成の一例を示す図である。
図8-4に示すように、オブジェクト管理テーブル(API連携)140-4は、オブジェクト(ボタン)に表示する表示テキストIDに対応付けて、連携先URL、メソッド種別、リクエストヘッダー、リクエストボディ、レスポンスタイプ、レスポンスボディ、レスポンスボディのキー名変更などの、「API連携」に係る各種項目を記憶する。「連携先URL」は、例えばオブジェクト(ボタン)が「ご注文履歴」である場合、顧客管理システム6Aに管理されている注文履歴を示すURLである。「メソッド種別」は、HTTPメソッドの種別が「GET」であるか「POST」であるかを示すものである。「リクエストヘッダー」は、HTTPリクエストで使用されるHTTPヘッダーである。「リクエストボディ」は、HTTPリクエストで使用されるHTTPボディである。「レスポンスタイプ」は、「JSON」であるか「XML」であるかを示すものである。「レスポンスボディのキー名変更」は、変数名と、当該変数名についての変換元キー名と、を記憶する。なお、変数名についての詳細は、後述する。
【0054】
続いて、管理画面入出力部301により管理者端末4に表示されるUIの一例であるシナリオ設定画面について説明する。
【0055】
図9~
図11は、管理画面入出力部301により表示されるシナリオ設定画面の一例を示す図である。本実施の形態では、管理画面入出力部301は、
図9に示すように、シナリオ型のチャットボットのシナリオ情報を設定可能なシナリオ設定画面G1を、管理者端末4に表示する。シナリオ設定画面G1は、
図9に示すように、シナリオ情報に含めるカードC1、および当該カードC1の追加を指示可能なオブジェクト追加ボタン(例えば、「アクションオブジェクトを追加」)B1を含む。
【0056】
ここで、一例として注文履歴APIの作成について説明する。
【0057】
まず、管理画面入出力部301は、シナリオスタート画面のカードC1の作成を受け付ける。例えば、シナリオスタート画面のカードC1は、
図9に示すように、カードテキスト(例えば、「調べたい項目をお選び下さい。」)T1、カードC1に含めるオブジェクト(例えば、「ご注文履歴」O1、「ポイント残高」O2、「会員情報」O3)、当該オブジェクトの種別(例えば、テキスト、API連携、システムデータ表示など)、当該オブジェクトの追加を指示可能なオブジェクト追加ボタン(例えば、「アクションオブジェクトを追加」)B1等を含むものとする。
【0058】
管理画面入出力部301は、オブジェクト追加ボタンB1がクリックされると、特に図示しないが、追加対象のオブジェクトの種別(テキスト、API連携、システムデータ表示など)を選択可能とするカードC2の作成を受け付ける。
【0059】
例えば、選択された種別が「テキスト」の場合、管理画面入出力部301は、オブジェクトに表示させるテキストと、当該オブジェクトをクリックされるときに、次に表示するカードと、の設定を受け付ける。
【0060】
例えば、選択された種別が「システムデータ表示」の場合、管理画面入出力部301は、オブジェクトに表示させるテキストだけを入力する(次に表示するカードの設定はしない)。
【0061】
次に、選択された種別が「API連携」の場合について説明する。「API連携」が選択された場合のカードC2は、
図9に示すように、カードに含めるオブジェクト(例えば、「API連携」O4)、当該オブジェクトの追加を指示可能なオブジェクト追加ボタン(例えば、「アクションオブジェクトを追加」)B2等を含む。なお、カードC2のカード種別は、「システム」である。カード種別が「システム」であるカードC2は、管理者端末4のシナリオ設定画面G1に表示されるが、ユーザ端末3のユーザ画面には表示されない。
【0062】
また、選択された種別が「API連携」の場合、管理画面入出力部301は、
図9に示す画面G2を表示して各項目の設定を受け付ける。選択された種別が「API連携」の場合の
図9に示す画面G2では、「連携先URL」、「メソッド種別」、「リクエストヘッダー」、「リクエストボディ」、「レスポンスタイプ」、「レスポンスボディ」の「API連携」に係る各項目の設定を受け付けて、カードC2に含まれる「API連携」オブジェクトO4の設定を完了する。
【0063】
「連携先URL」は、例えばオブジェクトが「ご注文履歴」である場合、顧客管理システム6Aに管理されている注文履歴を示すURLを入力する。
【0064】
「メソッド種別」は、HTTPメソッドの種別が「GET」であるか「POST」であるかを選択させる。
【0065】
「リクエストヘッダー」は、HTTPリクエストで使用されるHTTPヘッダーである。「リクエストヘッダー」は、例えば、30日以内の注文履歴を取得するように指定する場合、名前として期間を示す「Period」、値として「30」を入力する。
【0066】
「リクエストボディ」は、HTTPリクエストで使用されるHTTPボディである。
【0067】
「レスポンスタイプ」は、「JSON」と「XML」とのいずれかを選択させる。
【0068】
「レスポンスボディ」は、項目名の識別情報である変数名と、当該変数名についての変換元キー名(項目名)と、を入力させる。なお、識別情報としては、変数名に限るものではなく、各種の情報を用いることができる。このように項目名の識別情報である変数名を入力させるのは、以下の理由による。
【0069】
ここで、
図12は従来のチャットボットシステムにおける問題点を示す図である。
図12に示すように、従来のチャットボットシステムによれば、複数の外部システムから情報を取得する際に、外部システムから応答がされた情報のキー(項目名)が重複する可能性がある、という問題がある。
図12に示す例では、顧客管理システムからのレスポンスボディの項目名の「date」と、配達追跡システムからのレスポンスボディの項目名の「date」とが、重複している。さらに、従来のチャットボットシステムによれば、同一の外部システムから情報を複数回取得し、各回で取得した情報を区別して利用したい場合において、これらの情報のキー(項目名)が重複してしまう、という問題がある。
【0070】
そこで、本実施形態においては、管理画面入出力部301は、シナリオ情報におけるオブジェクトの設定において、重複する項目名を識別するための識別情報である変数名の設定を受け付けるようにしたものである。そして、管理画面入出力部301は、外部システムから取得した項目名に対応する識別情報が設定されている場合、当該項目名を識別情報である変数名に変更する。
図9に示す例では、項目名「date」の変数名として「order_date」を入力している。
【0071】
図9に示す画面G2で入力された情報は、
図8-4に示すオブジェクト管理テーブル(API連携)に格納される。
【0072】
なお、別途ユーザ認証が必要であるが、本実施形態では省略する。例えば、予めユーザ名パスワードでログインされている状態で、シナリオを開始し、注文履歴APIを呼び出す際に、ログインで入力されたユーザ名とパスワードでAPI認証を行うことができる。
【0073】
また、
図9に示すように、ユーザによって、シナリオ設定画面G1において、一方のカードC1内に含まれるオブジェクト(例えば、「ご注文履歴」等のテキスト)O1と、他方のカードC2とが線L1で結ばれると、管理画面入出力部301は、当該一方のカードC1内に含まれるオブジェクトO1内のテキストを、当該他方のカードC2の表示条件に設定する。
【0074】
同様に、管理画面入出力部301は、カードC2内に含まれるオブジェクト追加ボタンB2がクリックされると、次のカードC3の作成を受け付ける。例えば、次のカードC3は、
図10に示すように、カードC3に含めるオブジェクト(例えば、「最近のご注文・・・」O5、「配達状況を確認」O6、「最初に戻る」O7)、当該オブジェクトO5~O7の種別(例えば、テキスト、API連携、システムデータ表示など)、当該オブジェクトの追加を指示可能なオブジェクト追加ボタン(例えば、「アクションオブジェクトを追加」)B3等を含むものとする。
【0075】
ここで、
図10に示す「システムデータ表示」種別のオブジェクトO5については、カードC3の中でテキストを直接入力してもよいし、別画面(例えば、「API連携」の画面G2と同様の画面)で入力するようにしてもよい。ここで入力された「システムデータ表示」種別のオブジェクトの内容は、
図8-3に示すオブジェクト管理テーブル(システムデータ表示)に格納される。
【0076】
管理画面入出力部301は、オブジェクト追加ボタンB3がクリックされると、特に図示しないが、追加対象のオブジェクトの種別(テキスト、API連携、システムデータ表示など)を選択可能とするカードC3の作成を受け付ける。
【0077】
管理画面入出力部301は、例えば「API連携」が選択された場合、
図10に示すカードC4を表示する。「API連携」が選択された場合のカードC4は、
図10に示すように、カードに含めるオブジェクト(例えば、「API連携」O8)、当該オブジェクトの追加を指示可能なオブジェクト追加ボタン(例えば、「アクションオブジェクトを追加」)B4等を含む。なお、カードC4のカード種別は、「システム」である。カード種別が「システム」であるカードC4は、管理者端末4のシナリオ設定画面G1に表示されるが、ユーザ端末3のユーザ画面には表示されない。
【0078】
また、選択された種別が「API連携」の場合、管理画面入出力部301は、
図10に示す画面G2を表示して各項目の設定を受け付ける。選択された種別が「API連携」の場合の
図10に示す画面G2では、「連携先URL」、「メソッド種別」、「リクエストヘッダー」、「リクエストボディ」、「レスポンスタイプ」、「レスポンスボディ」の「API連携」に係る各項目の設定を受け付けて、カードC4に含まれる「API連携」オブジェクトO8の設定を完了する。
図10に示す例では、項目名「date」の変数名として「delivery_date」を入力している。
【0079】
上述したように、「API連携」の場合において、管理画面入出力部301は、
図10に示す画面G2の「レスポンスボディ」に、変数名と、変換元キー名と、を入力させる。ここで、管理画面入出力部301は、エラーチェックを実行する。例えば、管理画面入出力部301は、
図9で入力された変数名としてすでに登録されている「order_date」を入力すると、その旨を管理者に知らせるエラーメッセージを表示する。
【0080】
以上の処理を繰り返すことにより、
図11に示すシナリオ生成結果、および、
図7に示すシナリオテーブル133が得られる。
図11に示すように、管理画面入出力部301は、同一の項目名にかかる異なる変数名(「order_date」および「delivery_date」)を、カードC5のように同一の画面に表示することも可能である。このように外部システムから応答がされた情報のキー(項目名:date)が重複する場合であっても、区別して表示することができる。
【0081】
加えて、管理画面入出力部301は、テキスト入力に対してエラーチェックを実行する。例えば、カードC4に含まれる「API連携」オブジェクト08の設定が完了し、「delivery_date」の変数名が登録された場合について説明する。このような場合において、管理画面入出力部301は、カードC4より前のカードC3に含まれる「システムデータ表示」オブジェクトO5に「delivery_date」に設定して、図示しない「入力完了」ボタンのクリックを受け付けた場合には、設定を完了させず、エラーメッセージを表示(報知)する。具体的には、管理画面入出力部301は、{{delivery_date}}が設定されたオブジェクトO8を含むカードC4について、当該{{delivery_date}}が使用されたオブジェクト05を含むカードC3との前後関係で判断する。
図11に示す例では、管理画面入出力部301は、カードC4はカードC3の後であるため、当該{{delivery_date}}の設定が正しくないと判断する。
【0082】
続いて、チャット画面の更新処理の流れについて説明する。
【0083】
ここで、
図13はチャット画面の更新処理の流れを示すシーケンス図である。
図13に示すように、ユーザ端末3においてユーザ(会話ユーザ)により特定の「テキスト」オブジェクトの選択を受け付けると(ステップS1)、ユーザ端末3は、チャットボットサービスサーバ11に対して、選択通知を送信する(ステップS2)。
【0084】
チャットボットサービスサーバ11は、ユーザ端末3から送信された選択通知を受信すると、特定の「テキスト」オブジェクトに対応するカードを特定する(ステップS3)。また、チャットボットサービスサーバ11は、特定したカードに含まれるオブジェクトを特定する(ステップS4)。
【0085】
続いて、「API連携」オブジェクトが含まれる場合、チャットボットサービスサーバ11は、オブジェクトの設定情報をオブジェクト管理テーブル(API連携)140-4から取得する(ステップS5)。
【0086】
次に、チャットボットサービスサーバ11は、外部システム6に対するリクエストを生成する(ステップS6)。
【0087】
次に、チャットボットサービスサーバ11は、外部連携サーバ12を介して外部システム6に対してAPIを呼び出す処理(リクエストヘッダー、リクエストボディの送信)を行う(ステップS7)。その後、チャットボットサービスサーバ11は、外部連携サーバ12を介して外部システム6から応答(レスポンスボディ)を受け取る(ステップS8)。
【0088】
次に、チャットボットサービスサーバ11は、外部システム6から応答されたレスポンスを解析する(ステップS9)。その後、チャットボットサービスサーバ11は、取得情報を保存する(ステップS10)。
【0089】
ここで、ステップS10における取得情報を保存する処理について詳述する。
【0090】
図14は、取得情報を保存する処理の流れを示すフローチャートである。
図14に示すように、チャットボットサービスサーバ11は、レスポンスボディに含まれる各キー(項目名)とバリュー(項目値)のセットを取得する(ステップS21)。以下、各キー名ごとに処理(ステップS22~S25)を繰り返す。
【0091】
まず、チャットボットサービスサーバ11は、各キー(項目名)のキー名を「変換キー名」として、当該「変換キー名」に対応する「変数名」を取得する(ステップS22)。
【0092】
次に、チャットボットサービスサーバ11は、「変数名」を取得できたかを判断する(ステップS23)。
【0093】
チャットボットサービスサーバ11は、「変数名」を取得できたと判断すると(ステップS23のYes)、取得した「変数名」とバリュー(項目値)とを対応付けて取得情報管理テーブルに登録する(ステップS24)。
【0094】
ここで、
図15は取得情報管理テーブル150の一例を示す図である。
図15に示すように、取得情報管理テーブル150は、取得した「変数名」とバリュー(項目値)と取得した「変数名」の種別と対応付けて記憶する。「変数名」の種別は、数字、文字列などである。
【0095】
チャットボットサービスサーバ11は、「変数名」を取得できないと判断すると(ステップS23のNo)、キー(項目名)とバリュー(項目値)とを対応付けて登録する(ステップS25)。
【0096】
図13に戻り、チャットボットサービスサーバ11は、当該オブジェクトに対応するカードを特定し(ステップS11)、ステップS4に戻る(ステップS12)。
【0097】
一方、「システムデータ表示」オブジェクトが含まれる場合、チャットボットサービスサーバ11は、オブジェクト管理テーブル(システムデータ表示)140-3に記憶されている取得情報から各オブジェクトIDに対応する値を取得する(ステップS13)。
【0098】
次に、チャットボットサービスサーバ11は、変数名以外のテキストと合体させたテキストを生成する(ステップS14)。
【0099】
最後に、チャットボットサービスサーバ11は、次に表示するカードの画面を生成し(ステップS15)、ユーザ端末3に対して、次に表示するカードの画面データを応答する(ステップS16)。
【0100】
ユーザ端末3は、次に表示するカードの画面データを受け取ると、ユーザ画面(チャット画面)を更新する(ステップS17)。
【0101】
ここで、
図16はチャットボットサービスにより表示されるチャット画面の一例を示す図である。本実施の形態では、管理画面入出力部301は、
図16に示すように、チャット画面G3をユーザ端末3に表示する。
【0102】
管理画面入出力部301は、質問情報(例えば、「調べたい項目をお選びください。」)を含むカードC、ユーザにより入力されるメッセージ情報M(例えば、「ご注文履歴」)をチャット画面G3に表示させる。また、ユーザは、チャット画面G3に含まれるカードC内に表示されるボタンをクリックすることによって、メッセージ情報Mを入力することも可能である。
【0103】
このように本実施形態によれば、シナリオ情報におけるオブジェクトの設定において、項目名を識別するための識別情報の設定を受け付ける表示制御部を備え、表示制御部は、外部システムから取得した項目名に対応する識別情報が設定されている場合、当該項目名を識別情報に変更するようにした。これにより、チャットボットのシナリオを設定する際に、外部システムから取得する情報を識別するための識別情報を適切に設定し、外部システムから取得する情報を適切に取り扱うことができる、という効果を奏する。
【0104】
なお、本実施形態においては、シナリオ情報におけるオブジェクトの設定において、項目名を識別するための識別情報の設定を受け付ける表示制御部を備え、表示制御部は、外部システムから取得した項目名に対応する識別情報が設定されている場合、当該項目名を識別情報に変更するようにしたが、これに限るものではなく、シナリオ情報におけるオブジェクトの設定以外に適用可能である。
【0105】
また、本実施形態においては、外部システムから取得した項目名に対応する識別情報として「変数名」を適用したが、これに限るものではなく、例えば複数の項目名を識別できる画像などを付加するものであってもよい。
【0106】
このように、本実施の形態にかかる自動応答システム1によれば、登録等された応答情報の特定部分が、既存の応答情報の特定部分と異なっていた場合、登録等した応答情報を強調表示等により明示して、管理者に対して応答情報の修正をより効率的に、当該登録する応答情報の特定部分のぶれを減少させることができる。
【0107】
なお、本実施の形態のチャットボットサービスサーバ11で実行されるプログラムは、ROM22等に予め組み込まれて提供される。本実施の形態のチャットボットサービスサーバ11で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)、CD-R、DVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【0108】
さらに、本実施の形態のチャットボットサービスサーバ11で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施の形態のチャットボットサービスサーバ11で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【0109】
本実施の形態のチャットボットサービスサーバ11で実行されるプログラムは、上述した各部(通信部101、連携判断部102、検索部103、連携部104、登録部105)を含むモジュール構成となっており、実際のハードウェアとしてはCPU21(プロセッサの一例)が上記ROM22からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、通信部101、連携判断部102、検索部103、連携部104、登録部105が主記憶装置上に生成されるようになっている。
【0110】
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)や従来の回路モジュール等のデバイスを含むものとする。
【0111】
実施例に記載された装置群は、本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものにすぎない。ある実施形態では、チャットボットサービスサーバ11は、サーバクラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。同様に、外部連携サーバ12は、互いに通信するように構成された複数のコンピューティングデバイスを含むことができる。また、チャットボットサービスサーバ11と外部連携サーバ12の各要素は、1つのサーバ装置にまとめられていても良いし、複数の装置に分けられていても良い。
【0112】
なお、チャットボットサービスサーバ11は、通信機能を備えた装置であれば、PCに限られない。チャットボットサービスサーバ11は、例えば、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車(Connected Car)、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPCまたはデスクトップPC等であってもよい。
【0113】
明細書中のテーブル(表)は、機械学習の学習効果によって生成されたものでもよい。ここで、機械学習とは、コンピュータに人のような学習能力を獲得させるための技術であり、コンピュータが、データ識別等の判断に必要なアルゴリズムを、事前に取り込まれる学習データから自律的に生成し、新たなデータについてこれを適用して予測を行う技術のことをいう。機械学習のための学習方法は、教師あり学習、教師なし学習、半教師学習、強化学習、深層学習のいずれかの方法でもよく、さらに、これらの学習方法を組み合わせた学習方法でもよく、機械学習のための学習方法は問わない。
【0114】
上述の実施の形態は一例として提示したものであり、本発明の範囲を限定することは意図していない。この新規な実施の形態はその他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことも可能である。また、実施の形態及び実施の形態の変形は発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0115】
3 端末装置
11 情報処理装置
100 情報処理システム
301 表示制御部
【先行技術文献】
【特許文献】
【0116】