Skip to main content

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, escalated
  • request_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


Download files

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

Source Distribution

supportrag_cli-0.1.0.tar.gz (20.2 kB view details)

Uploaded Source

Built Distribution

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

supportrag_cli-0.1.0-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

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

Hashes for supportrag_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4789f3ff622ddc300d7c532a96cfecbf1768647bad276c478b5ed74f3afac572
MD5 75a5b4db6f719fd8bbc82de4fb0cf726
BLAKE2b-256 5e9d571234be3455d19228e757eafcd1633690b92f6c7a4f36e8c4702b915a87

See more details on using hashes here.

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

Hashes for supportrag_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 60480b1a982a02694fd4389194482d46d352874f415db4b512db94c71c8dc638
MD5 cbdc95b1fcb54fa923a369bcc94f23a4
BLAKE2b-256 9d4f2a8400e1f7ffc03f8636f401fbbe96844530e19ad8d04eeb66b0a0287c38

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 Pingdom Monitoring Sentry Error logging StatusPage Status page