(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-04-22
(45)【発行日】2024-05-01
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム。
(51)【国際特許分類】
G06F 8/30 20180101AFI20240423BHJP
【FI】
G06F8/30
(21)【出願番号】P 2023130210
(22)【出願日】2023-08-09
【審査請求日】2023-08-09
【早期審査対象出願】
(73)【特許権者】
【識別番号】519110124
【氏名又は名称】PayPay株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100154852
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100181124
【氏名又は名称】沖田 壮男
(74)【代理人】
【識別番号】100194087
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】木村 啓人
【審査官】大塚 俊範
(56)【参考文献】
【文献】特許第6945766(JP,B1)
【文献】特開2019-204173(JP,A)
【文献】米国特許第09959868(US,B1)
【文献】米国特許出願公開第2020/0372162(US,A1)
【文献】特開平05-108319(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/30
(57)【特許請求の範囲】
【請求項1】
所定のプログラム言語のライブラリの使用方法と前記ライブラリのサンプルコードとを含むドキュメントと、前記ライブラリを利用して
前記ライブラリの使い方に従った方法でタスク定義に対応するサンプルコードを生成するように指示するタスク定義とを取得する取得部と、
所定のプログラム言語のライブラリの使用方法と前記ライブラリのサンプルコードとを含むドキュメントと、前記ライブラリを利用してサンプルコードを生成するように指示するタスク定義とを入力として、前記ライブラリの使い方に従った方法で前記タスク定義に対応するサンプルコードを出力するように学習されたAIチャットボットに、前記ドキュメントとタスク定義とを入力することで得られる、
前記取得部により取得された前記ライブラリの使い方に従った方法で前記タスク定義に対応するサンプルコー
ドを取得する処理部と、
を備える情報処理装置。
【請求項2】
前記ドキュメントのデータの容量が制限を超えないように前記ドキュメントを基準位置から順に分割し、分割した分割ドキュメントのそれぞれを、順番に、前記AIチャットボットに入力することで、前記入力した分割ドキュメントが要約された要約情報を取得する要約部を備え、
前記処理部は、前記要約部が取得した複数の要約情報を、
前記要約情報が出力された順番に接続してまとめたドキュメントと、前記タスク定義とを前記AIチャットボットに入力することで得られた前記サンプルコードを取得する、
請求項1に記載の情報処理装置。
【請求項3】
前記AIチャットボットは、公開された、
プログラム言語のライブラリの使用方法と前記ライブラリのサンプルコードとを含むドキュメントと、前記ライブラリを利用して前記ライブラリの使い方に従った方法でタスク定義に対応するサンプルコードを学習することで前記
入力に応じた返信を行うように学習されたモデルであり、
前記モデルは、前記
所定のプログラム言語に対応するドキュメントを学習していないモデルである、
請求項1に記載の情報処理装置。
【請求項4】
前記取得部と前記処理部との一方または双方は、利用者の操作に応じて、処理を実行する、
請求項1から3のうちいずれか1項に記載の情報処理装置。
【請求項5】
所定のプログラム言語のライブラリの使用方法と前記ライブラリのサンプルコードとを含むドキュメントと、前記ライブラリを利用して
前記ライブラリの使い方に従った方法でタスク定義に対応するサンプルコードを生成するように指示するタスク定義とを取得し、
所定のプログラム言語のライブラリの使用方法と前記ライブラリのサンプルコードとを含むドキュメントと、前記ライブラリを利用してサンプルコードを生成するように指示するタスク定義とを入力として、前記ライブラリの使い方に従った方法で前記タスク定義に対応するサンプルコードを出力するように学習されたAIチャットボットに、前記ドキュメントとタスク定義とを入力することで得られる、
前記取得された前記ライブラリの使い方に従った方法で前記タスク定義に対応するサンプルコー
ドを取得する、
情報処理方法。
【請求項6】
コンピュータに、
所定のプログラム言語のライブラリの使用方法と前記ライブラリのサンプルコードとを含むドキュメントと、前記ライブラリを利用して
前記ライブラリの使い方に従った方法でタスク定義に対応するサンプルコードを生成するように指示するタスク定義とを取得させ、
所定のプログラム言語のライブラリの使用方法と前記ライブラリのサンプルコードとを含むドキュメントと、前記ライブラリを利用してサンプルコードを生成するように指示するタスク定義とを入力として、前記ライブラリの使い方に従った方法で前記タスク定義に対応するサンプルコードを出力するように学習されたAIチャットボットに、前記ドキュメントとタスク定義とを入力することで得られる、
前記取得された前記ライブラリの使い方に従った方法で前記タスク定義に対応するサンプルコー
ドを取得させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
従来、1以上のプログラム部品に基づいて合成プログラムを生成する生成部と、前記合成プログラムの内容を可視化する可視化部と、可視化された前記合成プログラムについてユーザによって所定の指示が入力された場合に、前記1以上のプログラム部品に基づいて合成プログラムを再生成する再生成部と、を有すること特徴とするプログラム生成装置が開示されている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来の技術では、所望のコードを容易に生成することができないことがあった。
【0005】
本発明は、このような事情を考慮してなされたものであり、所望のコードを容易に生成することができる情報処理装置、情報処理方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【0006】
本発明の一態様は、所定のプログラム言語のライブラリの使用方法と前記ライブラリのサンプルコードとを含むドキュメントと、前記ライブラリを利用してサンプルコードを生成するように指示するタスク定義とを取得する取得部と、プログラムコードを含むテキストによる指示を入力とし、テキストによる指示に沿った情報を出力するように学習されたAIチャットボットに、前記ドキュメントとタスク定義とを入力することで得られる、前記ライブラリの使い方に従った方法で前記タスク定義に対応するサンプルコードの情報を取得する処理部とを備える情報処理装置である。
【発明の効果】
【0007】
本発明の一態様によれば、所望のコードを容易に生成することができる情報処理装置、情報処理方法、およびプログラムを提供することができる。
【図面の簡単な説明】
【0008】
【
図1】情報処理システム1の構成の一例を示す図である。
【
図3】要約部110の処理の概要を説明するための図である。
【
図4】処理部130の処理の概要について説明するための図である。
【
図5】本実施形態を利用せずに生成されたサンプルコード(1)および本実施形態を利用して生成されたサンプルコード(2)の一例を示す図である。
【
図6】情報処理装置100とAIチャットボットサーバ200とにより実行される処理の流れ一例を示すシーケンス図である。
【発明を実施するための形態】
【0009】
以下、図面を参照し、本発明の情報処理装置の制御方法の実施形態について説明する。以下に登場する「情報処理装置」などの、利用者にサービスを提供したり内部解析を行ったりするための各種装置は、分散化された装置群によって実現されてよく、それぞれの装置を運用する事業者は異なってもよい。また装置のハードウェアの保有者(クラウドサーバの提供者)と実質的な運用を行う事業者も異なってよい。
【0010】
図1は、情報処理システム1の構成の一例を示す図である。情報処理システム1は、例えば、情報処理装置100と、AIチャットボットサーバ200とを備える。これらは、ネットワークNWを介して通信する。ネットワークNWは、例えば、インターネット、LAN(Local Area Network)、無線基地局、プロバイダ装置などを含む。
【0011】
[AIチャットボット]
AIチャットボットサーバ200は、インターネットサイトなどの情報源300からクロールなどによって定期的に情報を得ており、世間の常識知に基づいてテキストが入力されるとテキストに応じた返信を行うように学習されたモデルである。AIチャットボットサーバ200は、例えば、ChatGPT(GPT-4)、Alpaca、Vicuna、Raven RWKV、Marvinなどの名称で知られているものである。AIチャットボットサーバ200は、例えば、プログラムコードを含むテキストによる指示を入力とし、テキストによる指示に沿った情報を出力するように学習されたモデルである。AIチャットボットサーバ200は、ドキュメントとタスク定義とが入力されると、ライブラリの使い方に従った方法でタスク定義に対応するサンプルコードの情報を出力する。例えば、AIチャットボットサーバ200は、ドキュメントとタスク定義とテキストによる指示とが入力されると、指示に応じたライブラリの使い方に従った方法でタスク定義に対応するサンプルコードの情報を出力するように学習されたモデルである。AIチャットボットサーバ200は、ドキュメントとタスク定義と指示とが入力されると、指示に応じたライブラリの使い方に従った方法でタスク定義に対応するサンプルコードの情報を出力する。上記において、サンプルデータが入力され、サンプルデータが取り込まれたサンプルコードが出力されてもよい。
【0012】
[情報処理装置]
図2は、情報処理装置100の構成図である。情報処理装置100は、例えば、要約部110と、取得部120と、処理部130と、提供部140と、記憶部170とを備える。記憶部170以外の構成要素は、例えば、CPU(Central Processing Unit)などのハードウェアプロセッサがプログラム(ソフトウェア)を実行することにより実現される。これらの構成要素のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、GPU(Graphics Processing Unit)などのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。プログラムは、予めHDD(Hard Disk Drive)やフラッシュメモリなどの記憶装置(非一過性の記憶媒体を備える記憶装置)に格納されていてもよいし、DVDやCD-ROMなどの着脱可能な記憶媒体(非一過性の記憶媒体)に格納されており、記憶媒体がドライブ装置に装着されることで記憶装置にインストールされてもよい。
【0013】
記憶部70は、HDDやフラッシュメモリ、RAM(Random Access Memory)などである。記憶部70は、情報処理装置100がネットワークを介してアクセス可能なNAS(Network Attached Storage)装置であってもよい。
【0014】
記憶部70には、例えばドキュメント情報172や、要約情報174、定義情報(タスク定義、スキーマ定義)176、生成情報178などが記憶されている。ドキュメント情報172は、所定のプログラム言語のドキュメントである。例えば、ドキュメント情報172は、構造化照会言語(SQL)の情報である。これらの情報の詳細については後述する。
【0015】
(要約部)
要約部110は、ドキュメント情報172を分割し、分割した分割ドキュメントのそれぞれを、順番に、AIチャットボットサーバ200に入力することで、入力した分割ドキュメントが要約された要約情報を取得する。
【0016】
ドキュメント情報172は、例えば、所定のバージョンのライブラリに関連するドキュメント情報(例えばライブラリの使用方法)や、サンプルコード(例えばJavaなどのコード)、所定バージョンでの注意点、FAQ、所定のバージョンまでの変更点リストなどを含む。上記の情報の一部の情報は省略されてもよい。また、ドキュメント情報172は、例えば、サンプルデータなどの情報を含んでもよい。サンプルコードとは、ライブラリの機能を実現するためのサンプルコードである。サンプルデータは、サンプルコードに利用されるサンプルデータである。AIチャットボットサーバ200が一度に処理可能なデータ量(例えばトークンの数)には制限がある。要約部110は、ドキュメント情報172のデータ量が制限を超える場合、制限を超えないデータ量に収まるようにドキュメントを分割する。要約部110は、分割後のドキュメントを、順番にAIチャットボットサーバ200に入力して、AIチャットボットサーバ200が出力したドキュメントの要約を取得する。
【0017】
図3は、要約部110の処理の概要を説明するための図である。例えば、要約部110は、ドキュメントを3分割して、3回に分けてドキュメントをAIチャットボットサーバ200に入力し、入力ごとの要約を取得する。要約部110は、要約されたドキュメントに基づいて要約・符号化された要約情報174を生成し、生成した要約情報174を記憶部170に記憶させる。これは、後述するようにAIチャットボットサーバ200にて再度処理を行わせるための前処理である。なお、要約・符号化の方法はAIチャットボットサーバ200の内部実装により決定される。要約情報174は、例えば、要約を統合させた情報である。例えば、要約情報174は、AIチャットボットサーバ200が出力した分割後のドキュメントに対応する要約を、順番に接続して1つのドキュメントとする。上記のドキュメントは、例えば、所定のバージョンのライブラリに関連するドキュメント情報(例えばライブラリの使用方法)や、サンプルコード、所定バージョンでの注意点、FAQ、所定のバージョンまでの変更点リストなどを含む。上記の情報の一部の情報は省略されてもよい。また、ドキュメントは、例えば、サンプルデータなどの情報を含んでもよい。
【0018】
(取得部)
取得部120は、記憶部170から要約情報174(ドキュメント情報172)と、定義情報176とを取得する。取得部120は、要約情報174または定義情報176が他の記憶部に記憶されている場合や、他の装置から提供される場合、他の記憶部または他の装置から取得する。
【0019】
定義情報176は、ライブラリ(ドキュメント情報172)を利用してサンプルコードを生成するように指示するタスク定義である。定義情報176は、例えば、データベースのデータの構造や、性質、データ間の関連性、データベースを操作するときのルールなどが定義された情報である。定義情報176は、例えば、データを具体的にどのように格納するかを定義した情報である。定義情報176は、例えば、データベースの枠組みを示す情報である。
【0020】
(処理部)
処理部130は、AIチャットボットサーバ200に、ドキュメントとタスク定義と指示とを入力することで得られる、指示に応じたライブラリの使い方に従った方法でタスク定義に対応するサンプルコードの情報を取得する。処理部130は、例えば、要約情報174と、定義情報176とをAIチャットボットサーバ200に入力して、定義情報176に入力したライブラリの使い方に沿ったドキュメントのサンプルデータを適用したサンプルコードを出力するようにAIチャットボットサーバ200に指示する。
【0021】
図4は、処理部130の処理の概要について説明するための図である。処理部130は、AIチャットボットサーバ200が出力した生成情報178を取得する。生成情報178は、定義情報176に入力したライブラリの使い方に沿ったドキュメントのサンプルデータを適用したサンプルコードである。サンプルコードは、コードの枠組みにサンプルデータが組み込まれたサンプルコードである。例えば、
図4の定義情報176の「i0(図中、AR1)」・・・「i8(図中、AR2)」にライブラリの使い方に沿ったサンプルデータが取り込まれたサンプルコードが生成される。サンプルコードは、サンプルデータを利用して、ライブラリの機能が実現されているかをテストできるコード、または管理者のコードの作成を支援するコードである。サンプルコードは、一部が欠損していたり、一部に不備が生じていたりするものであってもよい。この場合、管理者がサンプルコードを確認、修正することで、欠損や不備などは解消される。具体的には、処理部130は、ライブラリを利用したプログラムコードの自動生成の指示をAIチャットボットサーバ200に対して行う。
図4では、一例として、処理部130は、SQLのテーブルの定義情報を渡し、それに応じてライブラリのコードの利用例を生成するように指示している。なお、上記の例で、サンプルデータが取り込まれたサンプルコードに代えて、サンプルデータが取り込まれる前のサンプルコードが生成されてもよい。
【0022】
(提供部)
提供部140は、処理部130が取得したサンプルコードを不図示の表示部に表示させたり、他の端末装置に提供したりする。更に、提供部140は、サンプルコードを実行して正常に動作するかを確認してもよい。
【0023】
本実施形態では、AIチャットボットサーバ200は、扱うデータ量に制限があるものとして説明したが、扱うデータ量に制限がない場合や、対象のドキュメントを分割せずに処理可能である場合、要約部110が実行する処理および要約部110の機能構成は省略されてもよい。この場合、処理部130は、ドキュメント情報172と、定義情報176とをAIチャットボットサーバ200に入力して、入力したドキュメントのライブラリの使い方に沿ったサンプルデータを利用したサンプルコードを出力するようにAIチャットボットサーバ200に依頼し、AIチャットボットサーバ200から上記のサンプルコードを取得する。
【0024】
上記の各機能部の処理は、利用者の操作に基づいて行われてもよい。例えば、利用者の操作に応じて、要約部110、取得部120、処理部130、または提供部140が処理を実行してもよいし、自動で各処理が実行されてもよい。
【0025】
上記のように、情報処理装置100は、ドキュメントを利用して自動でサンプルコードを生成するため、所望のコードを容易に生成することができる。
【0026】
例えば、所定のドキュメントを渡され、このドキュメントのライブラリを利用したサンプルコードの作成を早急に行うように依頼される場合がある。例えば、ドキュメントのすべてに目を通してサンプルコードを作成することは大変である。
【0027】
また、AIチャットボットを利用しようとした場合でも、所望のサンプルコードを作成することが困難なことがある。例えば、AIチャットボットサーバ200は、所定のドキュメントが公開される前の情報を学習し、所定のドキュメントについては学習していないことがある。この場合、AIチャットボットサーバ200を利用しても所定のドキュメントのライブラリを利用したサンプルコードを作成することができないことがある。
【0028】
本実施形態では、上記のように、AIチャットボットが所定のドキュメントを学習していない場合であっても、情報処理装置100が、要約情報174(ドキュメント情報172)および定義情報176をAIチャットボットサーバ200に入力することで、所定のドキュメントの内容に沿ったサンプルコードを容易に生成することができる。
【0029】
更に、AIチャットボットが、ドキュメントを一度にすべて処理できない場合であっても、本実施形態では、情報処理装置100が、ドキュメントを分割して分割したドキュメンを利用することで、容易にサンプルコードを作成することができる。
【0030】
図5は、本実施形態を利用せずに生成されたサンプルコード(1)および本実施形態を利用して生成されたサンプルコード(2)の一例を示す図である。サンプルコード(1)は、所定のドキュメントを入力せずに生成されたサンプルコードである。サンプルコード(1)では、所定の(最新の)ドキュメントの内容が反映されていない。すなわち、サンプルコード(1)では、最近のドキュメントの内容が反映されておらず、AIチャットボットサーバ200が独自に生成した存在しないライブラリのコードが記述されている。これに対してサンプルコード(2)では、所定のドキュメントがAIチャットボットサーバ200に提供されるため、所定のドキュメントが反映されたサンプルコードが生成されている。上記のように、情報処理装置100は、容易に所定のドキュメントを反映したサンプルコードを作成することができる。
【0031】
[シーケンス図]
図6は、情報処理装置100とAIチャットボットサーバ200とにより実行される処理の流れ一例を示すシーケンス図である。なお、シーケンスの処理の一部または全部の処理は、手動で行われてもよい。例えば、S10のドキュメントを分割する処理は作業指示者によって行われてもよい。まず、情報処理装置100は、ドキュメント情報172を分割する(S10)。次に、情報処理装置100は、分割した分割後ドキュメントをAIチャットボットサーバ200に送信して要約を依頼する(S12)。次に、AIチャットボットサーバ200は、送信されたドキュメントを要約する(S14)。次に、AIチャットボットサーバ200は、要約を情報処理装置100に送信する(S16)。情報処理装置100と、AIチャットボットサーバ200とは、分割ドキュメントごとにS12からS16の処理を実行する。
【0032】
次に、情報処理装置100は、AIチャットボットサーバ200が要約した要約を統合する(S18)。次に、情報処理装置100は、統合した要約である要約情報174および定義情報176をAIチャットボットサーバ200に送信して、ドキュメントのライブラリの使い方に沿ったサンプルデータを利用したサンプルコードの生成を依頼する(S20)。次に、AIチャットボットサーバ200は、依頼に応じてサンプルコードを生成し(S22)、生成したサンプルコードを情報処理装置100に送信する(S24)。次に、情報処理装置100は、送信されたサンプルコードを取得して取得したサンプルコードを生成情報178として記憶部170に記憶させる(S26)。送信されたサンプルコードは、例えば作業指示者に提供される。例えば、作業指示者の端末装置の表示部に表示される。
【0033】
上記のように、情報処理装置100は、AIチャットボットサーバ200を利用して自動で所望のサンプルコードを生成することができる。
【0034】
なお、本実施形態では、データベーススキーマを利用することを一例として説明したが、サンプルコードの取得タスクにおいても適用されてもよい。この場合、ドキュメント情報172は、サンプルコードに関する情報であり、定義情報176は、コードを作成する際のコード定義を含む。
【0035】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0036】
100 情報処理装置
110 要約部
120 取得部
130 処理部
172 ドキュメント情報
174 要約情報
176 定義情報
178 生成情報
【要約】
【課題】所望のコードを容易に生成すること。
【解決手段】所定のプログラム言語のライブラリの使用方法と前記ライブラリのサンプルコードとを含むドキュメントと、前記ライブラリを利用してサンプルコードを生成するように指示するタスク定義とを取得する取得部と、プログラムコードを含むテキストによる指示を入力とし、テキストによる指示に沿った情報を出力するように学習されたAIチャットボットに、前記ドキュメントとタスク定義とを入力することで得られる、前記ライブラリの使い方に従った方法で前記タスク定義に対応するサンプルコードの情報を取得する処理部とを備える情報処理装置。
【選択図】
図2