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.