A multi-agent AI customer-support app for Shopify merchants. Handles pre-purchase (product discovery, recommendations) and post-purchase (order tracking, returns, delivery status) self-service through specialised agents with intent classification and entity extraction.
The design uses a Listen-Match-Solve framework: confirm the right order is identified before any action is taken.
| Service | Stack | Purpose |
|---|---|---|
backend/ |
Node.js + Express + Prisma (SQLite) | API, auth, chat orchestration, OpenAI calls |
frontend/ |
React + Vite + Tailwind | Storefront chat widget + admin views |
eval-service/ |
Python + FastAPI + RAGAS | Async evaluation of agent responses |
knowledge-base/ |
Markdown | Source-of-truth policies (returns, shipping, payments, escalation, FAQ, loyalty) |
seed-data/ |
JSON | Demo products and users for local development |
# 1. Backend
cd backend
cp .env.example .env # fill in OPENAI_API_KEY + JWT_SECRET
npm install
npx prisma migrate dev
node prisma/seed.js
npm run dev # http://localhost:3002
# 2. Frontend
cd ../frontend
npm install
npm run dev # http://localhost:5173
# 3. Eval service (optional)
cd ../eval-service
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8000- All secrets (
OPENAI_API_KEY,JWT_SECRET) live inbackend/.env— never commit - The SQLite DB at
backend/prisma/dev.dbis local-only and gitignored - Knowledge-base markdown is hot-reloaded; edit files in
knowledge-base/to update agent grounding