← Back to Projects

AI-Automated Invoice Extraction & Validation

An MVP automation pipeline built for a finance client with strict data-handling requirements: invoice images are read by a self-hosted vision-language model, extracted line items and totals are checked against deterministic reconciliation rules rather than trusted on the model’s say-so, and anything that fails validation or comes back with low extraction confidence is routed to a human reviewer instead of silently auto-approved.

Orchestrated as a stateful LangGraph pipeline with human-in-the-loop review: invoice review pauses via LangGraph’s interrupt/checkpoint mechanism and resumes exactly where it left off once a reviewer approves, corrects, or rejects it through a small review UI, rather than requiring hand-crafted API calls (checkpointing is currently in-memory; durable Postgres-backed checkpointing across restarts is planned before production use). The entire stack (extraction model, application, and database) runs inside Docker with zero calls to any third-party API at runtime, so invoice data never leaves the client’s own infrastructure.

Python, LangGraph, FastAPI, Ollama (self-hosted vision-language model), RapidOCR (CPU-friendly OCR fallback branch), PostgreSQL, SQLAlchemy, Pydantic, Docker/docker-compose, pytest

A demo version is available at github.com/hmt2/invoice-extraction-pipeline. Full project not available (client project).