IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧

特許7441366情報処理装置、情報処理方法及びコンピュータプロググラム
<>
  • 特許-情報処理装置、情報処理方法及びコンピュータプロググラム 図1
  • 特許-情報処理装置、情報処理方法及びコンピュータプロググラム 図2
  • 特許-情報処理装置、情報処理方法及びコンピュータプロググラム 図3
  • 特許-情報処理装置、情報処理方法及びコンピュータプロググラム 図4
  • 特許-情報処理装置、情報処理方法及びコンピュータプロググラム 図5
  • 特許-情報処理装置、情報処理方法及びコンピュータプロググラム 図6
  • 特許-情報処理装置、情報処理方法及びコンピュータプロググラム 図7
  • 特許-情報処理装置、情報処理方法及びコンピュータプロググラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-02-20
(45)【発行日】2024-02-29
(54)【発明の名称】情報処理装置、情報処理方法及びコンピュータプロググラム
(51)【国際特許分類】
   G06F 16/90 20190101AFI20240221BHJP
   G06F 40/56 20200101ALI20240221BHJP
【FI】
G06F16/90 100
G06F40/56
【請求項の数】 20
(21)【出願番号】P 2023151708
(22)【出願日】2023-09-19
【審査請求日】2023-09-19
【早期審査対象出願】
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100118876
【弁理士】
【氏名又は名称】鈴木 順生
(72)【発明者】
【氏名】岩政 幹人
【審査官】齊藤 貴孝
(56)【参考文献】
【文献】特許第7325152(JP,B1)
【文献】特許第7313757(JP,B1)
【文献】特開2023-076413(JP,A)
【文献】中国特許出願公開第116483962(CN,A)
【文献】中国特許出願公開第116340584(CN,A)
【文献】吉川 克正、外6名,シチュエーションに合わせたシナリオ誘導とHyperCLOVAを利用した応答生成によるハイブリッド対話システム,第96回 言語・音声理解と対話処理研究会資料 (SIG-SLUD-096) ,日本,一般社団法人人工知能学会,2022年12月01日,p.124-129
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 40/00-40/58
(57)【特許請求の範囲】
【請求項1】
それぞれ異なる種類のデータを格納した複数のデータベースのうち、入力された質問に対応するデータベースを前記質問の内容に基づいて選択し、
選択したデータベースと、前記質問とに基づいて、言語モデルに入力するためのプロンプトを生成し、前記プロンプトと前記言語モデルとに基づいて回答を生成する、処理部
を備えた情報処理装置。
【請求項2】
前記処理部は、前記複数のデータベースと、複数の質問とを対応づけた切り替えルールに基づき、前記入力された質問にマッチする質問を特定し、特定した前記質問に対応するデータベースを選択する
請求項1に記載の情報処理装置。
【請求項3】
前記処理部は、前記質問に基づき、複数の部分質問の生成と、前記複数の部分質問の順番の決定とを行い、
前記順番に従って、前記複数の部分質問から第1部分質問を選択し、前記第1部分質問の内容に基づいて第1データベースを選択し、
前記第1データベースと、前記第1部分質問とに基づいて、前記言語モデルに入力するための第1プロンプトを生成し、前記第1プロンプトと前記言語モデルとに基づいて、前記第1部分質問の回答を生成し、
前記順番に従って、前記複数の部分質問から第2部分質問を選択し、前記第2部分質問の内容に基づいて第2データベースを選択し、前記第2データベースと、前記第2部分質問と、前記第1部分質問の回答とに基づいて、前記言語モデルに入力するための第2プロンプトを生成する
請求項2に記載の情報処理装置。
【請求項4】
前記切り替えルールは、前記複数の質問に、前記プロンプトに含める質問を作成するための複数のプロンプト本文を対応づけ、
前記処理部は、前記切り替えルールから前記第1部分質問の内容に基づいて第1プロンプト本文を選択し、前記第1データベースと、前記第1プロンプト本文とに基づいて、前記第1プロンプトを生成し、
前記処理部は、前記切り替えルールから前記第2部分質問の内容に基づいて第2プロンプト本文を選択し、前記第2データベースと、前記第2プロンプト本文と、前記第1部分質問の回答とに基づいて、前記第2プロンプトを生成する
請求項3に記載の情報処理装置。
【請求項5】
前記第2プロンプト本文には変数が含まれており、前記変数に前記第1部分質問の回答に含まれる値を割り当てることにより前記第2プロンプト本文を更新し、更新された前記第2プロンプト本文と、前記第2データベースとに基づいて、前記第2プロンプトを生成する
請求項4に記載の情報処理装置。
【請求項6】
前記処理部は、生成した前記回答が、前記回答の元となった前記プロンプト又は前記質問に整合するかを判断し、整合しない場合は、前記回答において整合しない箇所に基づいて前記プロンプトを修正し、修正後のプロンプトと、前記言語モデルとに基づいて回答を再生成する
請求項1に記載の情報処理装置。
【請求項7】
前記処理部は、生成した前記回答が、前記回答の元となった前記プロンプト又は前記質問に整合するかを判断し、整合しない場合は、前記回答において整合しない箇所と前記回答をユーザに提示し、前記ユーザから前記プロンプトの修正指示を受け、前記修正指示に基づいて前記プロンプトを修正し、修正後のプロンプトと、前記言語モデルとに基づいて回答を再生成する
請求項1に記載の情報処理装置。
【請求項8】
前記処理部は、前記選択されたデータベースに格納されているデータのうち、前記質問に関連するデータを抽出し、抽出したデータと、前記質問とに基づいて前記プロンプトを生成する
請求項1に記載の情報処理装置。
【請求項9】
前記質問を格納する第1フィールドと、前記データベースのデータを格納する第2フィールドとを含む、プロンプト生成用の文章テンプレートを用いて、前記第1フィールドに前記質問を格納し、前記第2フィールドに前記抽出したデータを格納することにより前記プロンプトを生成する
請求項8に記載の情報処理装置。
【請求項10】
前記回答にプログラムコードが含まれる場合に、前記回答に含まれる前記プログラムコードを実行するコード実行部
をさらに備えた請求項1に記載の情報処理装置。
【請求項11】
前記コード実行部は、前記プログラムコードにセンサを表す変数と、前記変数の値に基づいて処理を実行する命令とが含まれる場合に、前記センサの時系列データを格納した時系列データベースから前記センサのデータを読み出し、読み出した前記データを前記変数に割り当てて、前記命令を実行し、前記処理の結果を出力する
請求項10に記載の情報処理装置。
【請求項12】
前記命令は前記変数のデータに基づいてグラフを生成する命令であり、
前記コード実行部は、前記処理の結果としてグラフを出力する
請求項11に記載の情報処理装置。
【請求項13】
前記入力された質問は、ユーザから入力された質問であり、
前記処理の結果をユーザに可視可能に表示する出力部
をさらに備えた請求項11に記載の情報処理装置。
【請求項14】
前記言語モデルを実行する言語モデル実行部を備え、
前記処理部は、前記言語モデル実行部に前記プロンプトを入力することにより前記言語モデル実行部から前記回答を取得する
請求項1に記載の情報処理装置。
【請求項15】
前記言語モデルは、大規模言語モデルである
請求項14に記載の情報処理装置。
【請求項16】
前記質問は、複数のセンサが配置され、前記センサによって状態が監視される施設の前記状態に関する質問であり、
前記複数のデータベースは、前記監視する状態の種類に関するデータベース、前記施設が備えている設備に関するデータベース、前記センサに関するデータベースを少なくとも含む
請求項1に記載の情報処理装置。
【請求項17】
前記処理部は、どのような部分質問をどのような順序で行えば前記質問に対する正しい回答を得ることができるかを計画するプランニングのアルゴリズムを前記質問に対して適用することにより前記複数の部分質問の生成と、前記複数の部分質問の順番の決定とを行う
請求項3に記載の情報処理装置。
【請求項18】
アプリケーションの画面を介してユーザから前記質問の入力を受け付ける質問入力部をさらに備え、
前記処理部は、前記質問入力部で入力された前記質問を対象に前記複数の部分質問の生成と、前記複数の部分質問の順番の決定とを行う
請求項17に記載の情報処理装置。
【請求項19】
コンピュータが、
それぞれ異なる種類のデータを格納した複数のデータベースのうち、入力された質問に対応するデータベースを前記質問の内容に基づいて選択し、
選択したデータベースと、前記質問とに基づいて、言語モデルに入力するためのプロンプトを生成し、前記プロンプトと前記言語モデルとに基づいて回答を生成する、
情報処理方法。
【請求項20】
それぞれ異なる種類のデータを格納した複数のデータベースのうち、入力された質問に対応するデータベースを前記質問の内容に基づいて選択するステップと、
選択したデータベースと、前記質問とに基づいて、言語モデルに入力するためのプロンプトを生成し、前記プロンプトと前記言語モデルとに基づいて回答を生成するステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、情報処理装置、情報処理方法及びコンピュータプロググラムに関する。
【背景技術】
【0002】
大規模言語モデル(LLM: Large Language Models)を用いて自然言語により質疑応答を行うシステムの活用が進んでいる。LLMを用いたシステムでは、LLMに自然言語で記載された文章(質問)を入力することで、LLMから回答が出力される。LLMに入力される文書はプロンプト(Prompt)と呼ばれる。LLMを利用することで、ユーザは自ら回答を調べる負荷が軽減され、あるいは知らない知識を容易に取得することができる。ユーザがLLMの出力を利用して判断を行うには、LLMの出力内容の正確性が問題となり得る。特にユーザの質問が複雑であったり、漠然とした内容であったりする場合、回答の内容も正確性に欠くことも多い。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開第2016/098805号
【文献】特開2000-259722号公報
【文献】特開2002-373017号公報
【文献】特開2023-76413号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本実施形態は、質問に対して正確性を高めた回答を可能とする情報処理装置、情報処理方法及びコンピュータプロググラムを提供する。
【課題を解決するための手段】
【0005】
本実施形態に係る情報処理装置は、それぞれ異なる種類のデータを格納した複数のデータベースのうち、入力された質問に対応するデータベースを前記質問の内容に基づいて選択し、選択したデータベースと、前記質問とに基づいて、言語モデルに入力するためのプロンプトを生成し、前記プロンプトと前記言語モデルとに基づいて回答を生成する、処理部を備えている。
【図面の簡単な説明】
【0006】
図1】本実施形態に係る情報処理装置の一例のブロック図。
図2】ユーザの質問と、ユーザの質問から生成された複数の部分質問の例を示す図。
図3】DB切り替えルールの例を示す図。
図4】文章テンプレートの例を示す図。
図5図4の文章テンプレートに基づき作成されたプロンプトの例を示す図。
図6】出力部により表示されるグラフの例を示す図。
図7】実施形態に係る処理の一例を示すフローチャート。
図8】実施形態に係る情報処理装置のハードウェア構成を示す図。
【発明を実施するための形態】
【0007】
以下、図面を参照しつつ、本実施形態について説明する。
【0008】
図1は、本実施形態に係る情報処理装置10の一例のブロック図である。
図1の情報処理装置10は、質問入力部100、質問分解部110、質問実行制御部120、プロンプト処理部130、DB切り替えルール記憶部140、DB記憶部150、大規模言語モデル(LLM:Large Language Models)実行部160、出力チェック部170、プロンプト修正部180、コード実行部190、センサ時系列DB200、及び出力部210を備えている。
【0009】
本実施形態に係る処理部は、質問分解部110、質問実行制御部120、プロンプト処理部130、LLM実行部160、出力チェック部170、プロンプト修正部180、コード実行部190のうちの少なくとも1つ又は任意の複数の機能を備えている。本実施形態では言語モデルとしてLLMを用いているが自然言語を扱い理解できるものであればLLM以外の言語モデルを用いてもよい。
【0010】
DB記憶部150は、省エネ施策DB151、ビル設備DB152、及びセンサ接点DB153を備えている。
【0011】
プロンプト処理部130は、プロンプト生成部131、及びDB選択部132を備えている。
【0012】
質問入力部100は、ユーザから質問の入力を受け付ける。ユーザには、本実施形態に係るアプリケーション(以下、アプリ)の画面が表示されており、ユーザはアプリの質問入力フィールドから質問を入力することができる。質問は自然言語で入力する。言語は日本語、英語、中国語、ハングル語、フランス語など何でもよい。ユーザは、例えばキーボード、音声入力装置、マウスなどを用いて、質問を入力することができる。質問入力部100はユーザから入力された質問のデータを質問分解部110に送る。質問分解部110に送るデータはテキストデータでもよいし、暗号化されたデータでもよいし、その他の形式でもよい。
【0013】
図2の上図は、ユーザが入力した質問の例を示す。「Q:」は、「Q:」以降に記載された内容が、ユーザが入力した質問であることを意味する。ユーザの入力した質問は「昨日、部屋RM101が適切に冷房されているかどうかを知りたい、グラフで見たい。」である。
ここでユーザはビル等の施設の管理者であり、施設内のある部屋(RM101という名前の部屋)が適切に冷房されているかを知りたいと考えている。適切な冷房のされ方の知識を本装置がデータベースとして有している又は本装置からアクセス可能なサーバに当該知識があるとの前提に、その知識をユーザに提供することを本装置にユーザは期待している状況を想定する。
【0014】
質問分解部110は、ユーザの質問に対する適切な答えを得られるようにユーザの質問を複数の部分質問に分解する。つまり、探索等の手法を用いてユーザの質問を複数の部分質問の系列に変換し、複数の部分質問と、当該複数の部分質問の順番とを含むリスト(部分質問リスト)を得る。質問分解部110は部分質問リストを質問実行制御部120に送る。各部分質問はユーザの質問よりも具体的な内容であり、順番の早い部分質問の答えが、次又はそれ以降の部分質問の答えを見つけるのに用いられ得る。このようにユーザの質問を具体的な複数の部分質問に分解することで、ユーザの質問が複雑な質問あるいは漠然とした質問であっても、ユーザが求めている答えに正確にたどり着くことができる。具体的な手法としては、例えばプランニングなどの既存の技術を用いることができる。プランニングは、例えば、どのような順序でどのような部分質問を行えばユーザの質問に正しく回答できるかを計画する技術である。そのような技術として、SHRDLU(シュルドゥル)と呼ばれる自然言語理解の人口知能(AI)プログラムを用いてもよい。なお、ユーザの質問が分解の必要のない場合は分解しない場合もあり得る。SHRDLU の参考文献として、"Procedures as a Representation for Data in a Computer Program for Understanding Natural Language",Terry Winograd, MIT AI Technical Report 235, February 1971が知られている。
【0015】
図2の下図は、図2の上図の質問から生成された部分質問リストを示す。4つの部分質問Q1~Q4が示され、部分質問Q1~Q4の順に順番が早い。図示の通り、
1番目の部分質問Q1は「Qに関して具体的な省エネ施策を得る」、
2番目の部分質問Q2は「与えられた式に対するセンサ一覧の取得」、
3番目の部分質問Q3は「昨日の、部屋RM101の冷房に関するデータを取得しグラフ化するコード生成」、
4番目の部分質問Q4は「生成されたpythonコードの実行と可視化」、
である。なお、部分質問Q1の中の「Q」は、ユーザの質問Qを指している。
【0016】
質問実行制御部120は、部分質問リスト内の複数の部分質問が順番に実行されるよう制御する。質問実行制御部120は、まず部分質問リスト内の先頭の部分質問を取り出し、LLM実行部160に処理させるべき問題であれば、プロンプト処理部130に送る。プロンプト処理部130以降の処理で最初の部分質問の処理が完了したら(最初の部分質問の答えが得られたら)、次の部分質問を部分質問リストから取り出して、プロンプト処理部130に送る。以降、同様の処理を、部質問リスト内の最後の部分質問を処理するまで、繰り返し行う。取り出した部分質問がコード実行部190にコード実行させることを要求する質問であれば、コード実行部190に部分質問に基づく指示を送る。本実施形態では、最後の部分質問がコード実行部190にコード実行させることを要求する質問である場合を想定する。
【0017】
プロンプト処理部130は、質問実行制御部120から部分質問を受けると、LLM実行部160の入力となるプロンプト(Prompt)を生成する。プロンプト処理部130は、プロンプト生成部131とDB選択部132とを備える。
【0018】
DB選択部132は、DB切り替えルール記憶部140に記憶されている切り替えルール(DB切り替えルール)に基づき、プロンプトの生成に用いるデータベース(DB)を選択する。プロンプトの生成に用いるDBの候補は、DB記憶部150に記憶されているDBであり、具体的には、省エネ施策DB151、ビル設備DB152、センサ接点DB153、pythonコード生成DB154、センサデータ辞書DB155等である。図示しているDB以外のDBもDB記憶部150に記憶されていてもよい。以下、DB切り替えルールと、これらのDB151~155等について説明する。
【0019】
図3は、DB切り替えルール記憶部140に記憶されているDB切り替えルールの例を示す。DB切り替えルールは、“質問の種類”、“質問の例”、“DB”、“プロンプト本文”の列を有するテーブルである。但し、DB切り替えルールは、リスト形式などテーブル以外の形式でもよい。
【0020】
“質問の種類”の列には、質問の種類を示す情報が格納されている。図の例では人間に理解しやすい自然言語で質問の種類が記載されているが、質問の種類が識別可能であれば、ID又は番号などの情報が格納されてもよい。
【0021】
“質問の例”の列には、質問(部分質問)の記載例が格納されている。図の例では、質問の種類ごとに質問の例が1つのみ対応づいて格納されているが、質問の種類ごとに、多数又は複数の質問の例が格納されていてもよい。
【0022】
“DB”の列には、DB記憶部150に記憶されている各種DBのうち使用するDBを識別する情報が格納されている。「オフィス省エネ事例集」は省エネ施策DB151に対応しており、「設備DB+センサDB」は、ビル設備DB152及びセンサ接点DB153に対応しており、「pythonコード生成DB+センサデータ辞書」は、pythonコード生成DB154及びセンサデータ辞書DB155に対応している。
【0023】
“プロンプト本文”の列には、プロンプト作成用の文章テンプレート(後述する図4参照)に埋め込むプロンプト本体(自然言語)が格納されている。このプロント本体は文章テンプレートにそのまま埋め込む場合や、一部編集されて文章テンプレートに埋め込まれる場合もある。
【0024】
例えば、“質問の例”の値である“質問Qに関して具体的な省エネ施策を得る”に対応して、“Qに関して、空調の動作確認をする式を知りたい”が、プロンプト本文として格納されている。なお“Q”は前述したユーザから入力された質問(図2参照)である。なお、“質問の種類”の値に対応して、“プロント本文”の値が格納されていてもよい。
【0025】
省エネ施策DB151は、施設内の省エネの事例が多数格納されたDBである。省エネの対象は、空調機器、エレベータ、照明機器、AO(Office Automation)機器など様々である。空調機器であれば、例えば、エアコンの効率性を評価するためにどのような式を用い、この式を計算するためにどのようなデータ(センサ)が必要であり、この式の出力がどのようになれば適正なのかなどの事例が多数記載されている。建物の属性、部屋の属性、空調機器の属性などに応じて区分が設定され、区分ごとにこれらの事例が格納されていてもよい。事例は、国、地方公共団体、各種企業が実際に行って効果があったものとして集められたものでもよい。これらの多数の事例が自然言語で記載されていてもよい。省エネ施策DB151は、インターネットで各種団体・企業から公開されている各種省エネ事例集をダウンロードしたものであってもよい。省エネ施策DB151は、施設に設けられているセンサによって監視する状態の種類に関するデータベースの一例であり、省エネ以外のことをユーザが監視したい場合は監視したい状態の種類に関するデータベースが設けられていてもよい。
【0026】
ビル設備DB152は、ビル等の施設における設備に関するデータを格納している。例えばビルの名称・位置等の属性情報、ビルにおける各部屋やエレベータなどの位置等の属性情報が格納され、またビル内における空調機器・照明機器・AO機器などの設置位置(たとえばどの部屋に配置されているかなど)や機能等の属性情報が格納されている。ビル設備DB152はテーブル形式でもよいし、これらの施設や設備に関するデータが自然言語で記載された文書でもよい。ビル設備DB152は、施設が備えている設備に関するデータベースの一例である。
【0027】
センサ接点DB153は、複数のセンサについて、それぞれ設けられている施設及び施設内の設置場所(部屋等)、センサの種類、センサを制御する機器、センサの出力を利用する機器などの情報が、センサの識別情報(センサ名又はID)に対応づけて格納されている。センサの種類として、例えば、温度センサ、湿度センサ、近接センサ、変位センサ、圧力センサがある。センサ接点DB153は、施設に設けられているセンサに関するデータベースの一例である。
【0028】
pythonコード生成DB154は、pythonのコマンド・文法等を格納している。典型的な処理のコードテンプレートが格納されていてもよい。これらのデータは、pythonのプログラムを自動生成するために用いることができる。
【0029】
センサデータ辞書DB155は、センサのデータ(値)をpython等のプログラムで変数として用いるためにセンサのデータの種類(例えば波形データなのか、離散的な値なのか)、センサを表す変数の定義(データ型、桁数)等についての情報を格納している。またセンサのデータの処理方法(例えばデータが波形の場合どのようにしてセンサ値を取得するのか(たとえば一定期間内の最大値を用いるのかなど)の情報が格納されていてもよい。これらの情報は、センサの種類別に記載されていてもよいし、センサ接点DB153で用いられているセンサの識別情報(センサ名又はID)ごとに記載されていてもよい。センサデータ辞書DB155は、施設に設けられているセンサに関するデータベースの一例である。
【0030】
DB選択部132は、質問実行制御部120から受けた部分質問にマッチする“DB”の値、及び“プロンプト本文”の値を、DB切り替えルールから取得する。より詳細には、部分質問をDB切り替えルールにおける“質問の例”の列と比較し、最も類似する“質問の例”の値を特定し、特定した値を含む行における、“DB”の値と“プロンプト本文”の値とを取得する。DB選択部132は、取得した“DB”の値によって識別されるDBをDB記憶部150から選択する。
【0031】
例えば、部分質問が“Qに関して具体的な省エネ施策を得る”であれば、“質問Qに関して具体的な省エネ施策を得る”に最もマッチ(類似)するから、“DB”の値として、「オフィス省エネ事例集」を取得し、“プロンプト本文”の値として、「Qに関して、空調の動作確認をする式を知りたい」を取得する。よってDB選択部132は、「オフィス省エネ事例集」に対応する省エネ施策DB151を選択する。なお、以下では、DB選択部132によって取得された“プロンプト本文”の値を、“”を外して、プロンプト本文と記載する。
【0032】
部分質問に最もマッチする“質問の例”の値を特定するためベクトルマッチングを用いてもよい。この場合、部分質問をベクトル化し、“質問の例”の値をベクトル化し、両ベクトルの類似度(例えばユークリッド距離)を計算し、“質問の例”の値のうち、類似度が最も高い値を選択する。ベクトル化の方法として部分質問を形態素解析することによって数値ベクトル化してもよい。“質問の例”の値も同様にして数値ベクトル化し、ベクトル間の類似度(距離)を計算すればよい。ベクトル化はニューラルネットワークを用いた組込み処理の利用など、形態素解析を用いる以外の方法で行ってもよい。
【0033】
プロンプト生成部131は、DB選択部132によって選択されたDB(選択DBと記載する)と、DB選択部132によって取得されたプロンプト本文とに基づき、LLM実行部160に提供するプロンプトを生成する。プロンプト生成部131は、文章テンプレートを保持しており、この文章テンプレートに、取得したプロンプト本文を埋め込み、また選択DBのデータをコンテキスト情報として埋め込むことでプロンプトを生成する。この際、埋め込む選択DBのデータとして、部分質問に関連するデータを、選択DBから抽出し、抽出したデータを文章テンプレートに埋め込む。これにより、LLM実行部160でプロンプトを処理する際に、処理するデータの範囲を適切な範囲に絞り込めるため精度の高い回答を得ることができる可能性が高くなる。変形例として、選択DBへのリンクを文章テンプレートに埋め込んでも良い。またDBのサイズが大きすぎなければ、DBの内容全部を文章テンプレートに埋め込む構成もあり得る。
【0034】
例えば部分質問が「Q1: Qに関して具体的な省エネ施策を得る」であり、また選択されたDBが省エネ施策DB151の場合、ユーザの質問Qが冷房に関する内容であることから、省エネ施策DB151から冷房の効率性に関連する箇所のデータのみを抽出する。
【0035】
図4は、文章テンプレートの例を示す。“#Questions”が付されたフィールド310がプロンプト本文を格納するフィールドである。“#DB session”が付されたフィールド320が、選択DBから抽出された関連データを格納するフィールドである。
【0036】
図5は、文章テンプレートにおけるフィールド310に、部分質問が「Q1: Qに関して具体的な省エネ施策を得る」である場合に取得されたプロンプト本文を格納し、フィールド320に、選択DB(省エネ施策DB151)から抽出した関連データを格納することにより作成されたプロンプトの例を示す。
【0037】
プロンプト生成部131は、生成したプロンプトをLLM実行部160に送る。図では、生成したプロンプトを、Prompt(DB)と表している。Prompt(DB)の表記は、選択DBのデータをコンテキスト情報として埋め込んだプロンプトであることを模式的に意味している。
【0038】
LLM実行部160は、LLMの機能を備えた回路又は処理部である。LLMは大量のデータセット(テキストデータ)を使ってトレーニングされたAIモデルであり、入力された質問に対する回答を生成して出力する。回答の形式は様々であり、回答は自然言語を含む文章である場合や、エンジンで実行可能なpython等のコード(プログラムコード)を含む場合など、様々あり得る。LLMの例として、Chat GPT、Bing、Bard、NotionAIなどが広く知られている。
【0039】
LLM実行部160は、プロンプト生成部131から受けたプロンプトに含まれるプロンプト本文(フィールド310に格納された質問)に対する回答を得るための処理(LLM処理)を行う。この際、フィールド320にコンテキスト情報として埋め込まれた、選択DBの関連データを利用する。LLM実行部160は、生成した回答を出力チェック部170に送る。
【0040】
出力チェック部170は、LLM実行部160から受けた回答に、回答の元となる部分質問(又はプロンプト本文)との関連において(整合するか否か、あるいは矛盾するか)否かをチェックする。例えば、回答内容が冷房でなく、空調全般(暖房も含む)に関する省エネ策になっていれば、元の部分質問と回答内容が整合しないとして、今回の回答をプロンプト修正部180に送る。回答内容の整合性を判断する際、次の部分質問を考慮してもよい。この場合、出力チェック部170は、質問実行制御部120に次の部分質問の内容を確認してもよい。
【0041】
プロンプト修正部180は、出力チェック部170から受けた回答に基づき修正指示を生成し、プロンプト生成部131に送る。例えば回答の内容が冷房に限定されていなければ、回答の対象を冷房に絞り込むことを明示する記載をプロンプト本文に追加することをプロンプト生成部131に指示する。あるいは、次の部分質問が省エネ評価用の式を必要としているにもかかわらず回答に式が含まれていない場合は、式を回答に含めることを示すようにプロンプト本文を修正することをプロンプト生成部131に指示する。プロンプト修正部180は、回答の内容及び回答において整合しない箇所の少なくとも一方を出力部210又は別の表示装置を介してユーザに表示してもよい。この場合、プロンプト修正部180は、ユーザから修正指示を受け付け、修正指示をプロンプト生成部131に送ってもよい。
【0042】
プロンプト生成部131は、プロンプト修正部180から修正指示を受けた場合は、修正指示に従ってプロンプトを修正し(例えばプロンプト本文を修正、または選択DBから抽出する関連データを修正、またはこれらの両方を修正)、修正したプロンプトをLLM実行部160に送る。LLM実行部160は修正したプロンプトに基づき回答を生成し、出力チェック部170は回答に問題ないかをチェックする。問題があれば、上述と同様の処理を繰り返す。
【0043】
出力チェック部170は、LLM実行部160の回答に問題がない場合は、プロンプト処理部130に次の部分質問に移るように指示を送る。この際、今回の回答をプロンプト処理部130又はプロンプト生成部131にフィードバックする。指示を受けたプロンプト処理部130は、質問実行制御部120に次の部分質問を送るように指示を送り、次の部分質問を取得する。
【0044】
プロンプト処理部130は、2番目の部分質問を受けた場合、最初の部分質問と同様にして、DB選択部132及びプロンプト生成部131を用いて、プロンプトを生成し、生成したプロンプトをLLM実行部160に送る。プロンプト生成部131は、このとき、一つ前のLLM出力結果(回答)のフィードバックを反映したプロンプトの生成を行う。LLM実行部160はプロンプトに含まれるプロンプト本文に対する回答を、選択DBの関連データ等に基づき生成し、出力チェック部170に送る。出力チェック部170は回答(LLM回答)に問題ないかをチェックする。問題があれば、最初の部分質問の場合と同様、プロンプト修正部180を介して、再度プロンプトをプロンプト生成部131に生成させる。問題がなければ、次の部分質問に移るようプロンプト処理部130に指示を送る。プロンプト処理部130は、質問実行制御部120に次の部分質問があれば送るよう指示する。
【0045】
最後の部分質問はLLM実行部160に回答を求める質問ではなく、コード実行部190にコードの実行と実行結果の可視化とを要求する質問である。このため、質問実行制御部120は、コード実行部190に、コード(3番目の部分質問に対する回答として得られたコード)を実行することの指示と、コード実行による出力結果を可視化することの指示とを送る。なお、最後の部分質問がコードの実行の要求を含まず、直前の部分質問(本例では3番目の部分質問)の可視化のみの要求である場合は、質問実行制御部120は、コード実行部190又は出力部210に、直前の部分質問を可視化することの指示を送ればよい。
【0046】
コード実行部190は、質問実行制御部120から指示されたコード(本例では3番目の部分質問の回答として得られたコード)を実行する。コード実行部190はコードを実行するエンジンを含む。コードの実行において、コード実行部190は、コードにセンサの時系列データを用いた処理を行う指示(例えばセンサの時系列データを用いたグラフの作成指示)が含まれている場合に、該当するセンサの識別情報(ID)をコード内から特定し、当該IDに基づき、該当するセンサの時系列データをセンサ時系列DB200から読み出す。センサ時系列DB200は複数のセンサの時系列データがセンサの識別情報に対応付けて格納されている。コード実行部190は、読み出したセンサの時系列データを用いて処理を行い、処理の結果を出力部210に送る。出力部210は、コード実行部190から受けた処理の結果をユーザに視認可能に画面に表示する。出力部210は例えば液晶表示装置、有機EL表示装置等の表示装置である。出力部210は、有線又は無線の通信部を含んでもよい。この場合、出力部210は、ユーザが操作する端末装置に処理の結果を送信して、端末装置に処理の結果を出力させてもよい。
【0047】
以下、本装置の動作の具体例を、上述の図2に示したユーザの質問Qから部分質問Q1~Q4が得られた場合を元に説明する。部分質問Q1~Q4を順番に実行することで、ユーザの質問Qに対する回答を生成する例を示す。
【0048】
[1]DB選択部132およびプロンプト生成部131
1番目の部分質問である「Q1:Qに関して具体的な省エネ施策を得る」は、DB切り替えルールにおける「質問Qに関して具体的な省エネ施策を得る」にマッチするため、「オフィス省エネ事例集」に対応する省エネ施策DB151がDB選択部132により選択され、また「Qに関して、空調の動作確認をする式を知りたい」のプロンプト本文が取得される。プロンプト生成部131は、文章テンプレートのフィールド310にプロンプト本文を挿入し、さらに省エネ施策DB151から部分質問に関連するとして抽出した関連データをコンテキスト情報として文章テンプレートのフィールド320に追加することで、プロンプトを生成する。
【0049】
[2]LLM実行部160
LLM実行部160は、プロンプト生成部131により生成されたプロンプトを実行し、1番目の部分質問に対する回答として「A1:式1= (RM101の室温T1-設定温度T1set)が、(空調吹き出し温度T2-室温T1)と反比例するかどうか」を得る。なお“A1”は、回答を識別する識別情報である。
【0050】
[3]出力チェック部170
出力チェック部170は、回答A1をチェックし、問題がないので、次の部分質問に移行するようプロンプト処理部130に指示を送る。このとき、回答A1を、プロンプト生成部131にフィードバックする。
【0051】
[4]質問実行制御部120
次の部分質問(2番目の部分質問)である「Q2:与えられた式に対するセンサ一覧の取得」をプロンプト処理部130に送る。
【0052】
[5]DB選択部132およびプロンプト生成部131
2番目の部分質問である「Q2:与えられた式に対するセンサ一覧の取得」は、DB切り替えルールにおける「与えられた式$eqに対するセンサ一覧の取得」にマッチするため、「設備DB+センサDB」に対応するビル設備DB152及びセンサ接点DB153が選択され、また「式eqに関する、センサ接点一覧を知りたい」のプロンプト本文が取得される。センサ接点一覧は、式に含まれる1つ又は複数の変数が表すセンサの識別情報のリストに対応する。
【0053】
[6]プロンプト生成部131
DB選択部132により選択されたプロンプト本文「式eqに関する、センサ接点一覧を知りたい」と、LLM実行部160の直前の出力である回答A1とに基づき、プロンプト本文の“式eq”を“式1”に置換して、「式1に関する、センサ接点一覧を知りたい」に更新する。eqは、プロンプト本文に含まれる変数の一例である。変数には例えば前回又はそれ以前の部分質問の回答に含まれる値が割り当てられる。これにより前回の部分質問の回答を反映したプロンプトの生成(次の部分質問に対するプロンプト本文の生成)が可能となる。なお前回の部分質問の回答を反映させる方法は変数を介した方法に限定されない。例えば前回の部分質問の回答を、次の部分質問に対して選択されたプロンプト本文にそのまま追加してもよい。
【0054】
プロンプト生成部131は、文章テンプレートのフィールド310に、更新されたプロンプト本文を挿入し、さらにビル設備DB152及びセンサ接点DB153から、当該更新されたプロンプト本文(又は2番目の部分質問)に関連するとして抽出した関連データをコンテキスト情報としてフィールド320に追加することで、プロンプトを生成する。
【0055】
なお更新されたプロンプト本文における“式1”には、式1の内容である“(RM101の室温T1-設定温度T1set)が、(空調吹き出し温度T2-室温T1)と反比例するかどうか”を直接埋め込み、「“(RM101の室温T1-設定温度T1set)が、(空調吹き出し温度T2-室温T1)と反比例するかどうか”に関する、センサ接点一覧を知りたい」とのプロンプト本文を生成してもよい。
【0056】
[7]LLM実行部160
LLM実行部160は、プロンプト生成部131により生成されたプロンプトを実行し、2番目の部分質問に対する回答として、「A2: T1=T001, T1set=27, T2=T004」を得る。なお“A2”は、回答を識別する識別情報である。この回答は、例えば、室温T1のセンサデータを取得するにはセンサの識別情報(センサ接点)としてT001を用いればよいことを意味する。
【0057】
[8]出力チェック部170
出力チェック部170は、回答A2をチェックし問題がないので、次の部分質問に移行するようプロンプト処理部130に指示を送る。このとき、回答A2を、プロンプト生成部131にフィードバックする。
【0058】
[9]質問実行制御部120
次の部分質問(3番目の部分質問)である「Q3: 昨日の、部屋RM101の冷房に関するデータを取得しグラフ化するコード生成」をプロンプト処理部130に送る。
【0059】
[10]DB選択部132およびプロンプト生成部131
「Q3: 昨日の、部屋RM101の冷房に関するデータを取得しグラフ化するコード生成」は、DB切り替えルールにおける「ある日$Dayの、部屋$RMの冷房に関するデータを取得しグラフ化するコード生成」にマッチする。よって、「pythonコード生成DB+センサデータ辞書」に対応するpythonコード生成DB154及びセンサデータ辞書DB155が選択され、また「ある日Dayの式eqの関係を一日分グラフ化して」のプロンプト本文が取得される。
【0060】
[11]プロンプト生成部131
「ある日Dayの式eqの関係を一日分グラフ化して」に、LLMの直前及び以前の出力である回答A1、A2を反映させて、プロンプト本文として、「昨日の(T001-27)と(T004-T001)の関係を一日分グラフ化して」を生成する。プロンプト生成部131は、文章テンプレートのフィールド310に、生成されたプロンプト本文を挿入し、さらにpythonコード生成DB154及びセンサデータ辞書DB155から、当該生成されたプロンプト本文(又は3番目の部分質問)に関連としてそれぞれ抽出した関連データをコンテキスト情報としてフィールド320に追加することで、プロンプトを生成する。Day及びeqは、プロンプト本文に含まれる変数の一例である。変数には例えば前回又はそれ以前の部分質問の回答に含まれる値が割り当てられる。
【0061】
[12]LLM実行部160
LLM実行部160は、プロンプト生成部131により生成されたプロンプトを実行し、3番目の部分質問に対する回答として、「A3: データを取得して、グラフを描画するためのpython code」を得る。“python code”はここでは簡略化しているが、実際にはコード実行部190で実行可能な形式のプログラムコード列である。なお“A3”は、回答を識別する識別情報である。
【0062】
[13]出力チェック部170
出力チェック部170は、回答A3がプログラムコードを含むため、コード実行部190に、回答A3を渡す。あるいは出力チェック部170は、質問実行制御部120から回答A3の出力指示を受け、当該出力指示に従って、回答A3をコード実行部190に出力してもよい。
【0063】
[14]コード実行部190
最後の部分質問である「Q4:生成されたpythonコードの実行と可視化」を質問実行制御部120が実行することにより、pythonコードの実行と可視化の指示がコード実行部190に送られるコード実行部190は、指示に従って、出力チェック部170から受けた回答A3に含まれるpythonコード(プログラムコード)を実行することにより、グラフを描画する。このとき、グラフの描画のために必要なセンサの時系列データは、プログラムコードに含まれるセンサの識別情報に基づきセンサ時系列DB200から取得する。コード実行部190は、描画の結果のグラフを出力部210に渡す。出力部210は、グラフをユーザに可視可能に表示する。
【0064】
図6は、出力部210により表示されるグラフの例である。この例では空調吹き出し温度T2、室温T2、設定温度T1set(=27℃)のグラフがそれぞれ示される。これらのグラフを参照することで、エアコンが適正に動作しているかをユーザは判断できる。このグラフ出力形式は一例であり、他の形式で出力してもよい。例えば、(T001-27)のグラフと、(T004-T001)のグラフをそれぞれ算出して、表示してもよい。
【0065】
図7は、本実施形態に係る処理の一例を示すフローチャートである。
【0066】
質問入力部100がユーザから質問を受け付ける(S101)。
【0067】
質問分解部110が、ユーザの質問から複数の部分質問を生成し、これらの部分質問に順番を設定する(S102)。
【0068】
質問実行制御部120は、先頭の部分質問から順番に処理が実行されるよう制御する(S103)。
【0069】
プロンプト処理部130のDB選択部132は、質問実行制御部120から対象となる部分質問(次に処理すべき部分質問)を取得し、取得した部分質問に基づき、DB切り替えルール記憶部140におけるDB切り替えルールから、該当するDBを選択するとともに、該当するプロンプト本文を選択する(S104)。
【0070】
プロンプト生成部131は、選択DBからプロンプト本文又は部分質問に関連するデータを抽出し、抽出したデータと、選択したプロンプト本文とを文章テンプレートに反映させて、LLM用のプロンプトを生成する(同S104)。この際、選択したプロンプト本文を、前回までの部分質問(又は前回までのプロンプト)に対する回答に基づいて編集する場合もあり得る。
【0071】
LLM実行部160は、生成されたプロンプトを入力としてLLM処理を実行し、回答を生成する(S105)。
【0072】
出力チェック部170は、回答の内容に問題があるかをチェックし(S106)、問題があれば、プロンプト修正部180が、回答の内容に基づく修正指示をプロンプト処理部130又はプロンプト生成部131に送り、プロンプトを修正させる(S107)。回答の内容に問題がなく、最後の部分質問の回答でもなければ(S108)、次の部分質問の処理に移る(S103)。
【0073】
質問実行制御部120は最後の部分質問の処理を行ったら、最後の部分質問に対応する回答をユーザの質問に対する回答として、出力部210がユーザに可視可能に表示する(S109)。
【0074】
以上、本実施形態によれば、ユーザの質問から具体性を高めた複数の部分質問を生成し、複数の部分質問を順番に処理するようにしたことにより、正確性を高めた回答が可能となる。
【0075】
また本実施形態によれば、部分質問に関連するDBを選択し、選択したDBのデータをLLMのプロントにコンテキスト情報として含めることにより、LLM実行部160はLLM処理においてより正確な回答を得ることができる。
【0076】
また本実施形態によれば、部分質問に関連するプロンプト本文を選択し、選択したプロント本文(又は当該プロンプト本文は前回までの回答に基づき編集したプロンプト本文)を、部分質問に対するLLMのプロントに追加することにより、より正確な回答を部分質問に対して得ることができる。つまり部分質問自体はLLMから正確な回答を導くために十分的確な記載となっていなくても、プロンプト本文として予め正確な回答が得られると見込まれる表現の質問を用意しておき、部分質問自体の代わりに、該当するプロンプト本文を利用することで、部分質問に対するより的確な回答を得ることが期待できる。またプロンプト本文に前回の部分質問の回答に含まれる値を反映させる変数を含めることなどを行うことにより、前回の回答を次の部分質問に反映させることが容易にできる。ただし、前回の部分質問に対する回答を次の部分質問に反映させることを実現する方法は、変数を含める方法に限定されない。例えば前回の部分質問の回答を、次の部分質問に対して選択されたプロンプト本文にそのまま追加してもよい。
【0077】
本実施形態に係る情報処理装置10の構成要素の一部を外部のサーバで構成してもよい。例えば、LLM実行部160の機能を備えたサーバをインターネット等のネットワークに配置する。情報処理装置10がサーバにプロンプトを、当該ネットワークを介して送信し、サーバから回答を受信してもよい。この場合、サーバと通信する通信部を情報処理装置10に設ける。同様に、コード実行部190の機能を備えたサーバを用意し、実行対象となるpythonコードをサーバに送信し、サーバからコードの実行結果を取得するようにしてもよい。
【0078】
(ハードウェア構成)
図19は、各実施形態に係る情報処理装置のハードウェア構成を示す。情報処理装置は、コンピュータ装置900により構成される。コンピュータ装置900は、CPU901と、入力インタフェース902と、表示装置903と、通信装置904と、主記憶装置905と、外部記憶装置906とを備え、これらはバス907により相互に接続されている。
【0079】
CPU(中央演算装置)901は、主記憶装置905上で、コンピュータプログラムである情報処理プログラムを実行する。情報処理プログラムは、情報処理装置の上述の各機能構成を実現するプログラムのことである。情報処理プログラムは、1つのプログラムではなく、複数のプログラムやスクリプトの組み合わせにより実現されていてもよい。CPU901が、情報処理プログラムを実行することにより、各機能構成は実現される。
【0080】
入力インタフェース902は、キーボード、マウス、及びタッチパネルなどの入力装置からの操作信号を、情報処理装置に入力するための回路である。入力インタフェース902は各実施形態に係る情報処理装置の入力部に対応する。
【0081】
表示装置903は、情報処理装置から出力されるデータを表示する。表示装置903は、例えば、LCD(液晶ディスプレイ)、有機エレクトロルミネッセンスディスプレイ、CRT(ブラウン管)、又はPDP(プラズマディスプレイ)であるが、これに限られない。コンピュータ装置900から出力されたデータは、この表示装置903に表示することができる。表示装置903は各実施形態に係る情報処理装置の出力部に対応する。
【0082】
通信装置904は、情報処理装置が外部装置と無線又は有線で通信するための回路である。データは、通信装置904を介して外部装置から入力することができる。外部装置から入力したデータを、主記憶装置905や外部記憶装置906に格納することができる。
【0083】
主記憶装置905は、情報処理プログラム、情報処理プログラムの実行に必要なデータ、及び情報処理プログラムの実行により生成されたデータなどを記憶する。情報処理プログラムは、主記憶装置905上で展開され、実行される。主記憶装置905は、例えば、RAM、DRAM、SRAMであるが、これに限られない。各実施形態に係る情報処理装置の各記憶部又はデータベースは、主記憶装置905上に構築されてもよい。
【0084】
外部記憶装置906は、情報処理プログラム、情報処理プログラムの実行に必要なデータ、及び情報処理プログラムの実行により生成されたデータなどを記憶する。これらの情報処理プログラムやデータは、情報処理プログラムの実行の際に、主記憶装置905に読み出される。外部記憶装置906は、例えば、ハードディスク、光ディスク、フラッシュメモリ、及び磁気テープであるが、これに限られない。情報処理装置の各記憶部又はデータベースは、外部記憶装置906上に構築されてもよい。
【0085】
なお、情報処理プログラムは、コンピュータ装置900に予めインストールされていてもよいし、CD-ROMなどの記憶媒体に記憶されていてもよい。また、情報処理プログラムは、インターネット上にアップロードされていてもよい。
【0086】
また、情報処理装置は、単一のコンピュータ装置900により構成されてもよいし、相互に接続された複数のコンピュータ装置900からなるシステムとして構成されてもよい。
【0087】
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
【0088】
本実施形態は、以下のように構成することもできる。
[項目1]
それぞれ異なる種類のデータを格納した複数のデータベースのうち、入力された質問に対応するデータベースを前記質問の内容に基づいて選択し、
選択したデータベースと、前記質問とに基づいて、言語モデルに入力するためのプロンプトを生成し、前記プロンプトと前記言語モデルとに基づいて回答を生成する、処理部
を備えた情報処理装置。
[項目2]
前記処理部は、前記複数のデータベースと、複数の質問とを対応づけた切り替えルールに基づき、前記入力された質問にマッチする質問を特定し、特定した前記質問に対応するデータベースを選択する
項目1に記載の情報処理装置。
[項目3]
前記処理部は、前記質問に基づき、複数の部分質問の生成と、前記複数の部分質問の順番の決定とを行い、
前記順番に従って、前記複数の部分質問から第1部分質問を選択し、前記第1部分質問の内容に基づいて第1データベースを選択し、
前記第1データベースと、前記第1部分質問とに基づいて、前記言語モデルに入力するための第1プロンプトを生成し、前記第1プロンプトと前記言語モデルとに基づいて、前記第1部分質問の回答を生成し、
前記順番に従って、前記複数の部分質問から第2部分質問を選択し、前記第2部分質問の内容に基づいて第2データベースを選択し、前記第2データベースと、前記第2部分質問と、前記第1部分質問の回答とに基づいて、前記言語モデルに入力するための第2プロンプトを生成する
項目2に記載の情報処理装置。
[項目4]
前記切り替えルールは、前記複数の質問に、前記プロンプトに含める質問を作成するための複数のプロンプト本文を対応づけ、
前記処理部は、前記切り替えルールから前記第1部分質問の内容に基づいて第1プロンプト本文を選択し、前記第1データベースと、前記第1プロンプト本文とに基づいて、前記第1プロンプトを生成し、
前記処理部は、前記切り替えルールから前記第2部分質問の内容に基づいて第2プロンプト本文を選択し、前記第2データベースと、前記第2プロンプト本文と、前記第1部分質問の回答とに基づいて、前記第2プロンプトを生成する
項目3に記載の情報処理装置。
[項目5]
前記第2プロンプト本文には変数が含まれており、前記変数に前記第1部分質問の回答に含まれる値を割り当てることにより前記第2プロンプト本文を更新し、更新された前記第2プロンプト本文と、前記第2データベースとに基づいて、前記第2プロンプトを生成する
項目4に記載の情報処理装置。
[項目6]
前記処理部は、生成した前記回答が、前記回答の元となった前記プロンプト又は前記質問に整合するかを判断し、整合しない場合は、前記回答において整合しない箇所に基づいて前記プロンプトを修正し、修正後のプロンプトと、前記言語モデルとに基づいて回答を再生成する
項目1~5のいずれか一項に記載の情報処理装置。
[項目7]
前記処理部は、生成した前記回答が、前記回答の元となった前記プロンプト又は前記質問に整合するかを判断し、整合しない場合は、前記回答において整合しない箇所と前記回答をユーザに提示し、前記ユーザから前記プロンプトの修正指示を受け、前記修正指示に基づいて前記プロンプトを修正し、修正後のプロンプトと、前記言語モデルとに基づいて回答を再生成する
項目1~6のいずれか一項に記載の情報処理装置。
[項目8]
前記処理部は、前記選択されたデータベースに格納されているデータのうち、前記質問に関連するデータを抽出し、抽出したデータと、前記質問とに基づいて前記プロンプトを生成する
項目1~7のいずれか一項に記載の情報処理装置。
[項目9]
前記質問を格納する第1フィールドと、前記データベースのデータを格納する第2フィールドとを含む、プロンプト生成用の文章テンプレートを用いて、前記第1フィールドに前記質問を格納し、前記第2フィールドに前記抽出したデータを格納することにより前記プロンプトを生成する
項目8に記載の情報処理装置。
[項目10]
前記回答にプログラムコードが含まれる場合に、前記回答に含まれる前記プログラムコードを実行するコード実行部
をさらに備えた項目1~9のいずれか一項に記載の情報処理装置。
[項目11]
前記コード実行部は、前記プログラムコードにセンサを表す変数と、前記変数の値に基づいて処理を実行する命令とが含まれる場合に、前記センサの時系列データを格納した時系列データベースから前記センサのデータを読み出し、読み出した前記データを前記変数に割り当てて、前記命令を実行し、前記処理の結果を出力する
項目10に記載の情報処理装置。
[項目12]
前記命令は前記変数のデータに基づいてグラフを生成する命令であり、
前記コード実行部は、前記処理の結果としてグラフを出力する
項目11に記載の情報処理装置。
[項目13]
前記入力された質問は、ユーザから入力された質問であり、
前記処理の結果をユーザに可視可能に表示する出力部
をさらに備えた項目11又は12に記載の情報処理装置。
[項目14]
前記言語モデルを実行する言語モデル実行部を備え、
前記処理部は、前記言語モデル実行部に前記プロンプトを入力することにより前記言語モデル実行部から前記回答を取得する
項目1~13のいずれか一項に記載の情報処理装置。
[項目15]
前記言語モデルは、大規模言語モデルである
項目14に記載の情報処理装置。
[項目16]
前記質問は、複数のセンサが配置され、前記センサによって状態が監視される施設の前記状態に関する質問であり、
前記複数のデータベースは、前記監視する状態の種類に関するデータベース、前記施設が備えている設備に関するデータベース、前記センサに関するデータベースを少なくとも含む
項目1~15のいずれか一項に記載の情報処理装置。
[項目17]
前記処理部は、どのような部分質問をどのような順序で行えば前記質問に対する正しい回答を得ることができるかを計画するプランニングのアルゴリズムを前記質問に対して適用することにより前記複数の部分質問の生成と、前記複数の部分質問の順番の決定とを行う
項目3~5のいずれか一項に記載の情報処理装置。
[項目18]
アプリケーションの画面を介してユーザから前記質問の入力を受け付ける質問入力部をさらに備え、
前記処理部は、前記質問入力部で入力された前記質問を対象に前記複数の部分質問の生成と、前記複数の部分質問の順番の決定とを行う
項目17に記載の情報処理装置。
[項目19]
それぞれ異なる種類のデータを格納した複数のデータベースのうち、入力された質問に対応するデータベースを前記質問の内容に基づいて選択し、
選択したデータベースと、前記質問とに基づいて、言語モデルに入力するためのプロンプトを生成し、前記プロンプトと前記言語モデルとに基づいて回答を生成する、
情報処理方法。
[項目20]
それぞれ異なる種類のデータを格納した複数のデータベースのうち、入力された質問に対応するデータベースを前記質問の内容に基づいて選択するステップと、
選択したデータベースと、前記質問とに基づいて、言語モデルに入力するためのプロンプトを生成し、前記プロンプトと前記言語モデルとに基づいて回答を生成するステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【符号の説明】
【0089】
10 情報処理装置
100 質問入力部
110 質問分解部
120 質問実行制御部
130 プロンプト処理部
131 プロンプト生成部
132 DB選択部
140 DB切り替えルール記憶部
150 DB記憶部
160 LLM実行部
170 出力チェック部
180 プロンプト修正部
190 コード実行部
210 出力部
310 フィールド
320 フィールド
900 コンピュータ装置
902 入力インタフェース
903 表示装置
904 通信装置
905 主記憶装置
906 外部記憶装置
907 バス
151 省エネ施策DB
153 センサ接点DB
154 pythonコード生成DB
155 センサデータ辞書DB
200 センサ時系列DB
Q 質問
Q1 部分質問
Q2 部分質問
Q3 部分質問
Q4 部分質問
【要約】
【課題】質問に対して正確性を高めた回答を可能とする情報処理装置、情報処理方法及びコンピュータプロググラムを提供する。
【解決手段】本実施形態に係る情報処理装置は、それぞれ異なる種類のデータを格納した複数のデータベースのうち、入力された質問に対応するデータベースを前記質問の内容に基づいて選択し、選択したデータベースと、前記質問とに基づいて、言語モデルに入力するためのプロンプトを生成し、前記プロンプトと前記言語モデルとに基づいて回答を生成する、処理部を備えている。
【選択図】図1
図1
図2
図3
図4
図5
図6
図7
図8