(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024177557
(43)【公開日】2024-12-19
(54)【発明の名称】プログラム、情報処理装置及び処理方法
(51)【国際特許分類】
G06F 8/33 20180101AFI20241212BHJP
【FI】
G06F8/33
【審査請求】有
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2024177656
(22)【出願日】2024-10-10
(62)【分割の表示】P 2023017283の分割
【原出願日】2019-01-28
(71)【出願人】
【識別番号】390002761
【氏名又は名称】キヤノンマーケティングジャパン株式会社
(71)【出願人】
【識別番号】592135203
【氏名又は名称】キヤノンITソリューションズ株式会社
(74)【代理人】
【識別番号】100189751
【弁理士】
【氏名又は名称】木村 友輔
(74)【代理人】
【識別番号】100227857
【弁理士】
【氏名又は名称】中山 圭
(72)【発明者】
【氏名】石田 知子
(72)【発明者】
【氏名】高塚 剛
(57)【要約】
【課題】 アプリケーション構築ツールにおいて、アプリケーションの構築を効率的に行う仕組みを提供する。
【解決手段】 アプリケーションを構築する情報処理装置で実行可能なプログラムであって、情報処理装置を、アプリケーションを構築するための定義情報を取得する。アプリケーションのユーザから当該アプリケーションに係る質問を受け付け、当該質問に対する回答を出力するチャットボット機能を利用するかの設定を取得する。チャットボット機能を利用する設定が取得された場合は、取得された定義情報に基づき、チャットボット機能を利用可能なアプリケーションを構築する手段として機能させるためのプログラム。
【選択図】
図11
【特許請求の範囲】
【請求項1】
<実施> アプリケーション設定に基づき、チャットボット機能を利用可能なアプリを構築(S601、S511)
アプリケーションを構築する情報処理装置で実行可能なプログラムであって、
前記情報処理装置を、
前記アプリケーションを構築するための定義情報を取得する定義情報取得手段と、
前記アプリケーションのユーザから当該アプリケーションに係る質問を受け付け、当該質問に対する回答を出力するチャットボット機能を利用するかの設定を取得する設定取得手段と、
前記設定取得手段により前記チャットボット機能を利用する設定が取得された場合は、前記定義情報取得手段により取得された定義情報に基づき、前記チャットボット機能を利用可能なアプリケーションを構築する構築手段
として機能させるためのプログラム。
【請求項2】
<実施> 画面毎のON/OFF(
図8の802、S602、S511)
前記設定は、アプリケーション画面の識別情報毎に前記チャットボット機能を利用するかの設定を含み、
前記構築手段は、
前記設定取得手段により前記チャットボット機能を利用する設定が取得された画面において前記チャットボット機能を利用可能なアプリケーションを構築すること
を特徴とする請求項1に記載のプログラム。
【請求項3】
<実施> 画面コードで回答を検索(S704、S706)
前記構築手段は、
前記質問の内容及び当該質問に係るアプリケーション画面の識別情報に基づき取得した回答を出力するチャットボット機能を利用可能なアプリケーションを構築すること
を特徴とする請求項1又は2に記載のプログラム。
【請求項4】
<実施> アプリコードで回答を検索。アプリ:QAデータファイル=N:1(S704、S705)
前記構築手段は、
前記質問の内容及び当該質問に係るアプリケーションの識別情報に基づき取得した回答を出力するチャットボット機能を利用可能なアプリケーションを構築すること
を特徴とする請求項1乃至3のいずれか1項に記載のプログラム。
【請求項5】
アプリケーションを構築する情報処理装置であって、
前記アプリケーションを構築するための定義情報を取得する定義情報取得手段と、
前記アプリケーションのユーザから当該アプリケーションに係る質問を受け付け、当該質問に対する回答を出力するチャットボット機能を利用するかの設定を取得する設定取得手段と、
前記設定取得手段により前記チャットボット機能を利用する設定が取得された場合は、前記定義情報取得手段により取得された定義情報に基づき、前記チャットボット機能を利用可能なアプリケーションを構築する構築手段と
を備えることを特徴とする情報処理装置。
【請求項6】
アプリケーションを構築する情報処理装置における処理方法であって、
前記情報処理装置が、
前記アプリケーションを構築するための定義情報を取得する定義情報取得ステップと、
前記アプリケーションのユーザから当該アプリケーションに係る質問を受け付け、当該質問に対する回答を出力するチャットボット機能を利用するかの設定を取得する設定取得ステップと、
前記設定取得ステップにより前記チャットボット機能を利用する設定が取得された場合は、前記定義情報取得ステップにより取得された定義情報に基づき、前記チャットボット機能を利用可能なアプリケーションを構築する構築ステップと
を実行することを特徴とする処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションを構築するためのプログラム、情報処理装置及び処理方法に関する。
【背景技術】
【0002】
従来、設定された定義情報に基づき、アプリケーションを構築(生成)するツールやサービスが存在する。
【0003】
また、アプリケーションには、アプリケーションユーザのためにヘルプやFAQの機能が用意されていることが多いが、近年では、ヘルプやFAQの機能の代わりに、会話形式での質問が可能なチャットボット機能を利用可能なアプリケーションも増えてきている。
【0004】
特許文献1には、金融商品に関する質問に対して回答をするチャットボットの仕組みが開示されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1は、他のシステムやアプリケーションと連携することのない、独立したチャットボットの仕組みであるため、アプリケーション構築ツールを用いて構築するアプリケーションに係る質問を受け付けるチャットボット機能を生成する技術ではない。
【0007】
よって、アプリケーション構築ツールを用いてアプリケーションを短期間に構築できたとしても、当該アプリケーションユーザのためのチャットボット機能を別途作らなくてはならないという課題がある。
【0008】
そこで、本発明の目的は、チャットボット機能を利用可能なアプリケーションを容易に構築する仕組みを提供することである。
【課題を解決するための手段】
【0009】
アプリケーションを構築する情報処理装置で実行可能なプログラムであって、前記情報処理装置を、前記アプリケーションを構築するための定義情報を取得する定義情報取得手段と、前記アプリケーションのユーザから当該アプリケーションに係る質問を受け付け、当該質問に対する回答を出力するチャットボット機能を利用するかの設定を取得する設定取得手段と、前記設定取得手段により前記チャットボット機能を利用する設定が取得された場合は、前記定義情報取得手段により取得された定義情報に基づき、前記チャットボット機能を利用可能なアプリケーションを構築する構築手段として機能させるためのプログラム。
【発明の効果】
【0010】
本発明によれば、チャットボット機能を利用可能なアプリケーションを容易に構築する仕組みを提供することができる。
【図面の簡単な説明】
【0011】
【
図1】本発明に係るシステムの構成図の一例である。
【
図2】情報処理装置、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントとして適用可能な各ハードウェア構成の一例を示すブロック図である。
【
図3】ソフトウェア構成を示すブロック図の一例である。
【
図5】アプリケーション生成のフローチャートの一例を示す図である。
【
図6】アプリケーション実行のフローチャートの一例を示す図である。
【
図7】チャットボット処理のフローチャートの一例を示す図である。
【
図8】アプリケーション設定情報407の一例を示す図である。
【
図10】チャットボット画面及び質問の一例を示す図である。
【
図11】チャットボット画面及び回答の一例を示す図である。
【
図12】チャットボットによる回答検索処理の一例を示す図である。
【
図13】チャットボットから送信される回答の一例を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【0013】
図1は、本発明に係る情報処理装置(ソフトウェア開発者がソフトウェア開発のために操作するソフトウェア開発装置)、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントの構成の一例を示すシステム(情報処理システム)構成図である。なお、本実施形態においては、情報処理装置にて開発されたソフトウェアをアプリケーションと呼ぶが、アプリケーションに限定するものではなく、アプリケーション以外のソフトウェア(例:OS)であってもよい。
【0014】
情報処理装置101は、ソフトウェア開発者の操作に従って画面レイアウト及びデータベース検索指示などを定義する。情報処理装置101は、プログラム生成、アプリケーション生成を行う。
【0015】
なお、本実施形態においては、情報処理装置101で生成するアプリケーションはWebアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションや組込みソフトウェアなど、Web技術による通信を利用するアプリケーション以外のアプリケーションであってもよい。
【0016】
また、本実施形態においては、情報処理装置101はアプリケーションのソースコード(プログラムコード)を生成するとしたが、この方法に限定するものではなく、ソースコードを生成することなく、アプリケーションサーバ102やクラウド環境等でアプリケーションが動作する様にデータやファイル等を生成することにより、アプリケーション(の動作環境)を構築する等であってもよい。
【0017】
アプリケーションサーバ102は、情報処理装置101で開発されたアプリケーションを実行する。また、データベースサーバ103と接続して動作することが可能である。
【0018】
データベースサーバ103は、開発されたアプリケーションが使用するデータベースであり、また本発明では開発時にも動作確認などのために利用してもよい。例えば、ソフトウェア開発者が利用するためにデータベースサーバ103は、情報処理装置101や、アプリケーションサーバ102と同一の装置で構成されていてもよいし、LANなどのネットワーク105内に配置されてもよい。
【0019】
アプリケーションクライアント104(情報処理装置)は、アプリケーションサーバ102と協調して情報処理装置101で開発したアプリケーションプログラムを動作させる、エンドユーザの入力端末である。この、アプリケーションクライアント104は、携帯端末などの情報処理装置であってもよいこととする。
【0020】
なお、情報処理装置101、アプリケーションサーバ102、データベースサーバ103、および、アプリケーションクライアント104の何れかを、クラウドなどのインターネット上に配置してもよい。
【0021】
【0022】
図2は、本発明に係わる情報処理装置101、アプリケーションサーバ102、データベースサーバ103、アプリケーションクライアント104として適用可能な各ハードウェア構成の一例を示すブロック図である。
【0023】
図2において、CPU201は、システムバス204に接続される各デバイスを統括的に制御する。
【0024】
また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるオペレーティングシステム(OS)や、各サーバ、クライアント、装置など情報処理装置の後述する各種機能を実現するためのプログラムが記憶されている。
【0025】
RAM202は、CPU201の主メモリ、ワークエリア、一時待避領域等として機能する。
【0026】
入力コントローラ205は、入力部209からの入力を制御する。この入力部209としては、情報処理装置では、キーボード、マウス等のポインティングデバイス、タッチパネルが挙げられる。
【0027】
なお、入力部209がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下(指等でタッチ)することにより、各種の指示を行うことができることとする。
【0028】
また、タッチパネルは、マルチタッチスクリーン等の、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
【0029】
出力コントローラ206は、出力部210の表示を制御する。この出力部210としては、例えば、CRTや液晶ディスプレイ等が挙げられる。尚、本体と一体になったノート型パソコンのディスプレイも含まれるものとする。また、プロジェクタであってもよいこととする。
【0030】
外部メモリコントローラ207は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザーファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ211へのアクセスを制御する。外部メモリ211には、各サーバ、クライアント、装置等の各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ211としては、ハードディスク(HD)やフレキシブルディスク(FD)、PCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)、スマートメディア等が挙げられる。
【0031】
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォント展開(ラスタライズ)処理を実行することにより、出力部210上での表示を可能としている。また、CPU201は、出力部210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0032】
通信I/Fコントローラ208は、ネットワークを介して外部機器との通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
【0033】
本発明を実現するためのプログラム212は外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
【0034】
図3は、本発明の実施の形態のソフトウェア構成を示すブロック図の一例である。
【0035】
情報処理装置101は、以下の機能部を備える。
【0036】
定義情報取得部301は、アプリケーションを構築するための定義情報を取得する機能部である。
【0037】
設定取得部302は、アプリケーションのユーザから当該アプリケーションに係る質問を受け付け、当該質問に対する回答を出力するチャットボット機能を利用するかの設定を取得する機能部である。
【0038】
構築部303は、設定取得部302によりチャットボット機能を利用する設定が取得された場合は、定義情報取得部301により取得された定義情報に基づき、チャットボット機能を利用可能なアプリケーションを構築する機能部である。
【0039】
構築部303は、設定取得部302によりチャットボット機能を利用する設定が取得された画面においてチャットボット機能を利用可能なアプリケーションを構築する機能部である。
【0040】
構築部303は、質問の内容及び当該質問に係るアプリケーション画面の識別情報に基づき取得した回答を出力するチャットボット機能を利用可能なアプリケーションを構築する機能部である。
【0041】
構築部303は、質問の内容及び当該質問に係るアプリケーションの識別情報に基づき取得した回答を出力するチャットボット機能を利用可能なアプリケーションを構築する機能部である。
【0042】
【0043】
図4は、情報処理装置101、アプリケーションサーバ102及びアプリケーションクライアント104の構成図である。
【0044】
情報処理装置101は、リポジトリ定義部401及びアプリケーション生成部410を備える。
【0045】
情報処理装置101は、アプリケーションを開発する開発者により設定されたリポジトリ定義部401の各定義を用いて、アプリケーション生成部410によりアプリケーションを生成する。
【0046】
リポジトリ定義部401には、アプリケーション定義402、入出力定義403、データモデル定義404、ビジネスプロセス定義405、データベース定義406、アプリケーション設定情報407及びQAデータ408が記憶されている。これら402~408の定義は、アプリケーション構築ツールを介して、主にアプリケーション開発者によって設定又は配置される。勿論、QAデータ408等は、アプリケーション開発者でなく、アプリケーション運用者等が作成するとしてもよい。
【0047】
入出力定義403は、アプリケーション画面に配置される各種項目のレイアウトの定義情報を保持する。入出力定義403は、入力項目定義情報及び出力項目定義情報を含む。
【0048】
入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報である。出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報である。以降、「入力項目定義情報」及び「出力項目定義情報」をまとめて「入出力項目定義情報」と呼ぶ。
【0049】
なお、本実施形態においては、「入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報」「出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報」としたが、これらに限定するものではなく、例えば、画面を有さないバッチやWebサービス等のように、「入力項目定義情報は、生成されたアプリケーションに入力される入力項目を定義した情報」「出力項目定義情報は、生成されたアプリケーションが出力する出力項目を定義した情報」であってもよい。
【0050】
データモデル定義404は、データベースのテーブルの項目の定義情報を保持する。入出力定義403の各項目には、データモデル定義404の項目を対応づけることができる。
【0051】
ビジネスプロセス定義405は、アプリケーションにおけるデータを処理するためのロジックの定義情報を保持する。
【0052】
データベース定義406は、アプリケーションが接続するデータベースに係る情報(データベースサーバ103のIPアドレス、接続ユーザ、接続パスワード等)を定義する。
【0053】
アプリケーション設定情報407は、アプリケーション画面にチャットエリアを表示させるか否かの設定を定義する。
【0054】
QAデータ408は、チャットボットサーバ106が質問に対し回答をするためのQAの組み合わせを定義する。
【0055】
アプリケーション生成部410は、アプリケーション生成用のリポジトリ定義解析部411を用いてリポジトリ定義部401に記憶されている各定義や各定義の関連を解析し、ソースコード生成部413を用いて、HTML/JSP/JavaScript(登録商標)422及び424を含むアプリケーションソースコードを生成する。また、生成したアプリケーションソースコードのうち、コンパイルが必要なものは、ソースコードコンパイル部414を用いて、コンパイル済ソースコード421を生成する。すなわち、アプリケーション生成部410は、設定された定義を用いて、アプリケーションとして用いられるプログラムを生成する手段の一例である。
【0056】
次に、チャットボットサーバ106について説明する。
【0057】
チャットボットの処理に用いるコンパイル済ソースコード423、並びに、HTML/JSP/JavaScript(登録商標)424を含むアプリケーションソースコードも同様に、アプリケーション生成部410、ソースコード生成部413、ソースコードコンパイル部414を用いて生成する。
【0058】
また、チャットボットサーバ106には、リポジトリ定義部401に記憶されているQAデータ408に基づき、QAデータ425を生成する。チャットボットサーバ106は、QAデータ425を参照し、アプリケーションユーザからの質問に対する回答を取得して返信する。
【0059】
【0060】
図5は、アプリケーション生成のフローチャートの一例を示す図である。
【0061】
情報処理装置101は、ディレクトリ構造を用いて、リポジトリ定義部401の各定義をファイルとして管理する。なお、本実施形態においては、ディレクトリ構造を用いて、リポジトリ定義部401の各定義をファイルとして管理するとしたが、これに限定するものではなく、例えば、データベースを用いてリポジトリ定義部401の各定義を管理してもよいし、クラウドなどネットワーク上の記憶装置を用いて管理する等としてもよい。
【0062】
アプリケーション生成のフローチャートについて説明する。
【0063】
ステップS501において、情報処理装置101は、アプリケーション定義402の設定を受け付ける。すなわち、ステップS501は、アプリケーションを構築するための定義情報を取得する処理の一例を示すステップである。
【0064】
具体的には、アプリケーション構築ツールの画面を介して、アプリケーション開発者から入出力定義403、データモデル定義404、ビジネスプロセス定義405、データベース定義406、アプリケーション設定情報407及びQAデータ408の設定を受け付ける。
【0065】
ステップS501にて、受け付けたアプリケーション定義402、入出力定義403、データモデル定義404、ビジネスプロセス定義405、データベース定義406、アプリケーション設定情報407及びQAデータ408の設定は、リポジトリ定義部401にXMLファイル形式で記憶する。なお、本実施形態においては、XMLファイル形式としたが、この形式に限定するものではなく、他の形式であってもよい。
【0066】
ステップS502において、情報処理装置101は、アプリケーション生成の指示を受け付ける。
【0067】
ステップS503において、情報処理装置101は、リポジトリ定義部401からアプリケーション定義402を取得する。リポジトリ定義解析部411は、読み込んだ定義を解析したうえでROM203に記憶しておき、解析された定義は各生成部から適宜参照される。
【0068】
ステップS504において、情報処理装置101は、リポジトリ定義部401からデータモデル定義404を取得する。
【0069】
ステップS505において、情報処理装置101は、リポジトリ定義部401から入出力定義403を取得する。
【0070】
ステップS506において、情報処理装置101は、リポジトリ定義部401からビジネスプロセス定義405を取得する。
【0071】
ステップS507において、情報処理装置101は、リポジトリ定義部401からデータベース定義406を取得する。
【0072】
ステップS508において、情報処理装置101は、リポジトリ定義部401からアプリケーション設定情報407を取得する。
【0073】
ステップS509において、情報処理装置101は、リポジトリ定義部401からQAデータ408を取得する。すなわち、ステップS501~S509は、アプリケーションを構築するための定義情報を取得する処理の一例を示すステップである。
【0074】
ステップS510において、情報処理装置101は、アプリケーション生成部410を用いて、アプリケーションに用いるアプリケーションソースコード440を生成する。
【0075】
ステップS511において、情報処理装置101は、ステップS510にて生成したアプリケーションソースコード440をアプリケーションサーバ102に配置(デプロイ)する。
【0076】
すなわち、ステップS511は、取得された定義情報に基づき、アプリケーションを構築する処理の一例を示すステップである。
【0077】
すなわち、ステップS511は、チャットボット機能を利用する設定が取得された場合は、取得された定義情報に基づき、チャットボット機能を利用可能なアプリケーションを構築する処理の一例を示すステップである。
【0078】
すなわち、ステップS511は、チャットボット機能を利用する設定が取得された画面においてチャットボット機能を利用可能なアプリケーションを構築する処理の一例を示すステップである。
【0079】
また、ステップS509にて取得したQAデータ408、チャットボット機能を実行するためのコンパイル済ソースコード423及び画面情報424を、チャットボットサーバ106に配置する。なお、本実施形態においては、QAデータ408、コンパイル済ソースコード423及び画面情報424をチャットボットサーバ106に配置するとしたが、この方法に限定するものではなく、QAデータ408のみをチャットボットサーバ106に配置したり、QAデータ408等をアプリケーションサーバ102やアプリケーションクライアント104等その他の情報処理装置に配置したりするとしてもよい。
【0080】
以上により、生成指示を受け付けたアプリケーションを生成(構築)することができる。
【0081】
【0082】
図6は、アプリケーション実行のフローチャートの一例を示す図である。
【0083】
ステップS601において、アプリケーションサーバ102は、ステップS511にてデプロイされたアプリケーションを起動する際、当該アプリケーションに含まれているアプリケーション設定情報407を取得し、当該アプリケーション及び各画面のチャットエリア表示設定を取得する。すなわち、ステップS601は、アプリケーションのユーザから当該アプリケーションに係る質問を受け付け、当該質問に対する回答を出力するチャットボット機能を利用するかの設定を取得する処理の一例を示すステップである。
【0084】
図8の800は、アプリケーション設定情報407の一例を示す図である。ここで、
図8について説明しておく。
【0085】
「help.chatUI.show」(
図8の801)は、生成したアプリケーションの画面にチャットエリアを表示するか否かの設定(0:非表示、1:閉じた状態で表示、2:開いた状態で表示)である。
【0086】
「sampleIO.help.chatUI.show」(
図8の802)は、画面コード=“sampleIO”の画面において、チャットエリアを表示するか否かの設定(0:非表示、1:閉じた状態で表示、2:開いた状態で表示)である。すなわち、
図8の802は、アプリケーション画面の識別情報毎にチャットボット機能を利用するかの設定する手段の一例である。
【0087】
「help.chatUI.show」の設定値よりも「画面コード.help.chatUI.show」の設定値を優先して各画面の表示/非表示を判定するため、「help.chatUI.show」の設定と異なる設定を行いたい画面は、「画面コード.help.chatUI.show」で個別に設定する。
【0088】
ステップS602において、アプリケーションサーバ102は、これから表示するアプリケーション画面のチャットエリア表示設定を判定する。表示しない場合はチャットエリアを表示しないアプリケーション画面情報をアプリケーションクライアント104に送信してステップS603に進み、表示する場合はチャットエリアを表示するアプリケーション画面情報をアプリケーションクライアント104に送信してステップS604に進む。
【0089】
すなわち、ステップS602は、チャットボット機能を利用する設定が取得された場合は、取得された定義情報に基づき、チャットボット機能を利用可能にする処理の一例を示すステップである。
【0090】
すなわち、ステップS602は、チャットボット機能を利用する設定が取得された画面においてチャットボット機能を利用可能にする処理の一例を示すステップである。
【0091】
つまり、これから表示するアプリケーション画面の画面IDが、アプリケーション設定情報407の「sampleIO.help.chatUI.show」(
図8の802)に設定されている場合はその設定値でチャットエリア表示設定を判定し、設定されていない場合は「help.chatUI.show」(
図8の801)の設定値でチャットエリア表示設定を判定する。
【0092】
なお、本実施形態においては、「チャットエリア表示設定=表示/非表示」としたが、この設定方法に限定するものではなく、例えば「チャットボット機能利用設定=可能(有効)/不可能(無効)」等の設定であってもよい。この場合、「チャットボット機能利用設定=可能(有効)」であれば、質問の入力を受け付けることを可能に制御し、「チャットボット機能利用設定=不可能(無効)」であれば、質問の入力を受け付けることを不可能に制御する。
【0093】
なお、本実施形態においては、アプリケーション設定情報407に設定されているアプリケーション単位又は画面単位でチャットボット機能の有効/無効を設定できるとしたが、この設定方法に限定するものではなく、アプリケーションユーザの属性(会社・組織若しくは権限等)、アプリケーションクライアントの端末・OS・ブラウザの種類・バージョン、参照するアプリケーションデータの値若しくはステータス、アプリケーションの利用時刻や利用場所又はアプリケーションサーバの識別情報等によって、「チャットエリア表示設定=表示/非表示」を判定するとしてもよい。
【0094】
ステップS603において、アプリケーションクライアント104は、アプリケーションサーバ102から送信されたアプリケーション画面情報を受信し、チャットエリアを表示しないアプリケーション画面を表示する。
【0095】
ステップS604において、アプリケーションクライアント104は、アプリケーションサーバ102から送信されたアプリケーション画面情報を受信し、チャットエリア1010(
図10)を表示したアプリケーション画面を表示する。チャットエリアには、チャットボットに対して送信する質問を入力するためのテキストボックス1011(
図10)が表示されている。
【0096】
ステップS605において、アプリケーションクライアント104は、アプリケーションユーザからの質問を受け付ける。具体的には、テキストボックス1011に対して質問の入力を受け付ける。ここでは、「ラインジャンプとはどんな機能ですか?」という質問の入力を受け付けたとする(
図10の1021)。なお、本実施形態においては、質問を文字による入力としたが、この方法に限定するものではなく、アプリケーション画面の表示内容の選択、質問選択肢からの選択、音声による質問入力等、他の入力方法であってもよい。
【0097】
ステップS606において、アプリケーションクライアント104は、ステップS605にて受け付けた質問内容、アプリケーションコード及び画面コードを質問情報として、チャットボットサーバ106へ送信する。
図10の1003は、アプリケーションコード=“sampleAPP”、画面コード=“sampleIO”の画面から質問内容=“ラインジャンプとはどんな機能ですか?”を入力したときにチャットボットサーバ106へ送信される質問情報の一例である。
【0098】
ステップS607において、チャットボットサーバ106は、チャットボット処理(
図7)を実行する。
【0099】
ここで、
図7について説明しておく。
図7は、チャットボット処理のフローチャートの一例を示す図である。
【0100】
ステップS701において、チャットボットサーバ106は、アプリケーションクライアント104から送信された質問情報を受信する。
【0101】
ステップS702において、チャットボットサーバ106は、QAデータ前回読込日時とQAデータファイル更新日時を比較し、QAデータ前回読込後、QAデータファイルが新たに更新されている場合はステップS703に進み、更新されていない場合はステップS704に進む。
【0102】
ステップS703において、チャットボットサーバ106は、QAデータ425(
図9)を読み込み、RAM202に記憶する。
【0103】
ここで、
図9について説明しておく。
図9の900は、QAデータ425の一例を示す図である。
【0104】
図9の900のQAデータ425には、例として、QAレコードが4件格納されている。QAデータは、{質問,回答,アプリケーションコード,画面コード}の順にカンマ区切りで記述する。
【0105】
QAの検索には、「質問」及び「回答」が利用される。「アプリケーションコード」及び「画面コード」は、アプリケーション毎、画面毎に異なるQAレコードを用意したい場合に設定する。例えば、特定アプリケーション専用のQAデータや特定画面専用のQAデータを用意したい場合は、アプリケーションコード又は画面コードにそれぞれのコードを設定することで、そのアプリケーション又はその画面からの質問に対してのみQAレコードをヒットさせることができる。
【0106】
QAレコード901は、「アプリケーションコード」及び「画面コード」を設定していないため、アプリケーション及び画面を特に限定しない回答として用いることができる。つまり、どのアプリケーションからも、どの画面からも、される可能性のある広く一般的な質問である。
【0107】
QAレコード902は、「アプリケーションコード」を設定し、「画面コード」を設定していないため、アプリケーションを限定し、画面コードは限定しない回答として用いることができる。つまり、特定アプリケーションの複数画面でされる可能性の高い質問である。言い換えると、QAレコード902は、特定アプリケーションのみに存在する機能についてのQAデータである。
【0108】
QAレコード903は、「アプリケーションコード」を設定しておらず、「画面コード」を設定しているため、アプリケーションは特に限定せず、画面コードを限定した回答として用いることができる。つまり、複数アプリケーションにおける特定画面からされる可能性の高い質問である。言い換えると、QAレコード903は、複数アプリケーションに共通して存在する機能だが、特定画面にしか存在しない機能(例:印刷機能)についてのQAデータである。
【0109】
QAレコード904は、「アプリケーションコード」及び「画面コード」を設定しているため、アプリケーション及び画面コードの両方を限定した回答として用いることができる。つまり、特定アプリケーションの特定画面からされる可能性の高いピンポイント的な質問である。言い換えると、QAレコード904は、特定アプリケーションの特定画面にしか存在しない機能についてのQAデータである。
【0110】
【0111】
【0112】
ステップS704において、チャットボットサーバ106は、RAM202に記憶したQAデータ425のうち、「アプリケーションコード」及び「画面コード」が質問情報に含まれる「アプリケーションコード」及び「画面コード」と一致するQAデータの中から、質問内容に対応する回答を検索し(
図12の1201)、回答があった場合はステップS708に進み、無かった場合はステップS705に進む。
【0113】
すなわち、ステップS704は、質問の内容及び当該質問に係るアプリケーション画面の識別情報に基づき回答を取得する処理の一例を示すステップである。
【0114】
すなわち、ステップS704は、質問の内容及び当該質問に係るアプリケーションの識別情報に基づき回答を取得する処理の一例を示すステップである。
【0115】
これにより、QAレコード904(
図9)のように、「アプリケーションコード」及び「画面コード」が設定されているQAレコードがヒットするため、特定アプリケーションの特定画面からされる可能性の高いピンポイント的な質問に対する回答が優先的に出力されることになる。
【0116】
ここで、
図12について説明しておく。
図12は、チャットボットによる回答検索処理の一例を示す図である。
【0117】
1201~1204の順に回答検索処理を行い、質問内容に対応する回答が見つかった時点で
図12の処理は中断し、アプリケーションクライアント104へヒットした回答内容を送信する。
【0118】
searcherは、QAデータ425を形態素解析、キーワード抽出、インデックス化したオブジェクトである。
【0119】
queryは、質問情報1003の質問内容を形態素解析、キーワード抽出、インデックス化したオブジェクトである。
【0120】
appFilterは、質問情報1003のアプリケーションコードである。アプリケーションコードを指定しない場合は、appFilterの代わりに、すべてのアプリケーションコードを意味する“allAppFilter”を用いる。
【0121】
ioFilterは、質問情報1003の画面コードである。画面コードを指定しない場合は、ioFilterの代わりに、すべての画面コードを意味する“allIoFilter”を用いる。
【0122】
なお、本実施形態においては、QAデータ425及び質問情報1003の形態素解析、キーワード抽出、インデックス化して質問に対する回答を取得するとしたが、この方法に限定するものではなく、その他の言語解析技術を用いた回答取得、人工知能を用いた回答取得、他システムと連携した回答取得等であってもよい。
【0123】
【0124】
【0125】
ステップS705において、チャットボットサーバ106は、RAM202に記憶したQAデータ425のうち、「アプリケーションコード」が質問情報に含まれる「アプリケーションコード」と一致するQAデータ425の中から、質問内容に対応する回答を検索し(
図12の1202)、回答があった場合はステップS708に進み、無かった場合はステップS706に進む。すなわち、ステップS705は、質問の内容及び当該質問に係るアプリケーションの識別情報に基づき回答を取得する処理の一例を示すステップである。
【0126】
これにより、QAレコード902(
図9)のように、「アプリケーションコード」が設定されているQAレコードがヒットするため、特定アプリケーションの複数画面でされる可能性の高い質問に対する回答が優先的に出力されることになる。
【0127】
ステップS706において、チャットボットサーバ106は、RAM202に記憶したQAデータ425のうち、画面コードが質問情報に含まれる画面コードと一致するQAデータ425の中から、質問内容に対応する回答を検索し(
図12の1203)、回答があった場合はステップS708に進み、無かった場合はステップS707に進む。すなわち、ステップS706は、質問の内容及び当該質問に係るアプリケーション画面の識別情報に基づき回答を取得する処理の一例を示すステップである。
【0128】
これにより、QAレコード903(
図9)のように、「画面コード」が設定されているQAレコードがヒットするため、特定アプリケーションの複数画面でされる可能性の高い質問に対する回答が優先的に出力されることになる。
【0129】
ステップS707において、チャットボットサーバ106は、RAM202に記憶したQAデータ425の中から、質問内容に対応する回答を検索し(
図12の1204)、回答があった場合はステップS708に進み、無かった場合はステップS709に進む。
【0130】
これにより、QAレコード901(
図9)のように、「アプリケーションコード」及び「画面コード」を設定していないQAレコードがヒットするため、どのアプリケーションからも、どの画面からも、される可能性のある広く一般的な質問に対する回答が出力されることになる。
【0131】
なお、本実施形態においては、ステップS704~S706にて回答がヒットした場合、その後の検索を行わないとしたが、この手順に限定するものではなく、ステップS704~S706にて回答がヒットした場合であっても、その後の検索も行い、ヒットした順に回答を出力する(
図6のステップS609)としてもよい。これにより、ピンポイント的な回答が優先的に出力され、広く一般的な回答が最後の方に出力されるようになるため、アプリケーションユーザが所望する回答を優先的に得られるようになる。
【0132】
ステップS708において、チャットボットサーバ106は、アプリケーションクライアント104へヒットした回答内容を送信する。
図13の1301は、ステップS706にて回答がヒットした場合のチャットボットサーバ106のログの一例である。
図13の1302は、ステップS707にて回答がヒットした場合のチャットボットサーバ106のログの一例である。
【0133】
ステップS709において、チャットボットサーバ106は、アプリケーションクライアント104へヒットする回答が無いことを送信する。
図13の1303は、回答がヒットしなかった場合のチャットボットサーバ106のログの一例である。
【0134】
【0135】
【0136】
ステップS608において、アプリケーションクライアント104は、チャットボットサーバ106からの回答を受信する。
図11の1101は、
図7の処理により回答が見つかったときにチャットボットサーバ106から受信する回答情報の一例である。
【0137】
ステップS609において、アプリケーションクライアント104は、チャットボットサーバ106からの回答を出力する。
図11の1102は、
図7の処理により回答が見つかったときの回答情報の出力例である。
図11の1103は、
図7の処理により回答が見つからなかったときの回答情報の出力例である。
【0138】
なお、本実施形態においては、回答をチャットエリアに文字で表示するとしたが、この出力方法に限定するものではなく、質問内容に係るアプリケーション画面部品近傍への回答表示、画像による回答表示、音声による回答出力等、他の出力方法であってもよい。
【0139】
なお、本実施形態においては、アプリケーションクライアント104とチャットボットサーバ106とが情報を送受信することで質問に対する回答を取得するとしたが、この方法に限定するものではなく、アプリケーションクライアント104にQAデータ425をダウンロードしておき、アプリケーションクライアント104内の処理で質問に対する回答を取得したり、アプリケーションクライアント104とチャットボットサーバ106との間にアプリケーションサーバ102を介して情報を送受信したりする等の方法であってもよい。
【0140】
ステップS610において、アプリケーションクライアント104は、アプリケーション画面の操作を受け付ける。この処理は、チャットボット機能とは直接関係のない処理である。
【0141】
ステップS611において、アプリケーションクライアント104は、ステップS610にて受け付けた操作情報を送信する。
【0142】
ステップS612において、アプリケーションサーバ102は、アプリケーション画面の操作情報を受信する。
【0143】
ステップS613において、アプリケーションサーバ102は、アプリケーション画面の操作情報に基づき、アプリケーションの処理を実行する。その処理後、遷移先アプリケーション画面を特定し、ステップS602に戻る。
【0144】
【0145】
以上により、アプリケーション構築ツールを用いてアプリケーションを構築すると共に、当該アプリケーションユーザのためのチャットボット機能を容易に構築することができる。つまり、チャットボット機能を利用可能なアプリケーションを容易に構築することができるようになる。
【0146】
また、QAデータに「アプリケーションコード」「画面コード」を持ち、
図7のような処理を行うことにより、「アプリケーション」「画面」毎にヒット率を調整することができるようになるため、QAデータのヒット率チューニングを容易にすることができるようになる。
【0147】
なお、本実施形態においては、QAレコードに持つことができる「アプリケーションコード」「画面コード」はそれぞれ1つとしたが、1つに限定するものではなく、複数の「アプリケーションコード」、複数の「画面コード」を設定できるとしてもよい。これにより、より柔軟なQAデータのヒット率の調整が可能になる。
【0148】
また、QAデータに「アプリケーションコード」を持ち、
図4のようなシステム構成にすることで、複数のアプリケーションでチャットボット機能を共有することができるようになるため、チャットボット機能及びQAデータの管理が容易になる。
【0149】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(又はCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【0150】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【0151】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、DVD-ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
【0152】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0153】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0154】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0155】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。
【0156】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0157】
101 情報処理装置
102 アプリケーションサーバ
103 データベースサーバ
104 アプリケーションクライアント
105 ネットワーク
106 チャットボットサーバ