お疲れ様です!IT業界で働くアライグマです!
結論から言います。銀行取引の分類を手動でやる時代は終わりました。tallyを使えば、LLM(GPT-4やClaude)を活用したAIエージェントが、取引明細を自動で「食費」「交通費」「固定費」などに分類してくれます。
「家計簿アプリを使っているけど、分類精度がいまいち」
「毎月の取引を手動で振り分けるのが面倒」
「自分でルールを設定するのが大変」
こうした課題を抱えている方は多いのではないでしょうか。tallyはオープンソースのPythonツールで、LLMを使って柔軟に取引を分類できます。ルールベースでは対応できない曖昧な取引名も、AIが文脈を理解して適切なカテゴリに振り分けます。
今回は、tallyの仕組みと導入方法、実際に銀行取引を分類させるまでの手順を解説します。
tallyとは:LLMベースの銀行取引分類エージェント
tallyは、GitHubで公開されているオープンソースプロジェクトです。LLM(GPT-4、Claude、ローカルLLMなど)を使って、銀行取引の説明文から適切なカテゴリを推論し分類します。
従来のルールベース分類との違い
従来の家計簿アプリは「キーワードマッチング」で分類していました。
- 「スターバックス」→ カフェ
- 「JR東日本」→ 交通費
- 「Amazon」→ ショッピング
しかし、この方法には限界があります。
- 「A商店」のような曖昧な店名は分類できない
- 「Amazon」でも書籍とガジェットでは用途が違う
- 新しい店名が出てきたらルールを追加する必要がある
tallyはLLMを使うため、取引の文脈を理解して分類します。「Amazon Kindle」は書籍・メディア、「Amazon デバイス」は家電と、AIが判断してくれます。
tallyのアーキテクチャ
tallyは以下の流れで動作します。
- CSVまたはJSON形式で取引データを入力
- LLMに取引説明を送信し、カテゴリを推論
- 推論結果を検証し、分類済みデータを出力
Context EngineeringでAIエージェントの精度を高める設計パターンで解説した「コンテキスト設計」がtallyでも活用されています。
IT女子 アラ美環境構築とセットアップ
tallyを動かすための環境構築手順を解説します。


前提条件
- Python 3.10以上
- OpenAI API または Anthropic API のキー
- 銀行取引のCSVデータ(明細一覧)
インストール手順
# リポジトリをクローン
git clone https://github.com/davidfowl/tally.git
cd tally
# 依存関係をインストール
pip install -r requirements.txt
# 環境変数を設定
export OPENAI_API_KEY="your-api-key-here"
設定ファイルの編集
config.yamlでカテゴリとモデルを設定します。
model:
provider: openai
name: gpt-4o
temperature: 0.1
categories:
- name: 食費
description: 食料品、レストラン、カフェなど
- name: 交通費
description: 電車、バス、タクシー、ガソリンなど
- name: 固定費
description: 家賃、光熱費、通信費など
- name: 娯楽費
description: 映画、ゲーム、サブスクリプションなど
Pydantic v2のバリデーション設計で解説したように、LLMの出力を型安全に扱うことで、分類結果の信頼性が高まります。



銀行取引データの分類実行
実際にtallyで銀行取引を分類してみましょう。
入力データの準備
銀行からダウンロードしたCSVを以下の形式に変換します。
date,description,amount
2025-01-15,スターバックスコーヒー 渋谷店,580
2025-01-15,Amazon.co.jp デジタルコンテンツ,1980
2025-01-16,JR東日本 Suicaチャージ,3000
2025-01-17,ドコモ 携帯電話料金,8500
分類の実行
# 取引データを分類
python classify.py --input transactions.csv --output classified.csv
# 分類結果を確認
cat classified.csv
出力例:
date,description,amount,category,confidence
2025-01-15,スターバックスコーヒー 渋谷店,580,食費,0.98
2025-01-15,Amazon.co.jp デジタルコンテンツ,1980,娯楽費,0.92
2025-01-16,JR東日本 Suicaチャージ,3000,交通費,0.99
2025-01-17,ドコモ 携帯電話料金,8500,固定費,0.97
Amazon Bedrock AgentCoreでAIエージェントを本番運用するガイドで解説した「信頼度スコア」の考え方は、ここでも活かせます。



【ケーススタディ】月300件の取引を自動分類した事例
実際にtallyを導入して家計管理を自動化した事例を紹介します。
状況(Before)
- 対象:月300件程度の銀行・クレジットカード取引
- 課題:毎月2〜3時間かけて手動で分類していた
- 問題点:分類基準がブレる、曖昧な店名は毎回調べる必要があった
行動(Action)
- tallyを導入し、GPT-4oを分類エンジンに設定
- カテゴリを15種類に整理(食費、交通費、固定費、娯楽費、医療費など)
- confidence 0.85未満は「要確認」フラグを付与するルールを追加
- 月初に前月分の取引CSVをtallyに流すワークフローをcronで自動化
結果(After)
- 分類精度:95%(手動確認は月15件程度に削減)
- 作業時間:2〜3時間 → 15分(月初の確認のみ)
- APIコスト:月額約200円(GPT-4o、300件処理)
ハマりポイント
- 最初はカテゴリ説明が曖昧で「食費」と「外食費」を分けていたが、LLMが混同 → 統合して「食費」に一本化
- 英語のサービス名(Netflix、Spotifyなど)を「不明」に分類されていた → カテゴリ説明に具体例を追加
月額5ドルで本番運用できるRAGシステムの構築で解説したコスト最適化の考え方も参考になります。



カスタマイズと応用テクニック
tallyをさらに活用するためのカスタマイズ方法を紹介します。
分類精度を上げるプロンプトチューニング
config.yamlのカテゴリ説明を具体的にすることで精度が上がります。
悪い例:
食費: 食べ物に関する支出
良い例:
食費: スーパー、コンビニ、レストラン、カフェ、フードデリバリー(Uber Eats、出前館)での食品・飲料購入
ローカルLLMでの運用
コストを完全にゼロにしたい場合は、ローカルLLMを使うこともできます。
- Ollama + Llama3:無料で運用可能、精度は80%程度
- LM Studio + Mistral:日本語対応が弱いがコスト無料
CursorとOllamaで構築するローカルRAG環境で解説した設定を応用すれば、ローカル環境でtallyを動かせます。
おすすめのAIスキル習得サービス
本記事で解説したようなAI技術を、基礎から体系的に身につけたい方は、以下のスクールも検討してみてください。
| 比較項目 | DMM 生成AI CAMP | Aidemy Premium |
|---|---|---|
| 目的・ゴール | ビジネス活用・効率化非エンジニア向け | エンジニア転身・E資格Python/AI開発 |
| 難易度 | プロンプト作成中心 | コード記述あり |
| 補助金・給付金 | リスキリング補助金対象 | 教育訓練給付金対象 |
| おすすめ度 | 今の仕事に活かすなら | AIエンジニアになるなら |
| 公式サイト | 詳細を見る | 詳細を見る |



まとめ
tallyを使ったAIエージェントによる銀行取引分類について解説しました。
- tallyはLLMを使って銀行取引を自動分類するオープンソースツール
- ルールベースでは対応できない曖昧な取引名も、AIが文脈を理解して分類
- GPT-4oで月300件を処理しても、APIコストは約200円
- カテゴリ説明を具体的に書くことで分類精度が向上
- ローカルLLMを使えばコスト無料での運用も可能
家計管理の自動化に興味がある方は、ぜひtallyを試してみてください。













