All projects

QueueStorm

AI support copilot for financial-service tickets — deterministic decisions, LLM-phrased responses, and a safety filter.

About the project

QueueStorm analyzes customer-support tickets for a financial-service context. Rule-based logic decides the verdict, case type, and department, while the LLM is used only to phrase the customer-facing response — so outcomes stay consistent even when LLM output varies. A safety filter scans every generated response and blocks or rewrites anything that requests credentials or makes unauthorized promises, flagging violations for human review. Multi-key Gemini API failover works around free-tier rate limits, all requests are Zod-validated, and the service ships as a 69.5MB Docker image on Docker Hub with a live Render deployment.

The problem

LLM output varies between calls, which is unacceptable when tickets decide refunds, account actions, or escalations — and unfiltered LLM text can ask users for credentials or promise things the business never authorized.

The solution

Split the responsibilities: deterministic rule-based logic owns every decision (verdict, case type, department routing), the LLM only writes the wording, and a safety filter audits that wording before it leaves the system — blocking, rewriting, and flagging risky output for human review.

Why I built it

I wanted to work out how to make LLMs dependable in a domain where consistency and safety matter more than fluency — determinism where it counts, AI only where it genuinely helps.

Tech stack

  • Node.js
  • Express
  • Google Gemini API
  • Zod
  • Docker

Feedback

Tried this project or read the case study? I'd love to hear your thoughts.