OCR+AIで進化する請求書管理システムの実力

株式会社LOWWS CTOのスラヴィ・パンタレーブ(Slavi Pantaleev)にインタビューし、 現在携わっているプロジェクトの中で興味深い技術や最新の知見について聞いていくコーナーです。

今回はAIを利用した請求書管理システムについてお聞きしました。

This is an interview with Slavi Pantaleev, CTO of LOWWS Inc., where we explore interesting technologies and the latest insights from his current projects.

This time, we discussed an invoice tracking system that utilizes AI.

The English article follows the Japanese article.


AIを利用した請求書管理システム

スラヴィ:この請求書管理システムの元々の目的には、AIを使うことは含まれていませんでした。 お客様は単に請求書を管理したいと考えていました。 届いたすべての請求書をシステムに登録して、経費をカテゴリー分けしたかったのです。 材料費、家賃、ガソリン代など、それぞれいくら支払っているのかを把握して、カテゴリごとに整理したいと考えていました。 また、数多くの請求書の中で、支払い済みのものと未払いのものを追跡したいとも考えていました。 そのためのトラッキングシステムを欲していたわけです。 月にだいたい100件ほどの請求書を管理する必要があると言っていました。 毎月100件の新しい請求書が届くとのことで、手作業ではかなり大変そうに感じました。

請求書ごとにデータを入力し、会社名やサプライヤー情報、各明細項目まで詳細を確認してカテゴリー分けしていく必要があります。 これにはかなりの時間がかかります。 システムを使わなければならない社員たちも、「これは大変だ」と言っていました。 もちろん、統計データを取れるので便利ではありますが、情報を全部手入力するのは大変だという話でした。 その時に私は、これならAI、特に大規模言語モデルを使えば、社員たちの負担をかなり軽減できるのではないかと考えました。 もしよければ、このシステムのデモをお見せできます。

ナオト:おお、いいですね。これってOCRシステムみたいなものですか?

スラヴィ:はい、OCRを使っています。 OCRを行うモデルを使っています。 データをOpenAIに送信して、請求書データのOCRと理解をしてもらっています。 画面を共有しますね。 今、見えていますでしょうか? これはブラウザによって自動的に英語に翻訳されています。 通常は英語以外のUIなのですが、より理解しやすいように翻訳されています。

これが請求書トラッキングのシステムです。 設定項目やサプライヤーの管理画面があって、通常はここで新しい請求書を作成またはアップロードします。 ファイルを選択してアップロードし、解析方法を選びます。 ライト解析(1セント未満)、ミディアム解析、インデプス(詳細)解析といった選択肢があります(それぞれ価格が異なります)。 通常はドラフトモードに進んで、すべて手動で入力することもできます。 請求書をアップロードすると、画面が分割表示され、右側に請求書が表示されます。 その後、請求書データを手動で入力していきます。 サプライヤーを作成または検索して、サプライヤー名、住所、会社番号、金額、請求書番号、通貨、支払い方法(現金、銀行振込、クレジットカード)、請求書の日付などを入力します。

さらに、費目も入力する必要があります。 金額とカテゴリを指定して、請求書の合計金額と一致させなければなりません。 すべての数字が合っていて正しく入力されていれば、保存することができます。 もし費目の種類など入力し忘れると、システムが警告してくれます。 この手作業のプロセスは、特に項目が多い請求書の場合、とても手間がかかります。 私は、サプライヤーを手動で作成したり、すべての詳細情報を入力しなくても済むようにできたら良いのにと思いました。

では、同じプロセスをAIを使ってやってみましょう。 まず新しい請求書をアップロードします。 そして、どのタイプのAI解析を使うか選びます(今回はコストと性能のバランスが良いミディアムモードを使います)。 こういったテキストベースのPDFの場合、ミディアムモードで十分です。 このモードは、システムにハードコーディングされたOpenAIの異なるモデルに対応しています。

インデプス解析を選ぶこともできます。 これは現在、OpenAIのo1モデルとGPT-4.1 nanoモデルを使って分類を行っており、コストは約60セント程度です。 テキストベースの請求書であれば、GPT-4.1とGPT-4.1 nanoを使ったミディアムモードで十分です。 これらは数日前にリリースされたばかりの最新モデルです。 以前はGPT-4oとo1モデルを使っていましたが、最近アップデートして新しいモデルに切り替えました。 請求書をアップロードすると、UIがロックされ、数秒後には解析が完了します。

サプライヤー情報(名前、請求書番号、金額、通貨、支払い方法、日付など)はすべて自動的に入力されます。 費用も自動的に分類されます。たとえば今回はすべて「外部サービス」として分類されています。 このレコードには「AIによって自動入力されたフィールドが含まれています」という注意書きがあり、ロボットアイコンで表示されています。 これらはレビューして承認する必要があります。もしこのサプライヤーがシステムに初めて登録されるものであれば、データの確認が求められます。 サプライヤー情報を確認し、AIによって入力された各項目もチェックします。

通常、AIの結果はかなり正確です。 費用の合計金額と請求書の合計が一致していれば、AIが間違っている可能性は非常に低いです。確認が完了したら、保存して、請求書のステータスを「登録済み」にします。 そして支払い待ちの状態になります。なお、経費のロケーション(支店)情報は、請求書からは自動では取得できないため、手動で選択する必要があります。 お客様は支店ごとに経費を分類したいと考えているためです。

ナオト:なるほど。


An invoice tracking system that utilizes AI.

Slavi: The original intention of this invoice tracking system was not to have AI. The customer wanted to track invoices. Every invoice that comes to them for some expenses, they wanted to add to the system and categorize its expenses. They wanted to see how much they are paying for materials, rent, car fuel, etc., and categorize them so they know their expenses by category. They also wanted to track across their many invoices which ones are paid and which ones are still due. They wanted such a system for tracking their invoices. They said they have about 100 invoices to track each month. 100 new invoices are coming each month, which sounded like a lot of manual work.

You need to enter each invoice, go into the details—company name, supplier details, each line item—and categorize them, which takes a lot of time. People who had to work with the system said it would be a lot of work. Maybe it’s useful because we’ll have nice statistics, but entering all this information will be a lot of work. At that point, I thought it was a great system to use AI, large language models, to save a lot of work for employees. I can give you a demonstration of the system if you’d like.

Naoto: Oh, sweet. Is is it like a OCR system?

Slavi: Yeah, it uses OCR. It uses models that do OCR. We send the data to OpenAI; they do the OCR and understanding of the invoice data. Let me share my screen. You can see this now. This is automatically translated by my browser. Normally the UI is not in English, but it’s translated for easier understanding.

This is the system for tracking invoices. There are settings, suppliers, and normally you would create or upload a new invoice. You choose a file, upload the invoice, and you can choose how to analyze it: light analysis (less than a cent), medium, or in-depth analysis (different pricing).

Normally you can go directly to draft and do everything manually. Uploading an invoice, you see it on the split screen. You then have to enter all the invoice data manually: create or search for a supplier, input the supplier name, address, company number, amounts, invoice number, currency, payment method (cash, bank transfer, credit card), and the invoice date.

You also have to enter expenses: amount, category, and make sure the numbers match up to the total amount of the invoice. Once everything matches and is correctly entered, you can save it. If you forget something like the type of expense, it will prompt you. This manual process is a lot of work, especially when invoices have many items. I figured it would be easier if you didn’t have to create the supplier and enter all details manually.

Let’s look at the same process with AI. You upload a new invoice, choose the type of AI analysis (medium in this case, which balances performance and cost). For textual PDFs like this one, medium mode is good enough. These modes correspond to different OpenAI models hardcoded into the system.

You can also choose in-depth analysis, which currently uses OpenAI’s o1 model and GPT-4.1 nano model for classification, costing about 60 cents. For textual invoices, medium mode using GPT-4.1 and GPT-4.1 nano is sufficient. These are brand-new models released a few days ago; previously, it used GPT-4o and the o1 model, but now it’s updated to the new models. When you upload, the UI locks, and a few seconds later, it’s done. Supplier information is automatically populated with all details: supplier name, invoice number, amounts, currency, payment method, dates. Costs are automatically classified, e.g., everything classified as external services in this case.

There’s a note saying this record contains fields automatically filled by AI, indicated by a robot icon. You must review and approve them. The system notes if it’s the first time seeing this supplier and suggests confirming the data. You confirm the supplier and check all fields populated by AI.

Usually, the AI does it correctly. If the expense amounts match the invoice total, it’s very likely the AI didn’t make a mistake. Once confirmed, you save it, and the invoice status becomes “introduced” and awaits payment. You also need to manually choose a location for the expense because the customer wants to classify expenses by branch. This cannot be inferred from the invoice automatically.

Naoto: I see.


この記事はインタビューをもとにAIを使用して作成されています。 This article was created using AI based on interviews.