(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025071757
(43)【公開日】2025-05-08
(54)【発明の名称】文書選択装置、プログラム及び文書選択方法
(51)【国際特許分類】
G06F 40/186 20200101AFI20250428BHJP
【FI】
G06F40/186
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2024075210
(22)【出願日】2024-05-07
(31)【優先権主張番号】P 2023182050
(32)【優先日】2023-10-23
(33)【優先権主張国・地域又は機関】JP
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
(71)【出願人】
【識別番号】504103984
【氏名又は名称】ウイングアーク1st株式会社
(74)【代理人】
【識別番号】100190621
【弁理士】
【氏名又は名称】崎間 伸洋
(74)【代理人】
【識別番号】100212510
【弁理士】
【氏名又は名称】笠原 翔
(72)【発明者】
【氏名】斎藤 学
(72)【発明者】
【氏名】安田 昂平
(72)【発明者】
【氏名】藤原 秀一
【テーマコード(参考)】
5B109
【Fターム(参考)】
5B109NA04
(57)【要約】
【課題】作成したい文書に適したテンプレートの選択を従来よりも容易に行うことができる文書選択装置、プログラム及び文書選択方法を提供すること。
【解決手段】実施形態の文書選択装置は、第1の取得部を備える。第1の取得部は、文書の特徴を示す第1の文字列、及び文書のテンプレートを複数含むデータベースから前記特徴に適合する前記テンプレートを選択するように指示する第2の文字列を含む第1のプロンプトと、前記データベースとを学習済みの言語モデルに入力することで、前記言語モデルから、前記特徴に適合する前記テンプレートを示す出力を取得する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
文書の特徴を示す第1の文字列、及び文書のテンプレートを複数含むデータベースから前記特徴に適合する前記テンプレートを選択するように指示する第2の文字列を含む第1のプロンプトと、前記データベースとを学習済みの言語モデルに入力することで、前記言語モデルから、前記特徴に適合する前記テンプレートを示す出力を取得する第1の取得部を備える文書選択装置。
【請求項2】
前記第1の文字列は、ユーザーによって入力された文章を含む、請求項1に記載の文書選択装置。
【請求項3】
前記第1の文字列は、前記文書に入力する項目の項目名を示す文字列を含む、請求項1又は請求項2に記載の文書選択装置。
【請求項4】
前記第2の文字列は、前記データベースから前記特徴に適合する前記テンプレートを、適合度順に予め定められた2以上の数選択するように指示する文字列であり、
前記出力は、前記特徴に適合する前記数の前記テンプレートを示す、請求項1に記載の文書選択装置。
【請求項5】
前記出力によって示された前記テンプレートを、前記文書に入力する項目の項目名及び前記文書に入力する入力データの少なくともいずれかを含む第1のデータに基づいて修正する、請求項1に記載の文書選択装置。
【請求項6】
前記出力によって示された前記テンプレートに加える変更の内容を示す第3の文字列、及びソフトウェアに入力することで前記ソフトウェアに前記変更を実行させる第2のデータを出力するように指示する第4の文字列を含む第2のプロンプトを前記言語モデルに入力することで、前記言語モデルから出力される前記第2のデータを取得する第2の取得部をさらに備える、請求項1に記載の文書選択装置。
【請求項7】
前記第2のデータを実行することで前記テンプレートに前記変更を加える実行部をさらに備える、請求項6に記載の文書選択装置。
【請求項8】
前記第4の文字列は、前記変更に適した前記ソフトウェアを選択するように指示する文字列を含む、請求項6に記載の文書選択装置。
【請求項9】
前記文書は、帳票である、請求項1に記載の文書選択装置。
【請求項10】
文書選択装置が備えるプロセッサーを、
文書の特徴を示す第1の文字列、及び文書のテンプレートを複数含むデータベースから前記特徴に適合する前記テンプレートを選択するように指示する第2の文字列を含む第1のプロンプトと、前記データベースとを学習済みの言語モデルに入力することで、前記言語モデルから、前記特徴に適合する前記テンプレートを示す出力を取得する第1の取得部として機能させるプログラム。
【請求項11】
文書の特徴を示す第1の文字列、及び文書のテンプレートを複数含むデータベースから前記特徴に適合する前記テンプレートを選択するように指示する第2の文字列を含む第1のプロンプトと、前記データベースとを学習済みの言語モデルに入力することで、前記言語モデルから、前記特徴に適合する前記テンプレートを示す出力を取得する文書選択方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書選択装置、プログラム及び文書選択方法に関する。
【背景技術】
【0002】
帳票などの文書の作成者は、テンプレートを用いて文書を作成する場合がある。しかしながら、作成したい文書に適したテンプレートの選択には手間がかかる場合がある。また、作成したい文書に適したテンプレートの選択には技術が必要となる場合がある。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の実施形態が解決しようとする課題は、作成したい文書に適したテンプレートの選択を従来よりも容易に行うことができる文書選択装置、プログラム及び文書選択方法を提供することである。
【課題を解決するための手段】
【0005】
実施形態の文書選択装置は、第1の取得部を備える。第1の取得部は、文書の特徴を示す第1の文字列、及び文書のテンプレートを複数含むデータベースから前記特徴に適合する前記テンプレートを選択するように指示する第2の文字列を含む第1のプロンプトと、前記データベースとを学習済みの言語モデルに入力することで、前記言語モデルから、前記特徴に適合する前記テンプレートを示す出力を取得する。
【図面の簡単な説明】
【0006】
【
図1】実施形態に係る文書生成装置の要部構成の一例を示すブロック図。
【
図2】
図1中のプロセッサーによる処理の一例を示すフローチャート。
【
図3】
図1中のプロセッサーによる処理の一例を示すフローチャート。
【発明を実施するための形態】
【0007】
以下、実施形態に係る文書生成装置について図面を用いて説明する。なお、以下の実施形態の説明に用いる各図面は、各部の縮尺を適宜変更している場合がある。また、以下の実施形態の説明に用いる各図面は、説明のため、構成を省略して示している場合がある。また、各図面及び本明細書中において、同一の符号は同様の要素を示す。
【0008】
図1は、実施形態に係る文書生成装置100の要部構成の一例を示すブロック図である。なお、各装置の各構成要素は、内蔵であっても外付けであっても良い。
【0009】
文書生成装置100は、LLM(large language model)を用いて、複数の文書テンプレートの中から適切なものを選択する装置である。また、文書生成装置100は、選択した文書テンプレートを修正及び編集する装置である。文書テンプレートは、文書のテンプレートである。文書生成装置100が扱う文書は、電子文書である。文書生成装置100が扱う文書は、書類であることが好ましく、帳票であることがより好ましい。文書生成装置100は、一例として、プロセッサー110、ROM(read-only memory)120、RAM(random-access memory)130、補助記憶装置140、入力デバイス150、表示デバイス160及び通信インターフェース170を含む。そして、バス180などが、これら各部を接続する。なお、文書生成装置100は、文書選択装置の一例である。
【0010】
プロセッサー110は、文書生成装置100の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分であり、各種演算及び処理などを行う。プロセッサー110は、例えば、CPU(central processing unit)、MPU(micro processing unit)、SoC(system on a chip)、DSP(digital signal processor)、GPU(graphics processing unit)、ASIC(application specific integrated circuit)、PLD(programmable logic device)又はFPGA(field-programmable gate array)などである。あるいは、プロセッサー110は、これらのうちの複数を組み合わせたものである。また、プロセッサー110は、これらにハードウェアアクセラレーターなどを組み合わせたものであっても良い。プロセッサー110は、ROM120又は補助記憶装置140などに記憶されたファームウェア、システムソフトウェア及びアプリケーションソフトウェアなどのプログラムに基づいて、文書生成装置100の各種の機能を実現するべく各部を制御する。また、プロセッサー110は、当該プログラムに基づいて後述する処理を実行する。なお、当該プログラムの一部又は全部は、プロセッサー110の回路内に組み込まれていても良い。
【0011】
ROM120及びRAM130は、プロセッサー110を中枢としたコンピューターの主記憶装置である。ROM120は、専らデータの読み出しに用いられる不揮発性メモリである。ROM120は、上記のプログラムのうち、例えばファームウェアなどを記憶する。また、ROM120は、プロセッサー110が各種の処理を行う上で使用するデータなども記憶する。
【0012】
RAM130は、データの読み書きに用いられるメモリである。RAM130は、プロセッサー110が各種の処理を行う上で一時的に使用するデータを記憶するワークエリアなどとして利用される。RAM130は、典型的には揮発性メモリである。
【0013】
補助記憶装置140は、プロセッサー110を中枢としたコンピューターの補助記憶装置である。補助記憶装置140は、例えばEEPROM(electric erasable programmable read-only memory)、HDD(hard disk drive)又はフラッシュメモリなどである。補助記憶装置140は、上記のプログラムのうち、例えば、システムソフトウェア及びアプリケーションソフトウェアなどを記憶する。また、補助記憶装置140は、プロセッサー110が各種の処理を行う上で使用するデータ、プロセッサー110での処理によって生成されたデータ及び各種の設定値などを記憶する。
【0014】
補助記憶装置140が記憶するアプリケーションソフトウェアは、指示データによる操作が可能なアプリケーションソフトウェア(以下「指示アプリ」という。)を1つ以上含む。指示データは、指示アプリが実行する動作の内容が記述されたデータである。指示アプリは、指示データを読み込んだ場合、当該指示データが示す動作を自動で実行する。なお、指示データを含むファイルを指示ファイルというものとする。指示ファイルは、一例として、指示データがテキスト形式で記述されたファイルである。テキスト形式で記述されたファイルは、例えば、バッチファイルである。なお、指示ファイルのデータ形式は他の形式であっても良い。指示データは、マクロと呼ばれる場合もある。
【0015】
補助記憶装置140が記憶するデータは、一例として、LLM141、文書DB(database)142、ベクトル化DB(database)143及びソフトウェアDB144を含む。
【0016】
LLM141は、学習済みのAI(artificial intelligence)モデルである。LLM141は、自然言語処理が可能な言語モデルである。LLM141は、周知のLLMと同様であって良い。したがって、LLM141の詳細な説明は省略する。
【0017】
文書DB142は、複数の文書テンプレートを記憶したデータベースである。文書DB142は、各文書テンプレートについて、種類、サイズ及びレイアウトなどの情報を含む。レイアウトは、文書が縦書きであるか横書きであるかを示す情報を含む。文書の種類の例としては、発注書及び請求書などを挙げることができる。発注書及び請求書は、いずれも帳票である。また、文書DB142は、各文書テンプレートについてその文書テンプレートの特徴を示すメタデータ付与されていることが好ましい。文書テンプレートのファイル形式は、例えば、SVF(Super Visual Formade)などのXML(Extensible Markup Language)である。文書テンプレートのファイル形式は、その他のファイル形式であっても良い。
【0018】
ベクトル化DB143は、ベクトル化された文書DB142であるベクトル化DB143は、例えば、ベクトルデータベースである。プロセッサー110は、文書DB142をベクトル化することでベクトル化DB143を生成する。
【0019】
ソフトウェアDB144は、指示アプリごとに、指示アプリについての情報を記憶するデータベースである。指示アプリについての情報は、当該指示ソフト用の指示データの仕様を示す情報を含む。また、指示アプリについての情報は、例えば、指示アプリがどのようなアプリケーションソフトウェアであるかを示す情報、及びどのような機能を有するかを示す情報を含む。ソフトウェアDB144は、ベクトルデータベースであることが好ましい。
【0020】
入力デバイス150は、文書生成装置100の操作者(以下、単に「操作者」という。)による操作を受け付ける。入力デバイス150は、例えば、キーボード、キーパッド、タッチパッド、マウス又はコントローラーなどである。また、入力デバイス150は、音声入力用のデバイスであっても良い。なお、操作者は、ユーザーの一例である。
【0021】
表示デバイス160は、操作者などに各種情報を通知するための画面を表示する。表示デバイス160は、例えば、液晶ディスプレイ又は有機EL(electro-luminescence)ディスプレイなどのディスプレイである。また、入力デバイス150及び表示デバイス160としては、タッチパネルを用いることもできる。すなわち、タッチパネルが備える表示パネルを表示デバイス160として、タッチパネルが備える、タッチ入力によるポインティングデバイスを入力デバイス150として用いることができる。
【0022】
通信インターフェース170は、文書生成装置100がインターネット及びLAN(local area network)などのネットワークを介して通信するためのインターフェースである。
【0023】
バス180は、コントロールバス、アドレスバス及びデータバスなどを含み、文書生成装置100の各部で授受される信号を伝送する。
【0024】
以下、実施形態に係る文書生成装置100の動作を
図2及び
図3などに基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。
図2及び
図3は、文書生成装置100のプロセッサー110による処理の一例を示すフローチャートである。プロセッサー110は、例えば、ROM120又は補助記憶装置140などに記憶されたプログラムに基づいて
図2及び
図3の処理を実行する。
【0025】
図2のステップST11において文書生成装置100のプロセッサー110は、指示の入力の受付を開始するか否かを判定する。操作者は、作成したい文書を文書生成装置100に指示したい場合、入力デバイス150を用いて当該指示を行うことを示す操作を行う。プロセッサー110は、当該操作に応じて指示の入力の受付を開始すると判定する。なお、操作者が作成したい文書を以下「所望文書」というものとする。プロセッサー110は、指示の入力の受付を開始すると判定しないならば、ステップST11においてNoと判定してステップST11の処理を繰り返す。対して、プロセッサー110は、指示の入力の受付を開始すると判定するならば、ステップST11においてYesと判定してステップST12へと進む。
【0026】
ステップST12においてプロセッサー110は、第1入力画面に対応した画像を生成する。そして、プロセッサー110は、生成したこの画像を表示するように表示デバイス160に対して指示する。表示の指示を受けて表示デバイス160は、第1入力画面を表示する。
【0027】
第1入力画面は、所望文書がどのような文書であるかを指示する入力を受け付けるための画面である。第1入力画面は、一例として、当該指示の内容を入力するための入力欄を含む。操作者は、例えば、入力デバイス150を用いて当該入力欄に指示内容を入力する。なお、操作者は、指示内容を例えば自然言語で入力する。指示内容は、例えば、所望文書がどのような文書であるかを示す内容である。指示内容は、例えば、文書の種類を示す内容を含む。第1入力画面に入力欄に入力される文章の一例として、「項目データから請求書を作成して」のような文章を挙げることができる。項目データについては後述する。
【0028】
また、第1入力画面は、指示決定ボタンを含む。指示決定ボタンは、指示内容を決定する場合に操作者が操作するためのボタンである。操作者は、入力欄に指示内容を入力した状態で指示決定ボタンを操作する。
【0029】
なお、プロセッサー110は、音声によって指示内容の入力を受け付けても良い。この場合、プロセッサー110は、第1入力画面を表示しなくても良い。
【0030】
ステップST13においてプロセッサー110は、指示内容が決定されるのを待ち受ける。すなわちプロセッサー110は、第1入力画面において指示内容が入力された状態で指示決定ボタンを操作するなどの予め定められた操作が行われるのを待ち受ける。プロセッサー110は、指示内容の入力が音声によって行われる場合には、例えば、指示を示す発声が終わったとみなした場合に指示内容が決定されたとみなす。プロセッサー110は、指示内容が決定されたと判定するならば、ステップST13においてYesと判定してステップST14へと進む。
【0031】
ステップST14においてプロセッサー110は、所望文書に対応した項目データを取得する。このために、プロセッサー110は、例えば、当該項目データとしてどのデータを用いるかを指示する入力を受け付ける。操作者は、入力デバイス150を操作するなどして、どのデータを当該項目データとして用いるかを文書生成装置100に指示する。例えば、補助記憶装置140が当該項目データを記憶している。プロセッサー110は、指示されたデータを項目データとして補助記憶装置140などから取得する。なお、プロセッサー110は、複数の項目データを取得しても良い。
【0032】
項目データは、文字列で構成されるデータである。項目データは、操作者が所望文書に入力したい各項目の項目名を含むデータである。項目データは、項目名のみならず、各項目に入力するデータ(以下「入力データ」という。)を含んでも良い。項目名の例として、会社名、住所、期間、日付、販売数、請求金額、及び売上金額などを挙げることができる。項目データは、例えば、CSV(comma-separated values)形式などのDSV(delimiter-separated values)形式のデータ、又はその他の構造化データである。あるいは、項目データは、その他のデータ形式であっても良い。なお、項目データは、文書に入力する項目の項目名及び文書に入力する入力データの少なくともいずれかを含む第1のデータの一例である。
【0033】
ステップST15においてプロセッサー110は、LLM141にプロンプト及びベクトル化DB143を入力する。当該プロンプトは、第1入力画面において操作者によって入力された指示内容、ステップST14で取得された項目データ、及び第1基本指示文章を含む。第1基本指示文章は、一例として以下の(A1)又は(A2)のいずれかの内容の文章を含む。また、第1基本指示文章は、以下の(A3)の内容の文章を含んでも良い。なお、Nは、予め定められた2以上の整数である。
【0034】
(A1)入力された指示内容と、入力された項目データが示す項目とに適した文書テンプレートをベクトル化DB143から1個選択してその名称を示すように指示することを示す内容の文章。
(A2)入力された指示内容と、入力された項目データが示す項目とに適した文書テンプレートを適した順にN個ベクトル化DB143から選択して、選択したそれぞれの名称を示すように指示することを示す内容の文章。
(A3)特定のフォーマットで回答を出力するように指示する内容の文章。特定のフォーマットは、例えば、データ記述言語又はその他のコンピューター言語である。当該データ記述言語の一例は、JSON(JavaScript Object Notation)である。
【0035】
プロセッサー110は、当該プロンプト及びベクトル化DB143が入力されたLLM141を実行する。プロセッサー110が実行するLLM141は、当該入力に対する出力を生成する。すなわち、LLM141は、当該プロンプトが示す指示に対する回答を生成して出力する。なお、プロセッサー110は、ベクトル化DB143に代えて文書DB142をLLM141に入力しても良い。LLM141は、入力されるプロンプトに基づき、当該プロンプトが示す内容を解析してその回答を生成する。
【0036】
LLM141は、例えば、入力された指示内容をベクトル化して、ベクトル化DB143と比較を行うことで、適した文書テンプレートを選択する。
【0037】
ステップST16においてプロセッサー110は、LLM141が回答を出力するのを待ち受ける。プロセッサー110は、LLM141が回答を出力したならば、当該回答を取得する。
【0038】
ステップST15において入力されるプロンプトは、第1の文字列及び第2の文字列を含む第1のプロンプトの一例である。ステップST15において入力されるプロンプト中の指示内容及び項目データのそれぞれは、文書の特徴を示す第1の文字列の一例である。第1基本指示文章は、文書のテンプレートを複数含むデータベースから特徴に適合するテンプレートを選択するように指示する第2の文字列の一例である。(A2)は、データベースから特徴に適合するテンプレートを、適合度順に予め定められた2以上の数選択するように指示する文字列の一例である。
【0039】
以上より、プロセッサー110は、ステップST15及びステップST16の処理を行うことで、第1の取得部の一例として機能する。第1の取得部は、第1のプロンプトと、データベースとを学習済みの言語モデルに入力することで、言語モデルから、特徴に適合するテンプレートを示す出力を取得する。
【0040】
ステップST17においてプロセッサー110は、第1結果画面に対応した画像を生成する。そして、プロセッサー110は、生成したこの画像を表示するように表示デバイス160に対して指示する。表示の指示を受けて表示デバイス160は、第1結果画面を表示する。
【0041】
第1結果画面は、ステップST16において取得された回答内容を操作者に報知するための画面である。第1結果画面は、当該回答内容を含む。当該回答内容は、LLM141によってベクトル化DB143から選択された1個又はN個の文書テンプレートの名称を含むことが期待される。また、当該回答内容がN個の文書テンプレートの名称を含む場合、当該名称は、操作者によって入力された指示内容及びステップST14で取得された項目データに適した順に表示されることが期待される。ここでは、当該回答内容が上記の期待される内容を含むものとして以降の処理を説明する。なお、プロセッサー110は、当該回答内容が上記の期待される内容を含まない場合には、例えば、予め定められた例外処理を行っても良い。
【0042】
また、第1結果画面に表示された1個又はN個の文書テンプレートの名称は、選択が可能となっている。さらに、第1結果画面は、文書決定ボタンを含む。指示決定ボタンは、使用する文書テンプレートを決定する場合に操作者が操作するためのボタンである。操作者は、使用したい文書テンプレートを選択した状態で文書決定ボタンを操作する。なお、第1結果画面に表示された文書テンプレートが1個である場合、操作者は、文書テンプレートを選択せずに文書決定ボタンを操作しても良い。この場合、プロセッサー110は、当該1個の文書テンプレートが選択されているものとみなす。
【0043】
ステップST18においてプロセッサー110は、使用する文書テンプレートが決定されるのを待ち受ける。すなわちプロセッサー110は、文書テンプレートが選択された状態で文書決定ボタンを操作するなどの予め定められた操作が行われるのを待ち受ける。プロセッサー110は、使用する文書テンプレートが決定されたならば、ステップST18においてYesと判定してステップST19へと進む。
【0044】
なお、プロセッサー110は、LLM141に入力した第1基本指示文章において1個の文書テンプレートを選択するように指示している場合、且つ第1結果画面に表示された文書テンプレートの数が1個である場合、ステップST18の処理をスキップしてもステップST19へと進んでも良い。この場合、プロセッサー110は、第1結果画面に表示された1個の文書テンプレートが選択されているものとみなす。
【0045】
ステップST19においてプロセッサー110は、文書DB142を参照して、第1結果画面において選択された文書テンプレートを取得する。
【0046】
ステップST20においてプロセッサー110は、ステップST14で取得した項目データに基づき、ステップST19で取得した文書テンプレートを修正する。例えば、プロセッサー110は、項目データ中の入力データの期間に応じて文書テンプレートを修正する。例えば、入力データが5か月間の期間のデータであるならば、プロセッサー110は、文書テンプレートを、5か月の期間分のデータを入力可能なように修正する。また、プロセッサー110は、例えば、項目データにはあるが文書テンプレートには無い項目を、文書プレートに追加する。また、プロセッサー110は、文書テンプレートに入力データを入力しても良い。プロセッサー110は、修正した文書テンプレートを補助記憶装置140などに記憶する。
【0047】
以上より、プロセッサー110は、ステップST20の処理を行うことで、修正部の一例として機能する。修正部は、出力によって示されたテンプレートを、文書に入力する項目の項目名及び文書に入力する入力データの少なくともいずれかを含むデータに基づいて修正する。
【0048】
ステップST21においてプロセッサー110は、LLM141に入力するデータ量を減らすために、文書テンプレートのデータ量を削減する。ここで、プロセッサー110は、ステップST20の処理後の文書テンプレートを用いる。ただし、プロセッサー110は、ステップST20で何の修正もしてない場合には、ステップST19で取得した文書テンプレートを用いても良い。プロセッサー110は、例えば、LLM141に不要なデータを文書データから省くことで文書テンプレートのデータ量を減らす。LLM141に不要なデータの一例を挙げると、色に関するデータである。ただし、必ずしも色に関するデータがLLM141に不要であるとは限らない。色を変更する可能性のあるデータでは色も必要なデータである。ステップST21の処理によってデータが削減された文書テンプレートを、以下「削減済みデータ」というものとする。プロセッサー110は、ステップST21の処理の後、
図3のステップST22へと進む。
【0049】
ステップST22においてプロセッサー110は、第2入力画面に対応した画像を生成する。そして、プロセッサー110は、生成したこの画像を表示するように表示デバイス160に対して指示する。表示の指示を受けて表示デバイス160は、第2入力画面を表示する。
【0050】
第2入力画面は、文書にどのような変更を行うかを指示する入力を受け付けるための画面である。第2入力画面は、一例として、当該指示の内容を入力するための入力欄を含む。操作者は、例えば、入力デバイス150を用いて当該入力欄に指示内容を入力する。なお、操作者は、指示内容を例えば自然言語で入力する。文書の変更の例としては、項目の追加及び削除、項目名の変更、テキストの変更及び削除、フォントの変更、書式設定の変更、並びに図形、画像、及びオブジェクトの追加、変更、移動、変形及び削除などを挙げるとことができる。当該指示の内容は、どの指示アプリを使用するかを指定する文章を含んでも良い。
【0051】
また、第2入力画面は、指示決定ボタン及び終了ボタンを含む。指示決定ボタンは、指示内容を決定する場合に操作者が操作するためのボタンである。操作者は、入力欄に指示内容を入力した状態で指示決定ボタンを操作する。終了ボタンは、文書の変更を終了する場合に操作者が操作するためのボタンである。
【0052】
なお、プロセッサー110は、音声によって指示内容の入力を受け付けても良い。この場合、プロセッサー110は、第2入力画面を表示しなくても良い。
【0053】
ステップST23においてプロセッサー110は、文書の変更を行わず終了するか否かを判定する。プロセッサー110は、文書の変更を終了すると判定しないならば、ステップST23においてNoと判定してステップST24へと進む。
【0054】
ステップST24においてプロセッサー110は、指示内容が決定されたか否かを判定する。プロセッサー110は、第2入力画面において指示内容が入力された状態で指示決定ボタンを操作するなどの予め定められた操作が行われた場合に指示内容が決定されたと判定する。プロセッサー110は、指示内容の入力が音声によって行われる場合には、例えば、指示を示す発声が終わったとみなした場合に指示内容が決定されたとみなす。プロセッサー110は、指示内容が決定されたと判定しないならば、ステップST24においてNoと判定してステップST23へと戻る。かくして、プロセッサー110は、文書の変更を終了すると判定するか、指示内容が決定されたと判定するまでステップST23及びステップST24を繰り返す待受状態となる。
【0055】
プロセッサー110は、ステップST23及びステップST24を繰り返す待受状態にあるときに指示内容が決定されたと判定するならば、ステップST24においてYesと判定してステップST25へと進む。
【0056】
ステップST25においてプロセッサー110は、LLM141にプロンプト及びソフトウェアDB144を入力する。当該プロンプトは、第2入力画面において操作者によって入力された指示内容、削減済みデータ、及び第2基本指示文章を含む。第2基本指示文章は、一例として、以下の(B1)~(B7)の内容の文章を含む。また、第2基本指示文章は、一例として、以下の(B7)又は(B8)のいずれかの内容の文章も含む。
【0057】
(B1)ソフトウェアDB144に示された仕様に準拠して指示データを作成するように指示することを示す内容の文章。
(B2)当該指示データは、入力された指示内容が示す変更を文書テンプレートに対して行うものであることを示す内容の文章。
(B3)当該指示データは、アプリ指定情報、対象指定情報及び実行内容情報を含むことを示す内容の文章。なお、アプリ指定情報、対象指定情報及び実行内容情報については後述する。
(B4)削減済みデータが、変更対象の文書テンプレートを示すことを示す内容の文章。
(B5)変更対象の文書テンプレートの保存場所を指定する文章。当該保存場所は、ステップST20の処理後の文書テンプレート又はステップST19で取得された文書テンプレートの保存場所である。
(B6)ソフトウェアDB144に指示アプリについての情報が含まれること、及び指示データの仕様がソフトウェアDB144に示されていることを示す内容の文章。
(B7)使用する指示アプリを指定する文章。
(B8)ソフトウェアDB144を参照して、入力された指示内容が示す変更を行うために適した指示アプリを選択し、どの指示アプリを選択したかを回答するように指示することを示す内容の文章。
【0058】
プロセッサー110は、当該プロンプト及びソフトウェアDB144が入力されたLLM141を実行する。プロセッサー110が実行するLLM141は、当該入力に対する出力を生成する。すなわち、LLM141は、当該プロンプトが示す指示に対する回答を生成して出力する。LLM141は、入力されるプロンプトに基づき、当該プロンプトが示す内容を解析してその回答を生成する。
【0059】
ステップST26においてプロセッサー110は、LLM141が回答を出力するのを待ち受ける。プロセッサー110は、LLM141が回答を出力したならば、当該回答を取得する。この回答は、指示データを含むことが期待される。また、当該指示データは、例えば、アプリ指定情報、対象指定情報及び実行内容情報を含むことが期待される。アプリ指定情報は、例えば、どの指示アプリを用いるかを示す情報を含む。アプリ指定情報は、例えば、当該指示アプリを起動することを指示するコマンドを含む。対象指定情報は、例えば、変更を加える対象のデータを特定可能な情報を含む。対象指定情報は、当該対象を開くことを指示するコマンドを含む。当該対象は、ステップST20の処理後の文書テンプレート又はステップST19で取得された文書テンプレートである。対象指定情報は、例えば、当該対象であるファイルの保存場所によって当該対象を特定する。実行内容情報は、指示アプリに実行させる内容を含む。当該内容は、第2入力画面において入力された指示内容が示すものである。アプリ指定情報、対象指定情報及び実行内容情報は、例えば、プログラミング言語、データ記述言語又はその他のコンピューター言語によって記述される。ここでは、回答内容が指示データを含み、当該指示データが、アプリ指定情報、対象指定情報及び実行内容情報を含むものとして以降の処理を説明する。なお、プロセッサー110は、回答内容が期待されるものでなかった場合には、例えば、予め定められた例外処理を行っても良い。
【0060】
実行内容情報の記述内容の一例を以下の{}内に示す。この例は、フォントサイズを20.0に変更することを示す。
{‘batch_commands’: [
{‘action’: ‘ChangeTextStyleItem’,
'itm_type': 'Text’,
'itm_name': '日付’,
'size': '20.0’}
]}
【0061】
ステップST25において入力されるプロンプトは、第3の文字列及び第4の文字列を含む第2のプロンプトの一例である。ステップST25において入力されるプロンプト中の指示内容は、出力によって示されたテンプレートに加える変更の内容を示す第3の文字列の一例である。ステップST26で取得される回答に含まれる指示データは、ソフトウェアに入力することでソフトウェアに変更を実行させる第2のデータの一例である。第2基本指示文章は、第2のデータを出力するように指示する第4の文字列の一例である。(B7)は、変更に適したソフトウェアを選択するように指示する文字列の一例である。
【0062】
以上より、プロセッサー110は、ステップST25及びステップST26の処理を行うことで、第2の取得部の一例として機能する。第2の取得部は、第2のプロンプトを言語モデルに入力することで、言語モデルから出力される前記第2のデータを取得する。
【0063】
ステップST27においてプロセッサー110は、第2結果画面に対応した画像を生成する。そして、プロセッサー110は、生成したこの画像を表示するように表示デバイス160に対して指示する。表示の指示を受けて表示デバイス160は、第2結果画面を表示する。
【0064】
第2結果画面は、ステップST26において取得された回答内容を操作者に報知するための画面である。第2結果画面は、例えば、第2入力画面に当該回答内容を加えたものである。
【0065】
ステップST28においてプロセッサー110は、ステップST26で取得した回答から、当該回答に含まれる指示データを取得する。そして、プロセッサー110は、当該指示データを含む指示ファイルを生成する。そして、プロセッサー110は、当該指示ファイルを補助記憶装置140などに記憶する。
【0066】
ステップST29においてプロセッサー110は、ステップST28において生成した指示ファイルを実行する。指示ファイルの実行は、以下に示す(C1)~(C3)の処理を含む。
【0067】
(C1)プロセッサー110は、指示ファイルに含まれるアプリ指定情報が示す指示アプリを起動する。
【0068】
(C2)プロセッサー110は、指示ファイルに含まれる対象指定情報が示す文書テンプレートを、(C1)で開いた指示アプリで開く。
【0069】
(C3)プロセッサー110は、指示ファイルに含まれる実行内容情報が示す処理を実行する。このために、プロセッサー110は、当該処理を実行するように、(C1)で開いた指示アプリに指示する。プロセッサー110は、例えば、実行内容情報を指示アプリに入力することで、この指示を行う。当該指示に基づき、指示アプリは当該処理を実行する。
【0070】
プロセッサー110は、(C1)~(C3)の処理によって、第2入力画面において入力された指示内容が示す変更を文書テンプレートに加えることとなる。
【0071】
プロセッサー110は、(C3)の処理後、変更を加える対象のファイルに(C3)で行われた変更内容を適用するために、当該ファイルの保存を行うことが好ましい。プロセッサー110は、ファイルの保存後、(C1)で開いた指示アプリを閉じても良い。
【0072】
プロセッサー110は、ステップST29の処理後も、第2結果画面の表示を継続している。したがって、操作者は、さらなる指示の内容を入力することが可能である。ただし、プロセッサー110は、新たな指示を入力可能とするために、指示の内容を入力するための入力欄には何も表示されていない状態とする。また、操作者は、終了ボタンの操作も可能である。
【0073】
以上より、プロセッサー110は、ステップST29の処理を行うことで、実行部の一例として機能する。実行部は、第2のデータを実行することでテンプレートに変更を加える。
【0074】
ステップST30においてプロセッサー110は、指示内容が決定されたか否かを判定する。プロセッサー110は、指示内容が決定されたと判定しないならば、ステップST30においてNoと判定してステップST31へと進む。
【0075】
ステップST31においてプロセッサー110は、文書の変更を終了するか否かを判定する。プロセッサー110は、文書の変更を終了すると判定しないならば、ステップST31においてNoと判定してステップST30へと戻る。かくして、プロセッサー110は、指示内容が決定されたと判定するか、文書の変更を終了すると判定するまでステップST30及びステップST31を繰り返す待受状態となる。
【0076】
プロセッサー110は、ステップST30及びステップST31を繰り返す待受状態にあるときに指示内容が決定されたと判定するならば、ステップST30においてYesと判定してステップST32へと進む。
【0077】
ステップST32においてプロセッサー110は、LLM141にプロンプト及びソフトウェアDB144を入力する。当該プロンプトは、第2結果画面において操作者によって入力された指示内容及び第3基本指示文章を含む。第3基本指示文章は、一例として、以下の(D1)~(D3)の内容の文章を含む。また、第3基本指示文章は、一例として、以下の(D4)又は(D5)のいずれかの内容の文章も含む。
【0078】
(D1)変更対象の文書テンプレートに対してさらなる変更を行うことを示す内容の文章。
(D2)当該さらなる変更は、入力された指示内容が示すものであることを示す内容の文章。
(D3)当該さらなる変更を行う指示データを作成するように指示することを示す内容の文章。
(D4)前回と同一の指示アプリを用いることを示す内容の文章。
(D5)ソフトウェアDB144を参照して、入力された指示内容が示す変更を行うために適した指示アプリを選択し、どの指示アプリを選択したかを回答するように指示することを示す内容の文章。
【0079】
なお、ステップST32におけるプロンプトは、第2結果画面において操作者によって入力された指示内容、削減済みデータ、及び第2基本指示文章を含んでも良い。
【0080】
また、ステップST32におけるプロンプトは、これまでにLLM141に入力したプロンプト及びそのプロンプトに対する回答も含んでも良い。
【0081】
プロセッサー110は、ステップST32の処理の後、ステップST26へと戻る。以上のように、プロセッサー110は、ステップST22~ステップST29の処理を行うことで、文書テンプレートに対して1回目の変更を行い、その後ステップST25~ステップST32において、当該文書テンプレートに対して2回目以降の変更を行う。プロセッサー110は、ステップST25~ステップST32の処理を繰り返すことで、当該文書テンプレートに対して何度も変更を行うことができる。
【0082】
プロセッサー110は、ステップST30及びステップST31を繰り返す待受状態にあるときに文書の変更を終了すると判定するならば、ステップST31においてYesと判定してステップST33へと進む。また、プロセッサー110は、ステップST23及びステップST24を繰り返す待受状態にあるときに文書の変更を終了すると判定するならば、ステップST23においてYesと判定してステップST33へと進む。
【0083】
ステップST33においてプロセッサー110は、文書テンプレートを印刷用ファイルに変換する。ステップST23からステップST33へと進んでいる場合には、印刷用ファイルに変換される文書テンプレートは、ステップST20の処理後の文書テンプレート又はステップST19で取得された文書テンプレートである。ステップST31からステップST33へと進んでいる場合、印刷用ファイルに変換される文書テンプレートは、指示データに基づいて変更された文書テンプレートである。印刷用ファイルは、例えば、PDF(Portable Document Format)又はその他のページ記述言語で記述されたファイルである。プロセッサー110は、ステップST33の処理の後、
図3に示す処理を終了する。
【0084】
実施形態の文書生成装置100は、文書の特徴を示す文字列及び第1基本指示文章を含むプロンプトをLLM141に入力する。そして、実施形態の文書生成装置100は、LLM141から、当該特徴に適当する文書テンプレートを示す出力を取得する。したがって、操作者は、実施形態の文書生成装置100を用いることで、従来よりも容易に所望の文書テンプレートを見つけることができる。
【0085】
また、実施形態の文書生成装置100は、文書の特徴を示す文字列として、操作者によって入力された文章を用いる。したがって、操作者は、作成したい文書の特徴を自然言語で入力すれば所望の文書テンプレートを見つけることができる。すなわち、操作者は、実施形態の文書生成装置100を用いることで、従来よりも容易に所望の文書テンプレートを見つけることができる。
【0086】
また、実施形態の文書生成装置100は、項目データをLLM141に入力する。これにより、実施形態の文書生成装置100は、LLM141による文書テンプレートの選択精度を上げることができる。
【0087】
また、実施形態の文書生成装置100は、(A2)を含むプロンプトをLLM141に入力する。そして、LLM141は、複数の文書テンプレートを選択する。これにより、操作者は、作成したい文書に適合した複数の文書テンプレートから使いたい文書テンプレートを選択することが可能となる。
【0088】
また、実施形態の文書生成装置100は、LLM141によって選択された文書テンプレートを、項目データに基づいて文書テンプレートを修正する。これにより、当該文書テンプレートが、操作者が作成したい文書により近くなる。
【0089】
また、実施形態の文書生成装置100は、文書に加える変更の内容、及び当該変更を行う指示データを出力するように指示する内容を含むプロンプトをLLM141に入力する。そして、LLM141は、当該指示データを出力する。操作者は、当該指示データを用いることで簡単に文書に変更を加えることが可能である。また、操作者は、実施形態の文書生成装置100を用いることで、従来よりも容易に文書に変更を加えることができる。
【0090】
また、実施形態のソフトウェア操作装置100は、指示データを介してソフトウェアを動作させる。指示データを介さない場合、LLM141に追加の学習を行うことなどが必要となる。このため、実施形態のソフトウェア操作装置100は、指示データを介さない場合よりも容易にソフトウェアを動作させることができる。
【0091】
また、実施形態の文書生成装置100は、指示データを実行することで文書に変更を加える。したがって、操作者は、実施形態の文書生成装置100を用いることで、従来よりも容易に文書に変更を加えることができる。
【0092】
また、実施形態の文書生成装置100は、文書に加える変更の内容に適したソフトウェアを選択する。したがって、操作者は、実施形態の文書生成装置100を用いることで、どのソフトウェアを用いることで文書に所望の変更を加えられるかを知らなくても文書に変更を加えることができる。
【0093】
また、実施形態の文書生成装置100は、文書として帳票を用いる。帳票は、項目ごとに分かれている部分が多い。すなわち、構造化されている部分が多い。このため、帳票は、LLM141が精度よくテンプレートを選択可能である。
【0094】
上記の実施形態は、以下のような変形も可能である。
【0095】
上記の実施形態では、プロセッサー110は、
図2のステップST15において指示内容、項目データ、及び第1基本指示文章を含むプロンプトをLLM141に入力する。しかしながら、プロセッサー110は、指示内容及び項目データのいずれかと、第1基本指示文章とを含むプロンプトをLLM141に入力しても良い。この場合の第1基本指示文章の(A1)及び(A2)の、「入力された指示内容と、入力された項目データが示す項目と」の部分は、「入力された指示内容」又は「入力された項目データ」とする。
【0096】
上記の実施形態では、文書生成装置100は、文書DB142又はベクトル化DB143を、LLM141が利用可能な外部データとして用いている。しかしながら、文書生成装置100は、LLM141に代えて、文書DB142又はベクトル化DB143を学習させたLLMを用いても良い。この場合、文書生成装置100のプロセッサー110は、例えば、LLM141に文書DB142又はベクトル化DB143を追加学習させる。
【0097】
上記の実施形態では、文書生成装置100は、文書DB142又はベクトル化DB143を、LLM141が利用可能な外部データとして用いている。しかしながら、文書生成装置100は、文書DB142又はベクトル化DB143を、プロンプトとしてLLM141に入力しても良い。
【0098】
上記の実施形態では、文書生成装置100は、ソフトウェアDB144を、LLM141が利用可能な外部データとして用いている。しかしながら、文書生成装置100は、LLM141に代えて、ソフトウェアDB144を学習させたLLMを用いても良い。この場合、文書生成装置100のプロセッサー110は、例えば、LLM141にソフトウェアDB144を追加学習させる。
【0099】
上記の実施形態では、文書生成装置100は、ソフトウェアDB144を、LLM141が利用可能な外部データとして用いている。しかしながら、文書生成装置100は、ソフトウェアDB144を、プロンプトとしてLLM141に入力しても良い。
【0100】
上記の実施形態では、プロセッサー110は、削減済みデータを含むプロンプトをLLM141に入力した。しかしながら、プロセッサー110は、削減済みデータに代えて、
図3のステップST20の処理後の文書テンプレート又はステップST19で取得した文書テンプレートを用いても良い。
【0101】
指示データは、アプリ指定情報を含まなくても良い。この場合、プロセッサー110は、指示データに基づかずに指示アプリを起動する。例えば、ステップST26で取得される回答内容は、指示データ以外の部分にどの指示アプリを使用するかを示す記述を含む場合がある。プロセッサー110は、この記述に基づいて使用する指示アプリを特定し、当該指示アプリを起動する。あるいは、プロセッサー110は、予め定められた指示アプリを起動しても良い。あるいは、プロセッサー110は、操作者によって指定された指示アプリを起動しても良い。
【0102】
指示データは、対象指定情報を含まなくても良い。この場合、プロセッサー110は、指示データに基づかずに、変更を加える対象の文書テンプレートを開く。例えば、ステップST26で取得される回答内容は、指示データ以外の部分にどの文書テンプレートに変更加えるかを特定可能な記述を含む場合がある。プロセッサー110は、この記述に基づいて使用する指示アプリを特定し、当該指示アプリを起動する。あるいは、プロセッサー110は、ステップST20の処理後の文書テンプレート又はステップST19で取得された文書テンプレートを開く。あるいは、プロセッサー110は、操作者によって指定された文書テンプレートを開く。
【0103】
上記の実施形態では、プロセッサー110は、指示ファイルを自動実行する。しかしながら、プロセッサー110は、指示ファイルを自動実行しなくても良い。この場合、プロセッサー110は、ステップST28の処理の後、ステップST30の処理へと進む。操作者は、保存された指示ファイルを開く操作を行うことで、当該指示ファイルの実行を文書生成装置100に指示することができる。当該指示に基づき、文書生成装置100のプロセッサー110は、当該指示ファイルを実行する。
【0104】
文書生成装置100は、データベースに代えてデータベース以外の形式で記憶された情報を用いて良い。
【0105】
プロセッサー110は、ステップST20の処理による修正を加えた文書テンプレートを、新たな文書テンプレートとして文書DB142に追加しても良い。プロセッサー110は、文書DB142に新たな文書テンプレートを追加した場合、新たな文書テンプレートを追加した文書DB142をベクトル化して新たなベクトル化DB143を作成する。
【0106】
プロセッサー110は、指示データに基づいて変更された文書テンプレートを、新たな文書テンプレートとして文書DB142に追加しても良い。ただし、プロセッサー110は、文書テンプレートから入力データを除いたデータを文章DB142に追加することが好ましい。
【0107】
第2基本指示文章及び第3基本指示文章は、第2入力画面において操作者によって入力された指示内容を実行するのに適した指示アプリが無い場合は適した指示アプリを作成するように指示する文章を含んでも良い。プロンプトがこの文章を含む場合、LLM141は、当該指示内容に適した指示アプリを作成する。
【0108】
指示ファイルは、指示アプリを起動した状態で指示アプリ上から実行するものであっても良い。この場合、操作者は、指示アプリを操作して当該指示ファイルを読み込むことで、指示アプリに当該指示ファイルを実行させることができる。
【0109】
実施形態の文書生成装置は、複数の装置からなるものであっても良い。実施形態の文書生成装置は、クラウドコンピューティングを用いて実現するものであっても良い。一例として、文書生成装置は、端末装置及びサーバー装置を含む。当該サーバー装置は、クラウドコンピューティングにおけるサーバーである。当該サーバー装置は、LLM141を実行する。当該端末装置は、インターネット又はLAN(local area network)などの通信網を通じてプロンプトを当該サーバー装置に送信する。当該サーバー装置のプロセッサーは、当該プロンプトを用いて、
図2のステップST15及びステップST16、又は
図3のステップST25及びステップST26の処理を実行する。そして、当該サーバー装置は、取得した回答を、当該通信網を通じて当該端末装置に送信する。当該端末装置は、当該回答を用いて
図2のステップST17以降の処理又は
図3のステップST27以降の処理を行う。
【0110】
プロセッサー110は、上記実施形態においてプログラムによって実現する処理の一部又は全部を、回路のハードウェア構成によって実現するものであっても良い。
【0111】
実施形態の処理を実現するプログラムは、例えば装置内の非一時的なコンピューター可読記憶媒体に記憶された状態で譲渡される。しかしながら、当該装置は、当該プログラムが記憶されない状態で譲渡されても良い。そして、当該プログラムが別途に譲渡され、当該装置へと書き込まれても良い。このときのプログラムの譲渡は、例えば、リムーバブルで非一時的なコンピューター可読記憶媒体に記録して、あるいはインターネット又はLANなどのネットワークを介したダウンロードによって実現できる。
【0112】
以上、本発明の実施形態を説明したが、例として示したものであり、本発明の範囲を限定するものではない。本発明の実施形態は、本発明の要旨を逸脱しない範囲において種々の態様で実施可能である。
【符号の説明】
【0113】
100 文書生成装置
110 プロセッサー
120 ROM
130 RAM
140 補助記憶装置
141 LLM
142 文書DB
143 ベクトル化DB
144 ソフトウェアDB
150 入力デバイス
160 表示デバイス
170 通信インターフェース
180 バス