Skip to content
Divyansh Joshi
All projects
In progress2026

Saathi

An AI teammate that closes UPI "money debited, not received" complaints from start to finish.

  • Python
  • FastAPI
  • React
  • TypeScript
  • Vite
  • SQLite
  • Groq
  • Gemini
  • Sarvam

Repository private until both authors agree to open it, after a full scan of its history for keys and personal data.

What it is

A customer's money leaves their account and never reaches the shop or the person they paid. Saathi takes that complaint the way a good support agent would. It reads the message in Hindi, English or Hinglish, finds the payment in the bank ledger, works out which of RBI's failure cases applies, raises a dispute, and tells the customer the date the bank has to meet.

The deadlines come from RBI's rules, in tested Python. A transfer to a person must come back by T+1 and a payment to a shop by T+5, and after that the bank owes ₹100 a day. The model is given the deadline and the compensation by the rules and writes the reply around them. Open disputes are rechecked every sixty seconds with no button to press, and large or unclear cases go to a support agent with the summary already written.

The bank, its ledger and the dispute system are simulated, because real UPI dispute systems are open only to banks and licensed payment apps. The README says which parts are real code and which are simulated, and the next phase puts the simulator behind a single interface a real bank could replace. Built with Sourav.

Decisions worth defending

  • Deadlines and compensation computed by tested rules code, never worked out by the model
  • Python triage picks the route before any model sees a message: a greeting gets one reply, a complaint opens a case
  • Open disputes rechecked automatically, with approvals and a work log for the support team
  • Complaints spoken in nine Indian languages through Sarvam, with backup models and an offline mode that still finishes the case on the rules alone
  • Tests run against a scripted fake model, so CI costs no API quota

Not built yet

Planned work, with the reason it is next. None of this exists today.

  1. Postgres for cases, and logins for the ops panel

    Cases live in memory today and are lost on a restart, and the ops panel is protected only by requiring requests from the laptop. Both are the most obvious holes.

  2. An evaluation harness for how well it handles complaints

    It handles the demo cases. There is no measure yet of how often it gets a real complaint right, and that number is the one worth being asked about.

  3. A link someone else can open

    It runs on a laptop today. A deployed demo is the difference between describing it and letting someone try it.