JP7511068B1 - 情報処理装置、情報処理方法および情報処理プログラム - Google Patents

情報処理装置、情報処理方法および情報処理プログラム Download PDF

Info

Publication number
JP7511068B1
JP7511068B1 JP2023178433A JP2023178433A JP7511068B1 JP 7511068 B1 JP7511068 B1 JP 7511068B1 JP 2023178433 A JP2023178433 A JP 2023178433A JP 2023178433 A JP2023178433 A JP 2023178433A JP 7511068 B1 JP7511068 B1 JP 7511068B1
Authority
JP
Japan
Prior art keywords
unit
execution
model
information processing
prompt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2023178433A
Other languages
English (en)
Inventor
アミット ヴァシーヌ
翔大 亀山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PayPay Corp
Original Assignee
PayPay Corp
Filing date
Publication date
Application filed by PayPay Corp filed Critical PayPay Corp
Application granted granted Critical
Publication of JP7511068B1 publication Critical patent/JP7511068B1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

Figure 0007511068000001
【課題】自動生成AIを用いたサービスにおいて効率的な運用を行うこと。
【解決手段】本発明に係る情報処理装置は、受付部と、判定部と、生成部と、実行部とを備える。受付部は、ユーザが入力した実行指示を示す自然言語の文章を受け付ける。判定部は、受付部によって受け付けられた文章の実行指示と対応する処理を実行させるための実行情報がキャッシュされているか否かを判定する。生成部は、判定部によって実行情報がキャッシュされていないと判定された場合、質問に対する回答を生成するように学習が行われたモデルを用いて、実行情報を生成する。実行部は、キャッシュされている実行情報または生成部によって生成された実行情報を用いて処理を実行する。
【選択図】図1

Description

本発明は、情報処理装置、情報処理方法および情報処理プログラムに関する。
従来、チャットボット等の自動応答サービスが普及しつつある。例えば、かかるサービスは、ユーザが入力した質問と類似する質問およびその回答をデータベースから抽出して、抽出した回答をユーザへ提供する技術が提案されている(例えば、特許文献1参照)。
国際公開第2019/185578号
しかしながら、従来技術では、文章を生成するモデル(いわゆる自動生成AI)を用いることについては考慮されていなかった。例えば、かかるモデルを利用する場合、プロンプトの量や回数に応じて料金が発生するため、効率的な運用が求められる。
本発明は、上記に鑑みてなされたものであって、自動生成AIを用いたサービスにおいて効率的な運用を行うことができる情報処理装置、情報処理方法および情報処理プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係る情報処理装置は、受付部と、判定部と、生成部と、実行部とを備える。受付部は、ユーザが入力した実行指示を示す自然言語の文章を受け付ける。判定部は、受付部によって受け付けられた文章の実行指示と対応する処理を実行させるための実行情報がキャッシュされているか否かを判定する。生成部は、判定部によって実行情報がキャッシュされていないと判定された場合、質問に対する回答を生成するように学習が行われたモデルを用いて、実行情報を生成する。実行部は、キャッシュされている実行情報または生成部によって生成された実行情報を用いて処理を実行する。
本発明によれば、ユーザに対して適切なコンテンツを提供することができる。
図1は、実施形態に係る情報処理の一例を示す図である。 図2は、実施形態に係るユーザインタフェースの一例を示す図である。 図3は、実施形態に係る情報処理装置の構成例を示すブロック図である。 図4は、実施形態に係るプロンプト辞書記憶部に格納される情報の一例を示す図である。 図5は、実施形態に係るAPIリクエスト記憶部に格納される情報の一例を示す図である。 図6は、実施形態に係る拡張プロンプトの生成処理の説明図である。 図7は、実施形態に係る拡張プロンプトの生成処理の説明図である。 図8は、実施形態に係る拡張プロンプトの生成処理の説明図である。 図9は、実施形態に係る拡張プロンプトの生成処理の説明図である。 図10は、実施形態に係る拡張プロンプトの一例を示す図である。 図11は、実施形態に係る拡張プロンプトに対する回答の一例を示す図である。 図12は、実施形態に係る回答画面の一例を示す図である。 図13は、実施形態に係る提供処理の一例を示すフローチャートである。 図14は、実施形態に係る情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
以下に、本願に係る情報処理装置、情報処理方法および情報処理プログラムを実施するための形態(以下、「実施形態」と記載する。)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法および情報処理プログラムが限定されるものではない。
[実施形態]
〔1.情報処理〕
まず、図1を用いて、実施形態に係る情報処理の一例について説明する。図1は、実施形態に係る情報処理の一例を示す図である。なお、実施形態に係る情報処理は、図1に示す情報処理装置1によって実現される。
図1に示す情報処理装置1は、各ユーザに対して電子マネー決済に関する電子決済サービスが運営するサーバ装置である。本実施形態において、情報処理装置1は、ユーザに対する質問に対して回答を生成する自動応答サービスを提供する。
例えば、情報処理装置1は、電子マネーの利用額に関する質問、クーポンや店舗に関する質問、電子マネーの個人間送金に関する質問等を受け付けることができる。例えば、これらの質問は、複数のAPI(Application Programming Interface)のうち、いずれかのAPIを実行し、データを取得する必要がある。本実施形態では、後述するように、第2モデルM2を利用してAPIリクエスト(APIを実行するためのクエリ)の生成を行う。なお、第2モデルM2は、GPT(Generative Pretrained Transformer)モデルである。
図1に示すユーザ端末100は、ユーザによって利用される情報処理装置である。ユーザ端末100は、例えば、スマートフォンや、タブレット型端末や、ノート型PC(Personal Computer)や、デスクトップPCや、携帯電話機や、PDA(Personal Digital Assistant)等により実現される。また、ユーザ端末100は、情報処理装置1、サーバ装置200によって配信される情報を、ウェブブラウザやアプリケーションにより表示する。なお、図1に示す例では、ユーザ端末100がスマートフォンである場合を示す。
図1に示すサーバ装置200は、ユーザ端末100を用いる電子決済に関する電子決済サービスを提供し、各種の決済を行う情報処理装置である。サーバ装置200は、取引対象の提供者(事業者)や取引対象が提供されるユーザの口座を管理しており、ユーザからの決済要求に従って、口座間における電子マネーの送金等を行うことで、各種決済を実現する。
ここで、情報処理装置1が実行する提供処理に先立ち、ユーザ端末100を用いた決済(電子決済)の一例について説明する。なお、以下の説明では、店舗Aに配置された2次元コード(QRコード(登録商標))であって、店舗Aを識別する店舗識別情報を示す2次元コードを用いて、ユーザがユーザ端末100を用いた決済を行う例について説明するが、実施形態は、これに限定されるものではない。以下に説明する決済の一例は、任意のユーザが任意のユーザ端末100を用いて、任意の店舗にて決済を行う場合においても適用可能である。また、店舗識別情報は、QRコードのみならず、バーコードや所定のマーク、番号等であってもよい。
例えば、ユーザが店舗Aにて各種の商品やサービスといった決済対象(取引対象)の利用や購入に伴う決済を行う場合、ユーザは、ユーザ端末100に予めインストールされた決済アプリを起動する。そして、ユーザは、決済アプリを介して、店舗Aに設置された店舗識別情報を撮影する。このような場合、ユーザ端末100は、決済対象の価格を入力するための画面を表示し、ユーザ或いは店舗Aの店員から決済金額の入力を受け付ける。そして、ユーザ端末100は、ユーザを識別するユーザ識別情報と、店舗識別情報(若しくは、店舗識別情報が示す情報、すなわち、店舗A(若しくは店舗Aの事業者)を示す情報(例えば、店舗ID)と、決済金額とを示す決済情報をサーバ装置200へ送信する。
このような場合、サーバ装置200は、ユーザ識別情報が示すユーザの口座から、店舗識別情報が示す店舗Aの口座へと、決済金額が示す額の電子マネーを移行させる。そして、サーバ装置200は、決済が完了した旨の通知をユーザ端末100へ送信する。このような場合、ユーザ端末100は、決済が完了した旨の画面や所定の音声を出力することで、電子マネーによる決済が行われた旨を通知する。
より詳細な例を説明する。例えば、店舗Aに設置された店舗識別情報は、店舗ごとに設定されるURLであって、店舗Aが属するグループを示すグループ識別情報と、そのグループにおいて店舗Aを識別するグループ店舗識別情報とに紐づけ、サーバ装置200が参照可能に管理されている。なお、店舗識別情報となるURLは、サーバ装置200にアクセスするためのURLとなる。ユーザ端末100は、店舗識別情報を撮影すると、撮影した店舗識別情報が示すURLにアクセスし、ユーザ識別情報を送信する。このような場合、サーバ装置200は、アクセスされたURLと対応するグループ識別情報を特定し、特定したグループ識別情報と紐づけられた電子マネーの口座(「ウォレット」と表示する場合がある)を特定する。続いて、サーバ装置200は、ユーザ端末100に対して金額入力画面を表示させ、金額を入力させる。そして、サーバ装置200は、ユーザ端末100から受けつけたユーザ識別情報と紐づけられたウォレットから、グループ識別情報を特定し、特定したグループ識別情報と紐づけられたウォレットに対して、入力された金額の電子マネーを移動させる。なお、サーバ装置200は、グループ識別情報およびグループ店舗識別情報とに紐づけられるウォレットに電子マネーを移動させてもよい。
なお、ユーザ端末100を用いた決済は、上述した処理に限定されるものではない。例えば、ユーザ端末100を用いた決済は、店舗Aに設置された店舗端末を用いたものであってもよい。例えば、ユーザ端末100は、ユーザを識別するためのユーザ識別情報を画面上に表示させる。このような場合、店舗Aに設置された店舗端末は、ユーザ端末100に表示されたユーザ識別情報を読み取り、ユーザ識別情報(若しくは、ユーザ識別情報が示す情報、すなわち、ユーザを示す情報(例えば、ユーザID)と、決済金額と、店舗Aを識別する情報とを示す決済情報をサーバ装置200へ送信する。このような場合、サーバ装置200は、ユーザ識別情報が示すユーザの口座から、店舗Aの口座へ、決済金額が示す額の電子マネーを移行させ、店舗Aの店舗端末或いはユーザ端末100に対し、決済が完了した旨の画面や所定の音声を出力させることで、決済が行われた旨を通知してもよい。
より詳細には、ユーザ端末100は、ユーザ識別情報とともにサーバ装置200に対して支払いリクエストを送信する。このような場合、サーバ装置200は、ワンタイムコードを生成し、生成したワンタイムコードとユーザ識別情報とを紐づけるとともに、ワンタイムコードをユーザ端末100に送信する。すると、ユーザ端末100は、画面上にワンタイムコード(すなわち、ユーザを識別する情報)を表示する。このような場合、店舗端末は、ユーザ端末100に表示されたワンタイムコードを読み取ると、読み取ったワンタイムコードと、グループ識別情報、グループ店舗識別情報および決済金額をサーバ装置200に送信する。すると、サーバ装置200は、ワンタイムコードに紐づけられたユーザ識別情報に紐づくウォレットから、グループ識別情報およびグループ店舗識別情報とに紐づけられるウォレットに決済金額分の電子マネーを移動させる。
また、ユーザ端末100を用いた決済は、ユーザが予め電子マネーをチャージした口座から店舗Aの口座へ電子マネーを移行させる処理のみならず、例えば、ユーザが予め登録したクレジットカードを用いた決済であってもよい。このような場合、例えば、ユーザ端末100は、店舗Aの口座に対して決済金額の電子マネーを移行させるとともに、ユーザのクレジットカードの運用会社(カード会社)に対し、決済金額を請求してもよい。
ところで、近年では、質問に対して回答を生成するように学習されたモデル(いわゆる自動生成AI)が注目されつつある。本実施形態では、かかるモデルを活用して自動応答サービスを提供する。
このような自動応答サービスでは、ユーザによる質問に対応する処理を実行する必要がある場合に、ユーザが入力した文章を、対応するAPIに対応したフォーマットへ変換する必要がある。
本実施形態では、自動生成AI(後述する第1モデルおよび第2モデル)を用いて上記のフォーマットの変換を行うこととした。
具体的には、図1に示すように、情報処理装置1は、ユーザ端末100からユーザによる質問を受け付ける(ステップS1)。質問は、自然言語の文章であり、情報処理装置1は、図2にて後述するUIを通じて、質問を受け付けることができる。
情報処理装置1は、第1モデルに入力するプロンプトを生成する(ステップS2)。なお、第1モデルは、GPTやBERT(Bidirection Encoder Representation from Transfomers)等のモデルである。また、第1モデルは、内部モデルの一例である。
本実施形態では、情報処理装置1は、第1モデルを用いたプロンプトエンジニアリングを実施し、ユーザによる質問から拡張プロンプトを生成する。なお、プロンプトエンジニアリングは、プロンプトの内容を最適化する処理である。
後述するように、情報処理装置1は、プロンプトを第1モデルに入力することで、拡張プロンプトを生成する。つまり、本実施形態では、第1モデルを利用してプロンプトエンジニアリングを実施することにより、後述する第2モデルM2から所望する回答を得ることができる。なお、拡張プロンプトの生成に関しては、図6~図10を用いて、後述する。
つづいて、情報処理装置1は、生成した拡張プロンプトを情報処理装置1外部の第2モデルM2へ入力し(ステップS3)、第2モデルM2から拡張プロンプトに対応する回答を取得する(ステップS4)。上述の拡張プロンプトは、第2モデルM2がAPIのフォーマットで回答を生成するような指示文章を含み、第2モデルM2から得られる回答は、例えば、JSON形式のフォーマットとなる。
このように、情報処理装置1は、ユーザによる自然言語の文章を、第2モデルM2を用いてAPIのフォーマットであるJSON形式のフォーマットへ変換することができる。つまり、情報処理装置1は、拡張プロンプトに対する第2モデルM2の回答をAPIリクエストとして取得することができる。
そして、情報処理装置1は、第2モデルM2から取得した回答(APIリクエスト)をキャッシュに登録する(ステップS5)。例えば、情報処理装置1は、第2モデルM2から取得した回答に対し、ユーザによる質問をタグ付けしてキャッシュに登録する。例えば、情報処理装置1は、形態素解析等により、ユーザが入力した質問から単語を抽出し、これらの単語をタグとして、第2モデルM2から取得した回答に紐づけてキャッシュに登録する。なお、情報処理装置1は、今回のタグに対応する過去のタグに対応する回答が既にキャッシュに登録されている場合には、キャッシュに登録する処理を省略するようにしてもよい。
その後、情報処理装置1は、第2モデルM2から取得した回答に基づき、APIリクエストを生成する(ステップS6)。APIリクエストは、実行情報の一例であり、APIを実行するための各種パラメータを含む。
つづいて、情報処理装置1は、APIリクエストをサーバ装置200に対して提供することで、APIを実行する(ステップS7)。これにより、サーバ装置200は、情報処理装置1に対して、APIリクエストに応じたコンテンツ出力を行う(ステップS8)。
この際、情報処理装置1は、APIリクエストに対して質問者となるユーザの識別子(例えば、ユーザID)を付与してサーバ装置200へ提供する。つまり、情報処理装置1は、外部の第2モデルM2に対しては、ユーザの識別情報を渡さずにAPIリクエストを生成する。これにより、情報処理装置1は、ユーザ情報を保護することができる。
そして、情報処理装置1は、サーバ装置200から取得したコンテンツに基づき、ユーザ端末100に対して回答を提供する(ステップS9)。なお、情報処理装置1がユーザに対して提供する回答の具体例については図12を用いて後述する。
このように、実施形態に係る情報処理装置1は、第1モデルを用いて、ユーザによる質問文から拡張プロンプトを生成し、生成した拡張プロンプトを第2モデルM2に入力することで、第2モデルM2からAPIリクエストの回答を取得する。
つまり、情報処理装置1は、GPTやBERT等のモデルを用いることで、ユーザが入力した自然言語の文章を、APIリクエストへ自動的に変換することができる。そして、情報処理装置1は、APIリクエストに対応する処理を実行することで、ユーザが入力した自然言語の文章に対応する処理を適切に実行することができる。
また、情報処理装置1は、新たな質問を受け付けた際には、質問内容を示すタグを生成し、タグに基づいてキャッシュから対応するAPIリクエストを検索する。情報処理装置1は、タグに対応するAPIリクエストがキャッシュされていれば、かかるAPIリクエストを用いて処理を実行し、タグに対応するAPIリクエストがキャッシュされていなければ、上述のように第1プロンプトおよび第2プロンプトによって第2モデルM2を用いてAPIリクエストを生成し、処理を実行する。
つまり、情報処理装置1は、APIリクエストにタグを紐づけてキャッシュに登録することで、第2モデルM2の利用頻度を抑えることができる。これにより、第2モデルM2の利用料金を抑えることができるので、効率的な運用を行うことができる。
次に、図2を用いて、ユーザから質問を受け付ける際のユーザインタフェースについて説明する。図2は、実施形態に係るユーザインタフェースの一例を示す図である。情報処理装置1は、サーバ装置200が提供する決済アプリを通じて、ユーザから質問を受け付ける。
図2に示すように、決済アプリのホーム画面HGには、QRコードや各アプリケーションを選択する選択ボタンが表示される。例えば、ユーザが選択ボタンBを選択すると、ホーム画面HGからトーク画面CGに画面が遷移する。
トーク画面CGは、図2に示すように、機能のチュートリアルが表示されるチュートリアル領域Cや、ユーザが質問を選択する想定質問Q、ユーザがテキストで質問を入力する入力領域Aが表示される。
ユーザが、想定質問Qの選択あるいは入力領域Aに文章を入力することで、情報処理装置1は、ユーザから自然言語の質問を受け付けることになる。そして、情報処理装置1は、質問に対する回答を、チャット形式でトーク画面CGを通じて提供する。
〔2.情報処理装置〕
次に、図3を用いて、実施形態に係る情報処理装置1の構成例について説明する。図3は、実施形態に係る情報処理装置1の構成例を示すブロック図である。図3に示すように、情報処理装置1は、通信部2と、記憶部3と、制御部4とを備える。なお、情報処理装置1は、情報処理装置1を利用する管理者などから各種操作を受け付ける入力部(例えば、キーボードやマウスなど)や、各種情報を表示するための表示部(例えば、液晶ディスプレイなど)を有してもよい。
通信部2は、例えば、NIC(Network Interface Card)などによって実現される。通信部2は、4G(4th Generation)または5G(5th Generation)などの通信ネットワークと有線または無線で接続され、通信ネットワークを介して、ユーザ端末100、サーバ装置200などの各々との間で情報の送受信を行う。
記憶部3は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置によって実現される。記憶部3は、プロンプト辞書記憶部31と、APIリクエスト記憶部32と、第1モデル記憶部33とを備える。
プロンプト辞書記憶部31は、プロンプト辞書を記憶する。プロンプト辞書は、上述した第1プロンプトおよび第2プロンプトに関する辞書である。図4は、実施形態に係るプロンプト辞書記憶部31に格納される情報の一例を示す図である。
図4に示すように、プロンプト辞書記憶部31は、「カテゴリ質問文」、「カテゴリ」および「API質問文」などといった項目の情報を互いに対応付けて記憶する。「カテゴリ質問文」は、ユーザの質問に対応するカテゴリを第1モデルに質問する際の質問文である。なお、カテゴリ質問文の具体例については、図6を用いて後述する。
なお、図4に示す例では、API質問文がすべて「カテゴリ質問文#1」で共通している場合について示しているが、プロンプト辞書記憶部31は、複数パターンのカテゴリ質問文を格納するようにしてもよい。
「カテゴリ」は、ユーザが入力した文章のカテゴリを示す。なお、カテゴリの具体例については、図6を用いて後述する。「API質問文」は、ユーザの質問に対応する処理を実行するためのAPIの種別や取得すべき値の種別を第1モデルに質問するための文章である。また、API質問文は、各APIに対応する回答のフォーマットを含む。なお、図4の例では、プロンプト辞書記憶部31は、1つのカテゴリに対して1つのAPI質問文が対応付けて記憶しているが、1つのカテゴリに対して複数のAPI質問を対応付けて記憶するようにしてもよい。
図3の説明に戻り、APIリクエスト記憶部32について説明する。APIリクエスト記憶部32は、第2モデルM2によって生成されたAPIリクエストを記憶する。なお、APIリクエスト記憶部32は、キャッシュの一例に対応する。
図5は、実施形態に係るAPIリクエスト記憶部32に格納される情報の一例を示す図である。図5に示すように、APIリクエスト記憶部32は、「タグ」および「APIリクエスト」などといった項目の情報を互いに対応付けて記憶する。
「タグ」は、ユーザによる質問内容を示すタグである。「APIリクエスト」は、第2モデルM2によって生成されたAPIリクエストである。つまり、APIリクエスト記憶部32には、第2モデルM2によって新たなAPIリクエストが生成されるたびに、新たなAPIリクエストが蓄積されることになる。
図3の説明に戻り、第1モデル記憶部33について説明する。第1モデル記憶部33は、第1モデルを記憶する。上述のように、第1モデルは、自然言語の文章に対して回答を生成するように学習されたモデルであり、GPTやBERTである。本実施形態において、第1モデルは、上述のプロンプトエンジニアリングを行うために利用されるモデルである。
次に、制御部4について説明する。制御部4は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって、情報処理装置1内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部4は、例えば、コントローラであり、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路により実現される。
図3に示すように、制御部4は、受付部41と、推定部42と、判定部43と、生成部44と、実行部45と、提供部46とを備え、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部4の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部4が有する各処理部の接続関係は、図3に示した接続関係に限られず、他の接続関係であってもよい。
受付部41は、ユーザが入力した実行指示を示す自然言語の文章を受け付ける。上述のように、受付部41は、サーバ装置200が提供する決済アプリを通じて、ユーザから自然言語の質問に関する文章である質問文書を受け付ける。
なお、受付部41は、例えば、電子マネーの送金指示や決済指示などといったサーバ装置200が提供する各種サービスに対する実行指示をユーザから受け付けるようにしてもよい。
推定部42は、受付部41によって受け付けられた文章内容を推定する。例えば、推定部42は、ユーザが入力した質問文章から自然言語処理によって所定の属性単語を抽出し、抽出した属性単語に基づいて、ユーザが入力した文章内容を推定する。
例えば、ユーザが入力した質問文章が「今月の電子マネーの利用金額を教えて」であるとする。この場合、推定部42は、「電子マネー」や、「利用金額」を属性単語として抽出する。
そして、推定部42は、抽出した属性単語をタグとして質問文章に対応付ける。なお、「今月」、「今週」、「今日」などといった日時や期間を示す単語は、ユーザが文章を入力した日時において意味が変化する一方、例えば、「2023年」、「2023年7月」、「2023年7月1日」等の単語は、一意に日時や期間を特定することができる。
そのため、推定部42は、「2023年」、「2023年7月」、「2023年7月1日」等についてはタグとして質問文章に対応付ける一方、「今月」、「今週」、「今日」等についてはタグとして質問文章に対応付けないようにしてもよい。すなわち、推定部42は、特定の変数を含む単語についてはタグとして生成しないようにしてもよい。
また、推定部42は、質問文章からタグを生成するモデルを用いて、質問文章の文章内容を推定し、タグを生成するようにしてもよい。例えば、かかるモデルは、BERT(Bidirectional Encoder Representation from Transformers)等によって実現することができる。
判定部43は、受付部41によって受け付けられた文章の実行指示と対応する処理を実行させるための実行情報(APIリクエストに対応)がキャッシュされているか否かを判定する。判定部43は、推定部42によって推定された質問文章の内容に基づいて、質問文章の内容に対応するAPIリクエストがキャッシュとなるAPIリクエスト記憶部32に格納されているか否かを判定する。
具体的には、判定部43は、推定部42によって生成されたタグに基づいて、APIリクエスト記憶部32を検索し、APIリクエストがキャッシュされているか否かを判定する。例えば、判定部43は、推定部42によって生成されたタグと同一のタグが紐づいたAPIリクエストを検索し、APIリクエストがキャッシュされているか否かを判定する。
そして、判定部43は、APIリクエストがキャッシュされていないと判定した場合、生成部44に対してプロンプトの生成指示を出力し、APIリクエストがキャッシュされていると判定した場合、キャッシュされているAPIリクエストを実行部45へ渡す。
生成部44は、判定部43によってAPIリクエストがキャッシュされていないと判定された場合、質問に対する回答を生成するように学習が行われた第2モデルM2を用いて、APIリクエストを生成する。
まず、APIリクエストの生成に先立って、生成部44は、第1モデル記憶部33に格納された第1モデルを用いて、プロンプトエンジニアリングを実施し、拡張プロンプトを生成する。ここで、図6~図9を用いて、拡張プロンプトの生成処理について説明する。
図6~図9は、実施形態に係る拡張プロンプトの生成処理の説明図である。なお、以下では、ユーザの質問文章が「Did I Spend more this month?」である場合について説明する。
例えば、第1モデルに入力するプロンプトは、上述のユーザの質問文章のカテゴリ、および、質問に対する処理を実行するうえで鍵となる値の種別(Value as the Key)を問い合わせる質問文章と、回答をJSON形式で出力させる指示文章とを含む。
そして、生成部44は、このようなプロンプトを第1モデルに入力して得られる回答を取得する。例えば、図7に示すように、第1モデルによる回答から、カテゴリIDが「0」であり、値の種別が「支出(Spend data)」であることが分かる。
次に、生成部44は、これらの回答に含まれるカテゴリIDや値の種別に基づき、さらに、第1モデルに入力するプロンプトを決定する。例えば、生成部44は、プロンプト辞書記憶部31を参照し、カテゴリIDや値の種別に基づきAPI質問文を選択する。
例えば、生成部44は、プロンプト辞書記憶部31からカテゴリIDが一致するAPI質問文を選択する。生成部44は、選択したAPI質問文から第1モデルに対してさらに入力するプロンプトを生成する。
例えば、生成部44は、図8に示すプロンプトを生成する。なお、図8に示すプロンプトにおいて、ユーザによる質問部分(Did you spend more this month?)は、各ユーザの質問に置き換えられる。
図8に示すように、ここでのプロンプトは、実行すべきAPIの種別(「normalized metric」)や取得すべき値(「current period statr datetime」、「current period end datetime」、「previous period statr datetime」、「previous period end datetime」)を問い合わせる文章および回答をJSON形式で出力させる指示文章を含む。
生成部44は、図8に示すプロンプトを第1モデルに入力し、第1モデルから回答を取得する。第1モデルは、このようなプロンプトに対して、例えば、図9に示す回答を出力する。
図9に示すように、第1モデルによる回答は、プロンプトによって指定された「normalized metric」、「current period statr datetime」、「current period end datetime」、「previous period statr datetime」、「previous period end datetime」の各項目に対する回答を含む。
そして、生成部44は、これらの回答を基に、拡張プロンプトを生成する。図10は、実施形態に係る拡張プロンプトの一例を示す図である。生成部44は、例えば、図10に示すような拡張プロンプトを生成する。拡張プロンプトは、最終的に第2モデルM2に入力するプロンプトであり、第2モデルM2でAPIリクエストを生成するためのプロンプトである。
図10に示す例において、拡張プロンプトは、リクエストボディ(request body)に記載された項目の入力、および、ユーザレスポンス(user response)に関する記述の依頼を含む。
そして、生成部44は、拡張プロンプトを第2モデルM2に対して入力し、第2モデルM2から拡張プロンプトに対する回答を得る。ここで、図11を用いて、第2モデルM2による出力結果について説明する。図11は、実施形態に係る拡張プロンプトに対する回答の一例を示す図である。
図11に示すように、第2モデルM2は、API種別、認証、リクエストボディ、および、ユーザレスポンスの各項目を記述した回答をJSON形式で生成する。つまり、第2モデルM2は、APIリクエストを回答として出力することになる。
このように、生成部44は、ユーザによる質問文章を基に、第1モデルを用いてエンジニアリングプロンプトを実施することで、第2モデルM2の回答がAPIリクエストとなるような拡張プロンプトを生成することができる。したがって、本実施形態では、ユーザによる質問から適切なAPIリクエストを生成することができる。
図3の説明に戻り、実行部45について説明する。実行部45は、キャッシュされている実行情報(APIリクエストに対応)または生成部44によって生成された実行情報を用いて処理を実行する。実行部45は、実行指示に対応するAPIリクエストがキャッシュされていた場合、対応するAPIリクエストをAPIリクエスト記憶部32から抽出し、かかるAPIリクエストにユーザIDを対応付けてサーバ装置200へ送信する。
また、実行部45は、実行指示に対応するAPIリクエストがキャッシュされていなかった場合、生成部44によって生成されたAPIリクエストに対して、ユーザIDを対応付けて対応するサーバ装置200へ送信する。
これにより、実行部45は、APIリクエストに対応するコンテンツをサーバ装置200から取得することができる。
そして実行部45は、生成部44によって新たに生成されたAPIリクエストに対して、推定部42によって生成されたタグを対応付けてAPIリクエスト記憶部32(キャッシュに対応)に登録する。
これにより、情報処理装置1は、新たな質問文章を受け付けた際に、文章の内容が類似していれば、キャッシュに登録された過去のAPIリクエストを活用して、データを取得することが可能となる。
なお、ここでは、第2モデルM2によってすべてのAPIリクエストを生成する場合について説明したがが、これに限定されるものではない。例えば、管理者等によって予め生成されたAPIリクエストを予めキャッシュしておくようにしてもよい。
また、情報処理装置1が、APIを通じてデータを取得する場合について説明したが、これに限定されるものではない。例えば、対応する回答となる文章やURLをキャッシュしておくようにしてもよい。
例えば、「パスワードの再設定」に関する質問に対して、情報処理装置1は、「パスワードの再設定」に関するページのURLを返すようにしてもよい。
提供部46は、ユーザの質問に対する回答を生成し、質問元となるユーザへ提供する。例えば、提供部46は、実行部45によってAPIから取得されたデータを基に、質問に対する回答を生成する。
そして、提供部46は、トーク画面CG(図2参照)を通じて、生成した回答をユーザへ提供する。なお、提供部46は、APIから取得したデータをグラフにした回答を生成し、提供するようにしてもよい。
ここで、図12を用いて、提供部46が提供する回答画面の一例について説明する。図12は、実施形態に係る回答画面の一例を示す図である。図12では、上述の通り、ユーザの質問が「Did I spend more this month」である場合について説明する。
このような質問の入力に対して、実行部45は、APIリクエストをサーバ装置200(図1参照)へ送信することで、サーバ装置200からコンテンツを得る。提供部46は、サーバ装置200から取得したコンテンツを基に、例えば、図12に示すテキストやグラフを生成し、ユーザに対して提供する。なお、図12に示すグラフについては、例えば、所定のAPIリクエストをサーバ装置200に対して送信することで、サーバ装置200によって生成されるものとする。
情報処理装置1では、このような一連の処理によって、ユーザの質問に対する回答を提供する。これにより、例えば、情報処理装置1では、ユーザの質問に対して適切な回答を生成し、提供することができる。
〔3.処理フロー〕
次に、図13を用いて、実施形態に係る情報処理装置1が実行する処理手順について説明する。図13は、実施形態に係る提供処理の一例を示すフローチャートである。なお、以下に示す処理手順は、ユーザによる質問文章の受け付けをキーとして、情報処理装置1によって繰り返し実行される。
図13に示すように、情報処理装置1は、ユーザから自然言語の質問文章を受け付ける(ステップS101)。つづいて、情報処理装置1は、質問内容を示すタグを生成する(ステップS102)。
次に、情報処理装置1は、タグに基づいてキャッシュを検索し(ステップS103)、APIリクエストがキャッシュにあるか否かを判定する(ステップS104)。情報処理装置1は、キャッシュ無と判定した場合(ステップS104;No)、プロンプトを生成する(ステップS105)。なお、ここでのプロンプトは、第1プロンプトおよび第2プロンプトを含む。
つづいて、情報処理装置1は、モデルから回答を取得する(ステップS106)。すなわち、情報処理装置1は、第2モデルM2からAPIリクエストを取得する。つづいて、情報処理装置1は、APIにAPIリクエストを送信し、データを取得する(ステップS107)。
そして、情報処理装置1は、ユーザによる質問に対する回答を提供し(ステップS108)、タグとAPIリクエストとを対応付けてキャッシュに登録し(ステップS109)、処理を終了する。また、情報処理装置1は、ステップS104の判定において、キャッシュ有りと判定した場合、キャッシュから対応するAPIリクエストを抽出したうえで、ステップS107の処理へ進む。
〔4.変形例〕
上述した実施形態では、ユーザが文章をテキストで入力する場合について説明したが、これに限定されるものではない。情報処理装置1は、音声等によってユーザから自然言語の文章を受け付けるようにしてもよい。
また、上述した実施形態では、電子マネーに関する質問を受け付ける場合について説明したが、これに限定されるものではない。例えば、ショッピングサイトなど、APIを通じてユーザのアカウント情報を取得するその他のサービスに本願発明を適用するようにしてもよい。
また、上述した実施形態では、ユーザから質問を受け付ける場合について説明したが、これに限定されるものではない。例えば、ユーザから送金等の実行指示を受け付けるようにしてもよい。
例えば、ユーザによる文章が「Aさんに3000円送金して」であって、「Aさん」が特定できない場合には、ユーザにAさんのアカウントを確認したうえで、送金を行うようにしてもよい。
〔5.効果〕
実施形態に係る情報処理装置1は、ユーザが入力した実行指示を示す自然言語の文章を受け付ける受付部41と、受付部41によって受け付けられた文章の実行指示と対応する処理を実行させるための実行情報がキャッシュされているか否かを判定する判定部43と、判定部43によって実行情報がキャッシュされていないと判定された場合、質問に対する回答を生成するように学習が行われたモデルを用いて、実行情報を生成する生成部44と、キャッシュされている実行情報または生成部44によって生成された実行情報を用いて処理を実行する実行部45とを備える。
また、情報処理装置1は、受付部41によって文章の内容を推定する推定部42を備え、判定部43は、推定部42によって推定された文章の内容に基づいて、実行情報がキャッシュされているか否かを判定する。
また、実行部45は、生成部44によって生成された実行情報を用いて処理を実行する場合、当該実行情報に推定部42によって推定された文章の内容を付与してキャッシュに登録する。
また、生成部44は、処理を実行するためのアプリケーションインタフェースの種別と、アプリケーションインタフェースで実行する実行情報の内容とをモデルに問い合わせることで、実行情報を生成する。また、生成部44は、モデルに対して、アプリケーションインタフェースのフォーマットで実行情報の内容を生成させる。
上述した各処理のいずれかもしくは組合せにより、本願に係る情報処理装置は、自動生成AIを用いたサービスにおいて効率的な運用を行うことができる。
〔6.ハードウェア構成〕
また、上述してきた実施形態に係る情報処理装置1は、例えば図14に示すような構成のコンピュータ1000によって実現される。図14は、実施形態に係る情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、ネットワーク(通信ネットワーク)Nを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置(図14では、出力装置および入力装置を総称して「入出力装置」と記載する)を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る情報処理装置として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部4の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
〔7.その他〕
以上、本願の実施形態を説明したが、これら実施形態の内容により本発明が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
例えば、上述した情報処理装置は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をAPI(Application Programming Interface)やネットワークコンピューティング等で呼び出して実現するなど、構成は柔軟に変更できる。
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
1 情報処理装置
2 通信部
3 記憶部
4 制御部
31 プロンプト辞書記憶部
32 APIリクエスト記憶部
41 受付部
42 推定部
43 判定部
44 生成部
45 実行部
46 提供部
100 ユーザ端末
200 サーバ装置

Claims (5)

  1. ユーザが入力した実行指示を示す自然言語の文章を受け付ける受付部と、
    前記受付部によって受け付けられた前記文章の実行指示と対応する処理を実行させるための実行情報がキャッシュされているか否かを判定する判定部と、
    前記判定部によって前記実行情報が前記キャッシュされていないと判定された場合、質問に対する回答を生成するように学習が行われたモデルを用いて、前記実行情報を生成する生成部と、
    前記キャッシュされている前記実行情報または前記生成部によって生成された前記実行情報を用いて前記処理を実行する実行部と
    前記モデルとは異なるモデルであって、質問に対する回答を生成するように学習が行われた内部モデルを記憶する記憶部と
    を備え、
    前記生成部は、
    前記内部モデルを用いてプロンプトエンジニアリングを実施し、前記プロンプトエンジニアリングによって生成された拡張プロンプトを前記モデルに入力することで、前記実行情報を生成する
    ことを特徴とする情報処理装置。
  2. 前記受付部によって受け付けられた前記文章の内容を推定する推定部
    を備え、
    前記判定部は、
    前記推定部によって推定された前記文章の内容に基づいて、前記実行情報が前記キャッシュされているか否かを判定すること
    を特徴とする請求項1に記載の情報処理装置。
  3. 前記実行部は、
    前記生成部によって生成された前記実行情報を用いて前記処理を実行する場合、当該実行情報に前記推定部によって推定された前記文章の内容を付与して前記キャッシュに登録すること
    を特徴とする請求項2に記載の情報処理装置。
  4. コンピュータが実行する情報処理方法であって、
    ユーザが入力した実行指示を示す自然言語の文章を受け付ける受付工程と、
    前記受付工程によって受け付けられた前記文章の実行指示と対応する処理を実行させるための実行情報がキャッシュされているか否かを判定する判定工程と、
    前記判定工程によって前記実行情報が前記キャッシュされていないと判定された場合、質問に対する回答を生成するように学習が行われたモデルを用いて、前記実行情報を生成する生成工程と、
    前記キャッシュされている前記実行情報または前記生成工程によって生成された前記実行情報を用いて前記処理を実行する実行工程と
    前記モデルとは異なるモデルであって、質問に対する回答を生成するように学習が行われた内部モデルを記憶する記憶工程と
    を含み、
    前記生成工程は、
    前記内部モデルを用いてプロンプトエンジニアリングを実施し、前記プロンプトエンジニアリングによって生成された拡張プロンプトを前記モデルに入力することで、前記実行情報を生成する
    ことを特徴とする情報処理方法。
  5. ユーザが入力した実行指示を示す自然言語の文章を受け付ける受付手順と、
    前記受付手順によって受け付けられた前記文章の実行指示と対応する処理を実行させるための実行情報がキャッシュされているか否かを判定する判定手順と、
    前記判定手順によって前記実行情報が前記キャッシュされていないと判定された場合、質問に対する回答を生成するように学習が行われたモデルを用いて、前記実行情報を生成する生成手順と、
    前記キャッシュされている前記実行情報または前記生成手順によって生成された前記実行情報を用いて前記処理を実行する実行手順と
    前記モデルとは異なるモデルであって、質問に対する回答を生成するように学習が行われた内部モデルを記憶する記憶手順と
    をコンピュータに実行させ、
    前記生成手順は、
    前記内部モデルを用いてプロンプトエンジニアリングを実施し、前記プロンプトエンジニアリングによって生成された拡張プロンプトを前記モデルに入力することで、前記実行情報を生成する
    ことを特徴とする情報処理プログラム。
JP2023178433A 2023-10-16 情報処理装置、情報処理方法および情報処理プログラム Active JP7511068B1 (ja)

Publications (1)

Publication Number Publication Date
JP7511068B1 true JP7511068B1 (ja) 2024-07-04

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023076413A (ja) 2021-11-22 2023-06-01 ネイバー コーポレーション 言語モデルを利用してドメインに特化した対話を提供する方法、コンピュータ装置、およびコンピュータプログラム
CN116541411A (zh) 2023-05-06 2023-08-04 深圳市奋源科技有限公司 Sql语句获取方法、报表生成方法、装置、计算机设备及存储介质置
CN116701601A (zh) 2023-07-07 2023-09-05 杭州阿里巴巴飞天信息技术有限公司 人机交互的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023076413A (ja) 2021-11-22 2023-06-01 ネイバー コーポレーション 言語モデルを利用してドメインに特化した対話を提供する方法、コンピュータ装置、およびコンピュータプログラム
CN116541411A (zh) 2023-05-06 2023-08-04 深圳市奋源科技有限公司 Sql语句获取方法、报表生成方法、装置、计算机设备及存储介质置
CN116701601A (zh) 2023-07-07 2023-09-05 杭州阿里巴巴飞天信息技术有限公司 人机交互的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SimFG et al.,GPTCache : A Library for Creating Semantic Cache for LLM Queries [online],GitHub,2023年09月14日,[検索日 2023.11.16], Internet<URL: https://github.com/zilliztech/GPTCache/blob/main/README.md >

Similar Documents

Publication Publication Date Title
US8412631B2 (en) Cloud enabled payment processing system and method
JP6978569B1 (ja) 管理装置、管理方法及び管理プログラム
JP2006268302A (ja) 決済方法及び決済システム
CN113222555B (zh) 数据处理方法、装置、设备及系统
JP7052127B1 (ja) 付与装置、付与方法及び付与プログラム
JP6938744B1 (ja) 付与装置、付与方法及び付与プログラム
JP2023089044A (ja) 生成装置、生成方法及び生成プログラム
JP7346650B2 (ja) 取得装置、取得方法及び取得プログラム
JP2022100991A (ja) 付与装置、付与方法及び付与プログラム
JP7511068B1 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP7074917B2 (ja) 管理装置、管理方法及び管理プログラム
JP2017033135A (ja) 商品販売システムおよび商品販売方法
US10055749B2 (en) Local contextual display
JP7023343B1 (ja) 作成装置、作成方法及び作成プログラム
JP7374277B1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP7302069B2 (ja) 管理装置、管理方法及び管理プログラム
JP7419589B1 (ja) サービス提供装置、サービス提供方法、およびプログラム
JP7319406B2 (ja) 提供装置、提供方法及び提供プログラム
JP6945702B1 (ja) 付与装置、付与方法及び付与プログラム
JP7393579B1 (ja) 情報処理装置、情報処理方法、およびプログラム
JP7009576B1 (ja) 提供装置、提供方法及び提供プログラム
JP7302065B2 (ja) 付与装置、付与方法及び付与プログラム
CN111985919A (zh) 支付数据处理方法、装置及电子设备
CN114581137A (zh) 权益配置方法、装置、存储介质及计算机设备
JP2024014127A (ja) 情報処理装置及び情報処理方法