← Back to Articles

Triager+: From Concept to Execution

Written by 3wh Admin · Published on Jul 26, 2025

Triager+ began as a challenge — to combine machine learning with a usable, focused web interface for classifying help desk tickets. But it evolved into something more: an exercise in product minimalism, memory-aware architecture, and end-to-end delivery from backend to UI. This is the story of its construction.

What Came Before?

Before Triager+, there were experiments with CSVs, local Jupyter notebooks, and isolated model training sessions. Ticket classification lived as a script, not a product. No UI, no backend — just direct calls to predict functions for hardcoded strings. The challenge wasn’t just in modeling — it was in integrating those models into a user-facing experience.

What Is Triager+?

Triager+ is a web-based tool that classifies help desk ticket descriptions into categories and priorities. At its core, it’s a text classifier powered by both a lightweight Naive Bayes model and an optional (currently disabled) DistilBERT deep learning model. The goal was to make something useful, lightweight, and easily hostable — a proof of concept for real-world applications, built cleanly and without fluff.

Why Build It?

This project emerged from a desire to make something practical, fast, and visually simple. Unlike sprawling web apps, Triager+ was an exercise in clarity: take in a sentence or two, and give the user a high-confidence classification. But it was also strategic — a demonstration of the ability to integrate modern AI with scalable backend/frontend deployment. In a world overrun by toy projects and API demos, Triager+ aimed to deliver a product with edges — lightweight, yet real.

Why These Models?

Naive Bayes was chosen for its speed, simplicity, and low memory requirements. It's well-suited for baseline classification, especially when combined with TF-IDF vectorization. DistilBERT was added as an advanced option — a distilled transformer model capable of deeper semantic understanding. While more powerful, DistilBERT's memory usage was too high for the free-tier deployment, leading to its graceful exclusion with a fallback to Naive Bayes.

Architecture Overview

The architecture breaks down into three primary components:

Training the Models

The initial training dataset consisted of a structured CSV of ticket entries labeled with category and priority. After cleansing and balancing the data, a TF-IDF pipeline was applied. The Naive Bayes model was trained separately for category and priority, then serialized using joblib. While a fine-tuned DistilBERT model performed better, it exceeded RAM limits on the free Render plan and was therefore deferred to a premium deployment tier.

Handling Constraints

Developing Triager+ involved navigating several very real limitations:

Designing the UI

Instead of bloated frontend frameworks, a clean hand-coded interface was developed. The layout is mobile responsive, the color palette stays out of the way, and each control (textarea, dropdown, buttons) is styled for ease of use. The interface reveals prediction results on demand and includes a “Clear” button for reset. Google Analytics was added minimally for basic pageview insights.

Lessons Learned

What’s Next?

Triager+ now exists as a finished demonstration. The next project — ShapeSound — will explore new dimensions: visual-audio translation, generative design, and user-guided creative tools. But Triager+ was the prototype of purpose. Fast, smart, and focused.

Download PDF

Click here to download this article as a PDF