Skip to main content

rag_intent_classifier

A production-ready, offline intent classifier that can sit right before any RAG system, domain-aware router, or any routing layer where fast intent decisions are needed. It runs before retrieval or downstream routing so your application can detect follow-up, escalation, urgent, human-handoff, negative-sentiment, and general-support requests early and route them intelligently.

Why this package exists

Most RAG pipelines, domain-aware routing systems, and other decision-heavy workflows focus on retrieval or downstream handling, but they often skip the most important first step: User intent classification.

This package helps you identify whether a user query is:

  • a normal domain request,
  • a follow-up question,
  • a request to connect to a human,
  • an escalation,
  • an urgent issue,
  • or negative sentiment that should not trigger normal search.
  • 150 default labels (The full mapping is stored in the bundled model asset at rag_intent_classifier/models/label_map.joblib)

That makes retrieval more accurate and reduces unnecessary document search.

What it does

  • Classifies intents using MiniLM embeddings and packaged classical ML models
  • Returns human-readable labels for downstream routing
  • Works offline with no external API dependency
  • Supports a simple Python API and CLI

Supported meta-intent labels

The current release surfaces these labels for routing-heavy RAG scenarios:

  • follow_up
  • connect_to_human
  • escalate_issue
  • negative_sentiment
  • urgent_attention_required
  • general_customer_support
  • and additional 150 intents

These are especially useful for routing to a human, skipping standard retrieval, when to send chat history, narrowing search to the right support context, etc.

Quick comparison

Without using intent classifier With using intent classifier
Every query goes through the same retrieval flow Urgent, follow-up, and escalation requests can be detected early
More irrelevant context may be searched Routing becomes more precise and efficient
Human handoff needs are harder to identify Support workflows can be triggered faster and more accurately

This model is trained on a total of 17k+ labelled rows, with 3.8k+ validation rows and 5.7k+ test rows to support reliable intent routing.

Note: This classifier is built on general-purpose intent data and is intended as a strong starting point. For production use in a specific domain such as insurance, banking, sports, HR, consulting, or customer support, it is recommended to fine-tune or retrain the model on domain-specific examples for better accuracy and more relevant routing.

Architecture in a RAG pipeline

The package acts as the first decision layer in a RAG system.

Intent Classifier architecture

Architecture Diagram

In practice, once the intent is classified, the retrieval step becomes smaller and more precise: the system can route to the right workflow, focus on the most relevant evidence and reduce the search area/scope dramatically.

Included capabilities

  • 156 intents total (150 CLINC + 6 additional meta-intents)
  • MiniLM embeddings
  • Multiple packaged classifier models
  • Offline inference
  • Human-readable labels
  • Simple Python API and CLI

Installation

Python 3.9 to 3.12 is the currently supported range for this package. This release uses a pinned dependency stack for reproducible installs and model compatibility. Python 3.13 is not currently targeted for this release.

pip install rag_intent_classifier

Quick start

from rag_intent_classifier import infer_intent

print(infer_intent("How do I renew my policy?"))

CLI usage

rag_intent_classifier "How do I renew my policy?"

Development install

git clone https://github.com/yuvarajd2588/rag_intent_classifier.git
cd rag_intent_classifier
pip install -e .

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rag_intent_classifier-1.0.5.tar.gz (2.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rag_intent_classifier-1.0.5-py3-none-any.whl (2.1 MB view details)

Uploaded Python 3

File details

Details for the file rag_intent_classifier-1.0.5.tar.gz.

File metadata

  • Download URL: rag_intent_classifier-1.0.5.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.9

File hashes

Hashes for rag_intent_classifier-1.0.5.tar.gz
Algorithm Hash digest
SHA256 fb903f71d25b8f6057f101348109ce1e4778c8092d1cc87da9bfd8c685ebc348
MD5 eddad45f45168fd34f60003dcc6db9c0
BLAKE2b-256 27f8461a5557ccca5d1350563e2dd835918c63fa22f163c103e7e91596888814

See more details on using hashes here.

File details

Details for the file rag_intent_classifier-1.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for rag_intent_classifier-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 8023160b932ac2ec2e9202e805f0ad1d0d2cb6c50cf6b97cdaa7e1cf30d0cb1b
MD5 518bbb3de96e52e50d8006051d933e58
BLAKE2b-256 1df4ad62a1ea3e597268b82ec370e52e14cd163e1855a11090b1499c869b4236

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page