txn-harvester
Extract and structure financial transaction data from unstructured text
txn_harvester is a Python package designed to parse and validate financial transaction data from raw text inputs (e.g., bank statements, transaction logs) into structured formats. It leverages LLM7 (via langchain_llm7) by default, but supports any LangChain-compatible LLM for flexibility.
🚀 Features
- Extracts transaction details (amount, date, description, category) from unstructured text
- Validates output against predefined financial patterns using regex
- Supports custom LLMs (OpenAI, Anthropic, Google, etc.) via LangChain
- Lightweight and easy to integrate into financial workflows
📦 Installation
pip install txn_harvester
🔧 Usage
Basic Usage (Default LLM7)
from txn_harvester import txn_harvester
user_input = """
Paid for groceries at Whole Foods: $125.50 on 2024-05-15
Rent payment: $1500.00 (due 2024-05-20)
"""
response = txn_harvester(user_input)
print(response)
Custom LLM (OpenAI Example)
from langchain_openai import ChatOpenAI
from txn_harvester import txn_harvester
llm = ChatOpenAI(model="gpt-4")
response = txn_harvester(user_input, llm=llm)
Custom LLM (Anthropic Example)
from langchain_anthropic import ChatAnthropic
from txn_harvester import txn_harvester
llm = ChatAnthropic(model="claude-2")
response = txn_harvester(user_input, llm=llm)
Custom LLM (Google Example)
from langchain_google_genai import ChatGoogleGenerativeAI
from txn_harvester import txn_harvester
llm = ChatGoogleGenerativeAI(model="gemini-pro")
response = txn_harvester(user_input, llm=llm)
🔑 API Key Configuration
- Default: Uses
LLM7_API_KEYfrom environment variables. - Manual: Pass via
api_keyparameter or setLLM7_API_KEYin your shell:export LLM7_API_KEY="your_api_key_here"
- Free Tier: Sufficient for most use cases (rate limits apply).
- Get Key: Register at https://token.llm7.io
📝 Parameters
| Parameter | Type | Description |
|---|---|---|
user_input |
str |
Raw text containing financial transactions (required). |
api_key |
Optional[str] |
LLM7 API key (optional; defaults to LLM7_API_KEY). |
llm |
Optional[BaseChatModel] |
Custom LangChain LLM (optional; defaults to ChatLLM7). |
📝 Output
Returns a list of structured transaction data (e.g., [{"amount": "$125.50", "date": "2024-05-15", ...}]).
🔄 Customization
- Modify regex patterns in
prompts.pyto adapt to specific transaction formats. - Extend the package by subclassing
txn_harvesterfor domain-specific parsing.
📝 License
MIT
📧 Support & Issues
- GitHub Issues: https://github.com/chigwell/txn-harvester/issues
- Author: Eugene Evstafev (hi@euegne.plus)
Metadata
Release files for txn-harvester 2025.12.22084352
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| txn_harvester-2025.12.22084352.tar.gz | 5.5 kB | Without provenance | Details for txn_harvester-2025.12.22084352.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| txn_harvester-2025.12.22084352-py3-none-any.whl | Python 3 | none | any | Details for txn_harvester-2025.12.22084352-py3-none-any.whl |
Total release size: 11.6 kB
Release files / txn_harvester-2025.12.22084352.tar.gz
| Download URL | txn_harvester-2025.12.22084352.tar.gz |
|---|---|
| Size | 5.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
55792f5773ba5c728c15d5b680a92ceef3778102a386bef34e2ce9667762667d
|
|
BLAKE2b-256 checksum How to use checksums |
2752b605d33a7c504555bfc633a678a3c53662d8887600abcddd89532b8f042c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.1
|
Release files / txn_harvester-2025.12.22084352-py3-none-any.whl
| Download URL | txn_harvester-2025.12.22084352-py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ac9f77032bd88bfab066bb35db1cf453f574cf9acad5aa7734640a8d1c5d788a
|
|
BLAKE2b-256 checksum How to use checksums |
d8bc8c4d233a843f5de885625b3c92fabf4c5d2d64bed144e909a2f78afa0ee7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.1
|
Security for txn-harvester 2025.12.22084352
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.