Jubidate is a next-generation AI orchestration platform that moves beyond single-turn chatbots. It coordinates multiple specialized AI models to debate, challenge, and synthesize complex strategic outcomes in real-time.
Most AI applications today operate as basic question-and-answer interfaces. Jubidate introduces a "Command Center" paradigm where users don't just chat with AI—they orchestrate it. By assigning distinct roles (e.g., Pro Advocate, Con Advocate, Judge, and Auditor) to multiple models simultaneously, the platform delivers rigorous, multi-faceted analysis for any strategic prompt.
This project was built to demonstrate advanced full-stack engineering, robust WebSockets integration, complex UI/UX state management, and an innovative approach to AI alignment.
- Frontend App: https://jubidate-ai.vercel.app
- Backend API (Swagger): https://jubidateai-production.up.railway.app/docs
Built with a strict separation of concerns to handle high-frequency WebSocket streams and complex frontend states seamlessly.
- Frontend: Next.js 15, React 19, Tailwind CSS, TypeScript, Framer Motion
- Backend: FastAPI, Python, WebSockets, LiteLLM
- Database: SQLite (with structured JSON schemas for session logs and intelligence records)
- Orchestration Engine: Manages turn-based and concurrent generation streams dynamically.
- AI Integration: NVIDIA NIM (Llama 3.1 70B, Nemotron, Mixtral, etc.) + Google Gemini / Groq / OpenRouter compatibility.
Instead of a single LLM call, Jubidate routes a user query through a configured multi-agent pipeline:
- Initialize: The user sets the strategic objective (e.g., "The impact of practical skills vs theoretical foundations in education").
- Assign: Models are dynamically assigned to the
Pro SideandCon Side. An isolatedJudgemodel is instantiated. - Debate: The advocates construct arguments, pressure-test each other, and identify flaws via multi-turn WebSocket streaming.
- Adjudicate: The Judge analyzes the cognitive clusters, declares a winner, and outputs an actionable "Strategic Summary" containing evidence quality warnings and unanswered points.
- Node.js (v18+)
- Python (v3.10+)
- An NVIDIA API Key
git clone https://github.com/Aaravkhanal/Jubidate_ai.git
cd Jubidate_ai/backend
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows use `\.venv\Scripts\activate`
# Install dependencies
pip install -r requirements.txt
# Configure environment
cp .env.example .env
# -> Open .env and add your NVIDIA_API_KEY
# Run server
uvicorn app.main:app --host 0.0.0.0 --port 8000cd ../frontend
# Install dependencies
npm install
# Configure environment
cp .env.example .env.local
# -> Open .env.local and set NEXT_PUBLIC_API_BASE_URL=http://localhost:8000
# -> Set NEXT_PUBLIC_WS_BASE_URL=ws://localhost:8000
# Run development server
npm run devEnsure the following environment variables are set to point to your backend:
NEXT_PUBLIC_API_BASE_URL(e.g.,https://your-backend.up.railway.app)NEXT_PUBLIC_WS_BASE_URL(e.g.,wss://your-backend.up.railway.app)
- Add your
NVIDIA_API_KEY(and any other provider keys) to the Railway Environment Variables. - The included
railway.tomlhandles the Nixpacks build and Uvicorn startup automatically.