AMITYBOT V1 is a proof-of-concept AI assistant built around a CRM-grounded Retrieval-Augmented Generation (RAG) pipeline with a minimal yet functional Admin UI. The system enables non-technical users to import leads, manage knowledge base articles, trigger re-indexing, and query CRM-backed data through a conversational interface.
The project is designed for stakeholder demos, internal feedback, and iteration, with a clear separation between backend RAG logic and frontend admin tooling.
- FastAPI-based backend with streaming chat responses (SSE)
- CRM-grounded answers using mock lead data
- Chroma vector database for knowledge storage
- Conversational RAG chain with tool calling
- Source-grounded responses with cited excerpts
- CLI demo client for quick testing
- Next.js 14 admin dashboard
- Role-protected access (Admin / Editor)
- Global navigation sidebar:
- Leads
- Knowledge Base
- Sync Logs
- Read-only leads table with server-side pagination
- Knowledge Base editor with Markdown support
- CSV-based bulk lead import
- Manual re-index trigger with toast feedback
- Sync logs visibility for re-embedding jobs
- Inline lead editing via drawer
- RBAC using NextAuth role claims
- Zod-based form validation
- Dark mode support
- Skeleton loaders and empty states
- Audit history per lead (mock timeline)
- End-to-end smoke tests and load testing
- Demo recording and setup documentation
- FastAPI
- Python
- ChromaDB (Vector Store)
- RAG pipeline (Conversational Retrieval + Tools)
- Server-Sent Events (Streaming responses)
- Next.js 14
- TypeScript
- Tailwind CSS
- shadcn/ui
- React Server Components
- DataGrid for tabular views
- Git mono-repo
- CLI demo client
- Zod for validation
- NextAuth for RBAC
- Load testing (parallel query simulation)
POST /chat– CRM-grounded conversational endpoint (streaming)
GET /crm/leadsPOST /crm/leads/bulkPATCH /crm/leads/:id
POST /kb/uploadPOST /kb/reindex
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload###Admin UI
cd admin-ui
npm install
npm run dev###Admin UI runs on: http://localhost:3000