このページの本文へ

FIXER Tech Blog - AI/Machine Learning

仕訳を生成AIが自動で行うプロンプトを作ってみた

2024年07月03日 13時00分更新

文● 高江 怜臣/FIXER

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「仕訳を自動で行うプロンプトを作ってみた」を再編集したものです。

 どーもです。2024年入社の高江です。

 今回は仕訳を自動で行ってくれるプロンプトを作成したので紹介していきたいと思います。

仕訳って何?

 そもそも仕訳とはどういったものなのか。普段の生活ではあまり聞きなれない言葉ですので、GaiXerに聞いてみましょう(GaiXerはFIXERが提供するマルチLLM対応の生成AIプラットフォームです)。

 仕訳とは、その企業がどういった取引を行ったのかを整理するための作業です。仕訳を行うことで財務諸表が作成され、そこから企業の詳しい経営状況が把握できます。仕訳を正しく行うことで、企業は適切な経営判断を行ったり、外部の人間に対して信用を得ることができるため、とても重要な作業であることが分かります。

 しかし、企業は様々な顧客に対して複数の複雑な取引を行います。それらを一つ一つ確認し、表として記録することは非常に大変です。私は大学の授業で会計学を学んでおり、その中で仕訳を行う演習があったのですが、金額計算や正しい勘定科目の決定など、複雑な作業が多いと感じました。なので、仕訳を生成AIに行ってもらうことで会計作業の負担が減り、その分他の業務に割り当てる時間が増え、生産性が向上するのではないかと考えました。

プロンプトを作成

 以下が実際に作成したプロンプトです。LLMはClaude3 Opusを使用しました。

#命令
あなたは経理のエキスパートです。
{入力}に基づいて、日本の会計基準に基づいた仕訳を行い、仕訳結果を出力してください。

#step-by-stepで実行
Step1.取引内容に応じた勘定科目を決める
例:3万円の商品を現金で売り上げた
この場合、該当する勘定科目は現金と売上になります。

Step2.勘定科目を5つのグループのいずれかに分類する
勘定科目の例
資産:現金、普通預金、売掛金、貸付金、商品など
負債:買掛金、引当金、前受金など
純資産:資本金など
費用:仕入、販管費など
収益:売上、受取利息など

Step3.勘定科目の計算を行い、各勘定科目の増減を考える
資産の増加、負債の減少、純資産の減少、収益の減少、費用の増加が発生した場合は、左側に書く
資産の減少、負債の増加、純資産の増加、収益の増加、費用の減少が発生した場合は、右側に書く

#出力形式
**テーブル形式で出力してください**
- テーブルを出力する前に計算過程を記してください。
- カラム名を[借方]と[貸方]の二つにしてください。
- セル内で出力する文字列は「[勘定科目] [金額]」で、[金額]に単位は付けないでください。
- 各カラムの一番下のセルには各カラムの[金額]の合計を出力してください。

#入力例と出力例
**出力例ではテーブルだけを出力していますが、実際の出力には計算過程も含めてください**
##入力例1
株主が50000円を現金で出資して営業を開始した。
##出力例1
| 借方 | 貸方 |
| ---- | ---- |
| 現金 50,000 | 資本金 50,000 |
| 50,000 | 50,000 |

##入力例2
MSHR社はシステム関係の保守サービスを行っている。当期はA社およびB社へサービスを提供し、A社との契約金額¥500,000、B社との契約金額¥1,600,000 を現金で受け取った。ただし、B社は翌期も継続してサービスの提供を行うため、¥600,000 は収益に計上しない。同時に、仕掛品勘定に計上されていた当期の諸費用¥1,000,000 を原価に計上する。
##出力例2
| 借方 | 貸方 |
| ---- | ---- |
| 現金 2,100,000 | 役務収益 1,500,000 |
|  | 前受金 600,000 |
| 役務原価 1,000,000 | 仕掛品 1,000,000 |
| 3,100,000 | 3,100,000 |

##入力例3
業務用システムソフトの開発・制作会社であるOGT社に依頼していた社内利用目的ソフトウェア(開発費用88,000,000のうち、60,000,000は普通預金により支払済み)が完成し使用を開始したため、一度ソフトウェア勘定に振替えた。また、残額の28,000,000について、普通預金より支払った。なお、この開発費用の内容を精査したところ、ソフトウェアの作り直し対象となった部分の費用8,000,000が含まれており、資産性がないものとして除却処理することとした。
##出力例3
| 借方 | 貸方 |
| ---- | ---- |
| ソフトウェア 88,000,000 | ソフトウェア仮勘定 60,000,000 |
|  | 普通預金 28,000,000 |
| ソフトウェア除却損 8,000,000 | ソフトウェア 8,000,000 |
| 96,000,000 | 96,000,000 |

##入力例4
当期の税引前当期純利益は¥525,000 であり、減価償却費¥45,000 および貸倒引当金繰入¥25,000 は税務上の課税所得計算上損金不算入(将来減算一時差異)であった。また、貸借対照表にはその他有価証券評価差額金¥7,000(税効果会計考慮前¥10,000)が計上される。期中の中間納付はなかったものとして、法人税、住民税及び事業税の計上にかかる仕訳を示しなさい。
##出力例4
| 借方 | 貸方 |
| ---- | ---- |
| 法人税、住民税及び事業税 178,500 | 未払法人税等 178,500 |
| 178,500 | 178,500 |

実行結果

 では、実際に動かしてみましょう。今回は、日商簿記2級の商業簿記の問題を入力してみます。

 ちゃんと出力してくれましたね。

GPT-4oとの違い

 今回仕訳を自動で行うプロンプトを作るうえで課題となった点は勘定科目の決定です。勘定科目は取引の内容を分類する科目名であり、これがないと財務諸表のどの項目に金額を記録すればいいのかわからなくなります。なので、正しい勘定科目を出力してほしいのですが、勘定科目は聞きなれない日本語が多いため、LLMによっては正しい勘定科目を出力してくれないことがあります。また、勘定科目毎に計算方法が変わってくるため、取引の内容から正しい勘定科目を決定することが今回のプロンプト作成で重視する点だと考えました。以下は、同じプロンプトをGPT-4oをLLMにした場合の出力です。

 一見正しいように見えますが、途中で出力されたテーブルでは左右の合計金額が一致していません。また、不足した金額を何故か資本準備金に計上したりと無茶苦茶な計上を行っています。

 では、何故GPT-4oよりもClaude3 Opusの方が精度がいいのでしょうか。私の考察では、トークン数が関係していると考えられます。トークン数はモデルが認識する単語や記号の数の指標です。つまり、トークン数が多いほどより多くの文字や複雑な文章を理解できると考えられます。2つのLLMのトークン数を比較してみると、GPT-4oが12万8000トークンなのに対して、Claude3 Opusは20万トークンと1.5倍以上も違います。このトークン数の差が、勘定科目とその計算方法の理解度に差が出ていると感じました。

まとめ

 今回は仕訳を自動で行うプロンプトを作成してみました。入力や出力に合わせて適切なLLMを使い分けることの重要性と、GaiXerの特徴であるマルチLLMの良さに気づけたことが個人的にはいい収穫でした。

 またいい感じのプロンプトを作成出来たら紹介してみたいと思います

高江 怜臣

カテゴリートップへ

この連載の記事