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.