Deterministic support-ticket triage CLI using local support-page corpora and BM25 retrieval.
Project description
SupportRAG CLI
Turn any public support/help-center page into a local support-ticket triage agent.
SupportRAG is a deterministic CLI product for support teams, founders, and hackathon builders. It crawls support pages into a local Markdown corpus, retrieves relevant docs with BM25, applies safety/escalation rules, and outputs a clean support triage CSV.
Why it is useful
Most support bots hallucinate. SupportRAG is designed for high-trust support workflows:
- Local corpus first. No unsupported web guessing.
- Deterministic BM25 retrieval.
- Rule-based escalation for risky cases.
- Optional LLM paraphrasing seam, disabled by default.
- CSV in, CSV out. Easy to plug into ops workflows.
- Works as a hackathon submission and a future product foundation.
Install locally
git clone https://github.com/princepal9120/hackerrank-orchestrate-may26.git
cd hackerrank-orchestrate-may26
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
This installs two equivalent commands:
supportrag --help
supportbot --help
Without installation, use the repo-local launcher:
```bash
python3 supportrag.py --help
## Quickstart with any support page
### 1. Build a local corpus
```bash
python3 supportrag.py ingest \
--url https://example.com/support \
--output corpora/example-support \
--max-pages 100
2. Create tickets CSV
Issue,Subject,Company
"How can I reset billing?","Billing help","ExampleCo"
"The whole product is down","Urgent","ExampleCo"
3. Triage tickets
python3 supportrag.py triage \
--data corpora/example-support \
--input tickets.csv \
--output output.csv
Output columns:
issue,subject,company,response,product_area,status,request_type,justification
Allowed values:
status:replied,escalatedrequest_type:product_issue,feature_request,bug,invalid
HackerRank Orchestrate submission mode
The original challenge entrypoint still works:
python3 code/main.py \
--data data \
--input support_tickets/support_tickets.csv \
--output support_tickets/output.csv
Product architecture
URL support page
-> ingest_url.py
-> local Markdown corpus
-> corpus.py chunking
-> retrieval.py BM25
-> rules.py safety router
-> agent.py orchestration
-> validation.py schema guard
-> output.csv
What makes this product-ready
- Installable Python package via
pyproject.toml. - Real CLI commands:
ingest,triage,eval. - No required third-party dependencies.
- Local-first support corpus design.
- Clear upgrade path to SaaS:
- corpus registry
- incremental recrawls
- embedding reranker
- tenant-specific safety policies
- dashboard/API
- citations and confidence scores
Current limitations
- The crawler is a deterministic stdlib HTML crawler, not a browser. JavaScript-heavy docs may need a future Playwright ingestion backend.
- Safety rules are currently tuned for the HackerRank/Claude/Visa challenge and should become configurable policies for production customers.
- Optional LLM paraphrasing is intentionally disabled by default for reproducibility.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file supportrag_cli-0.1.0.tar.gz.
File metadata
- Download URL: supportrag_cli-0.1.0.tar.gz
- Upload date:
- Size: 20.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4789f3ff622ddc300d7c532a96cfecbf1768647bad276c478b5ed74f3afac572
|
|
| MD5 |
75a5b4db6f719fd8bbc82de4fb0cf726
|
|
| BLAKE2b-256 |
5e9d571234be3455d19228e757eafcd1633690b92f6c7a4f36e8c4702b915a87
|
File details
Details for the file supportrag_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: supportrag_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60480b1a982a02694fd4389194482d46d352874f415db4b512db94c71c8dc638
|
|
| MD5 |
cbdc95b1fcb54fa923a369bcc94f23a4
|
|
| BLAKE2b-256 |
9d4f2a8400e1f7ffc03f8636f401fbbe96844530e19ad8d04eeb66b0a0287c38
|