見出し画像

ChatGPTはレシートから税区分と適格請求書の判定をして複合仕訳を作れるか?

今、研究中の軽いネタを(本記事は無料です)。

freeeラボでレシートや請求書Googleドライブに放り込んでおけば、勝手にfreeeにアップロードしてくれるスクリプトを紹介しました。

ついでに、命名規則:勘定科目_発生日(yyyyMMdd)_支払総額_支払先に則ってChat API(ChatGPTに相当)リネームしてもらってます。

流石に勘定科目類推は難しそうで、これは別アプローチをそのうち紹介します。

ここまで来ると欲が出るのは、むしろそのまま取引作ってくれないかな?という要望です(後でちゃんとチェックするからさ)。

色々妄想してるのですが、単一仕訳はいけそうですが、税率混在や品目混在の複合仕訳は難しそうという印象。

とくに税率ごとの金額の抜粋は色々試しましたが苦手のようです。

加えて今は、インボイス制度の適格請求書の判定も必要です(選択する税区分が変わる)。

ぶっちゃけ人間でも判定が難しい適格請求書ですが、これはある程度粗いロジックにすることで、ChatGPTらしい「真面目だけれどちょっぴりあわてんぼうなアシスタント」として活躍してもらえるかなと思ってます。

具体的には、Tからはじまる14桁の登録番号が書いてあったら適格請求書と判断する!という粗いチェックです。

ChatGPTにレシートの税区分と適格請求書判定をお願いしてみた

ということで目的を達成するためにプロンプトを考えてみました。

以下のレシートをOCRしたテキストを解析し
{
payment_date:支払日,
total_amount:支払総額,
tax10: 消費税10%支払の有無(Boolean型)
tax8: 消費税8%支払の有無(Boolean型)
invoice_registration: 適格請求書に該当するか(Boolean型)
invoice_number: 登録番号
}

のJSON文字列を出力してください。

#参考
インボイス制度登録における登録番号とは、適格請求書発行事業者になるための登録申請を行い、その申請を認められた事業者に発行される番号のことです。

- インボイス制度の登録番号は「T + 13桁の番号」で構成されている
- OCRされたテキストのため英数字が正確でないことを考慮する
- 登録番号の記載がある場合は、最初の1文字はTと類推する
- 登録番号の記載がある場合は、最初の1文字のTを含め14桁ある場合は適格請求書と類推する

#制約条件
- 支払日はyyyy-MM-dd形式の文字列で出力する
- 支払総額は数値のみで出力する
- 登録番号はTからはじまる14桁の英数字

#テキスト
###

©freeelover

元のレシートからのOCRの精度次第なところがありますが、結構安定した出力が得られます。

このOCRされたレシートテキストから、指定された情報を抽出してJSON形式で出力します。

- 支払日は「2024年1月29日」で、フォーマットを「yyyy-MM-dd」形式に変換する必要があります。
- 支払総額は「¥821」と読み取れます。
- 消費税10%と消費税8%の支払いがあるかどうかは、レシート上の情報から判断できます。「内税率10%対象額」が「¥305」、「内税率8%対象額」が「¥516」と記載されているため、両方の税率の支払いがあることがわかります。
- 適格請求書に該当するかどうかは、登録番号が「T + 13桁の番号」であるかどうかによります。このレシートには「登録番号17380001006893」とあり、OCRの誤認識を考慮しても「T」で始まる14桁の番号と推測できます。よって、これは適格請求書に該当します。

これらの情報に基づいてJSONを作成します。

レシートの情報を解析した結果、以下のJSON文字列が得られました。

```json
{
"payment_date": "2024-01-29",
"total_amount": 821,
"tax10": true,
"tax8": true,
"invoice_registration": true,
"invoice_number": "T7380001006893"
}
```

この出力では、OCRから読み取った情報を基にして、各フィールドを適切に抽出し、フォーマットを調整しています。登録番号は、OCRの誤認識を考慮し、適格請求書に該当すると判断した「T7380001006893」という値を設定しました。

ChatGPT

ヨークベニマルでの買い物ですが、税率混在しておりますが、ちゃんと判定できています。

また、OCRのテキストではTの印字が潰れてしまっていて、"登録番号17380001006893"と認識していましたが、プロンプトの指示によって類推ができてます。

これなら色々使えそう…というのが所感です。

存在するインボイス登録番号かどうかは、国税庁のWeb-APIを使って確認するとかもアリですね。

おわりに

このアイデアをもとに、freeeラボではGoogle Apps Scriptで自動化スクリプトを実装しています。

月額制ですが、有料記事が見放題なので、結構お得だと思いますので、ぜひ参加してみてくださいね。

コメント・ご質問などもお待ちしております!
あと、もし開発の依頼などあれば、X(旧Twitter)でお声がけください。

@iamfreeelover
#freee #freeelover #ChatGPT

ここから先は

0字

アーリーバードプラン

¥500 / 月
人数制限あり
このメンバーシップの詳細

この記事が気に入ったらチップで応援してみませんか?