How ruizguille/invoice-processing works
This is a command-line invoice-processing application. An operator runs the workflow over PDFs in the configured invoice directory: it converts each PDF’s first page to an image, asks GPT-4o to extract structured invoice data, validates and flattens the results, calculates overall and monthly financial summaries, and writes an Excel report. The graph separates extraction, data processing, and reporting stages; the prompt and configuration are supporting layers. Source excerpts show the main calls, but do not show runtime behavior beyond those excerpts.
Main entry points: extraction.py Extraction orchestrator · main.py Workflow runner · config.py Application settings · processing.py Invoice dataframe builder
Components 14
Workflow entry
- Workflow runner
app/main.py
Invoice extraction
- PDF image conversion
app/extraction.py - Extraction orchestrator
app/extraction.py
Data processing
- Invoice validation schema
app/processing.py - Invoice flattening
app/processing.py - Invoice dataframe builder
app/processing.py - Financial summaries
app/processing.py
Configuration and reporting
- Application settings
app/config.py - Extraction prompt
app/prompt.py - Excel report generator
app/processing.py
Other components
- Operator
- Invoice PDFs
data/invoices - OpenAI GPT-4o
- Excel report
Connections 16
- Operator → Workflow runner: runs
README.md - Workflow runner → Application settings: reads settings
app/main.py - Workflow runner → Extraction orchestrator: starts extraction
app/main.py - Application settings → Extraction orchestrator: sets input directory
app/main.py - Invoice PDFs → Extraction orchestrator: reads PDFs
app/extraction.py - Extraction orchestrator → PDF image conversion: converts PDF
app/extraction.py - Extraction orchestrator → Application settings: uses API key
app/extraction.py - Extraction orchestrator → Extraction prompt: formats prompt
app/extraction.py - Extraction orchestrator → OpenAI GPT-4o: requests extraction
app/extraction.py - Workflow runner → Invoice dataframe builder: builds dataframe
app/main.py - Invoice dataframe builder → Invoice validation schema: validates records
app/processing.py - Invoice dataframe builder → Invoice flattening: flattens records
app/processing.py - Workflow runner → Financial summaries: calculates summaries
app/main.py - Workflow runner → Excel report generator: creates report
app/main.py - Application settings → Excel report generator: sets output path
app/main.py - Excel report generator → Excel report: writes workbook
app/processing.py