AI / ML Universal Chatbot – Self-Hosted RAG Platform
A self-hosted retrieval-augmented generation platform that answers questions about your own documents with streamed, cited answers in English and Bengali, managed from an admin console and embedded anywhere through a website widget.

OVERVIEW
Universal Chatbot turns an organisation's PDFs and documents into a grounded assistant. Eight microservices cover document parsing, embedding, hybrid retrieval, an LLM gateway, self-hosted model serving, an admin console, and an embeddable chat widget. Every answer cites the exact page it came from, and the whole platform ships as a single container deployed to Hugging Face Spaces from GitHub Actions. The assistant on this portfolio runs on it.
Key features
Streamed answers with inline citations and page previews, in English and Bengali
Document pipeline with OCR and vision-model parsing (Nemotron Parse) of text, tables, charts and equations
Hybrid search over PostgreSQL: pgvector cosine similarity and full-text ranking fused with Reciprocal Rank Fusion
Versioned index builds with zero-downtime promote and rollback
LLM gateway with per-task fallback chains across cloud and self-hosted models
Self-hosted model deployments on llama.cpp and Transformers, managed from the admin console
Admin console for documents, chatbot settings, conversations, feedback, analytics and audit logs
Embeddable chat widget published on npm with per-site publishable keys
Engineering
- Kept every vector, chunk and search index inside one PostgreSQL database with pgvector and tsvector, removing a separate vector store
- Built structure-aware chunking and a BullMQ worker pipeline that parses, embeds and indexes documents asynchronously
- Designed the LLM gateway with circuit breakers, retries and per-request analytics, so a failing provider falls through to the next model
- Packaged eight services into one container with GitHub-managed secrets synced to the Space on every deploy
- Backed the platform with 1,100+ automated tests across the TypeScript and Python services
Impact
- Powers the assistant on this portfolio, answering visitor questions from verified documents with sources
- Lets a small team run a private document assistant on CPU-only hardware without paid vector infrastructure
Screens


