How pooja-sri-g/invoice-reconciliation-system works
This is a Streamlit invoice-reconciliation app paired with a FastAPI federated-learning coordinator. A finance user uploads a purchase order, goods-received note, and invoice; the client sends their PDFs to Gemini for a local-process three-way comparison, displays the result, and derives a numeric-only update for the coordinator. The API exposes configuration, update submission, and round closure; the coordinator aggregates updates in memory. The README is empty, so capabilities and connections here are based on the sampled source files.
Main entry points: app.py Upload and results UI · main.py Federated API routes · vision_llm.py Three-way analysis · federated_learning.py Update aggregation
Components 8
Reconciliation client
- Upload and results UI
invoice-reconciliation-system/app.py
Document analysis
- Three-way analysis
invoice-reconciliation-system/vision_llm.py
Federated learning
- Build numeric update
invoice-reconciliation-system/federated_learning.py - Federated API routes
invoice-reconciliation-system/main.py - Update aggregation
invoice-reconciliation-system/federated_learning.py
Other components
- Finance user
- Gemini service
- Round operator
Connections 11
- Finance user → Upload and results UI: uploads PDFs
- Upload and results UI → Three-way analysis: calls analysis
- Three-way analysis → Gemini service: sends PDFs
- Gemini service → Three-way analysis: returns analysis
- Upload and results UI → Finance user: shows result
- Upload and results UI → Build numeric update: builds update
- Upload and results UI → Federated API routes: posts update
- Federated API routes → Update aggregation: adds update
- Round operator → Federated API routes: requests round close
- Federated API routes → Update aggregation: closes round
- Federated API routes → Update aggregation: reads current model