An AI-powered receptionist for a modern dental clinic, built as my entry project for MPS Foundry.
DentaBot is a production-ready chat assistant that handles appointment bookings, answers patient questions, and provides a polished real-time chat experience — all grounded in real clinic data and powered by a large language model via the Groq API.
- Conversational AI receptionist — answers questions about hours, location, services, and more, strictly grounded in the clinic's own data
- Appointment booking flow — guides patients through collecting name, reason for visit, and preferred date before confirming
- Real-time streaming — responses stream token-by-token with a live typing indicator
- Quick action chips — one-tap prompts for the most common patient needs (Book, Hours, Location, Emergency)
- Error recovery — graceful fallbacks with a retry button if the AI call fails
- Responsive UI — clean on mobile and desktop, with a clinic info sidebar on larger screens
| Layer | Technology |
|---|---|
| Framework | Next.js 14 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS |
| AI Model | Llama 3.3 70B via Groq |
| Icons | Lucide React |
Patient message
│
▼
Next.js API Route (/api/chat)
│
├── Loads clinic_data.txt (hours, services, location, FAQs)
│
└── Sends to Groq (Llama 3.3 70B) with a strict system prompt
│
└── Streams response back token-by-token to the UI
The system prompt enforces strict grounding — the bot only answers from clinic_data.txt and directs anything else to the office phone line. The full conversation history is passed on every request so the bot maintains context across multi-turn flows.
Why Groq over OpenAI? Groq's LPU hardware delivers significantly lower inference latency, which makes the streaming feel much more natural in a live chat. The API is OpenAI-compatible, so only the baseURL and key needed to change.
- Node.js 18+
- A Groq API key (free tier available)
git clone https://github.com/yourusername/dentabot.git
cd dentabot
npm installCreate a .env.local file:
GROQ_API_KEY=your_groq_api_key_hereRun the dev server:
npm run devOpen http://localhost:3000.
dentabot/
├── app/
│ ├── page.tsx # Main chat UI
│ ├── layout.tsx # Root layout + metadata
│ ├── globals.css # Global styles
│ └── api/chat/
│ └── route.ts # Streaming AI API route (Groq)
├── clinic_data.txt # Clinic info injected into the system prompt
├── tailwind.config.ts
└── next.config.js
This project was built as my entry for MPS Foundry — a program focused on shipping real AI products. The goal was to demonstrate how a well-prompted LLM, grounded in structured clinic data, can serve as a 24/7 front-desk assistant — reducing staff load and giving patients instant answers without any hallucination.
MIT