InsulBot is a bilingual AI customer assistant for a building insulation company in Tunisia. Customers chat in French or Arabic — they can type or speak via voice input. The bot answers questions from a semantic FAQ knowledge base, captures leads, and hands off to a human agent when needed. All responses stream in real-time via server-sent events.
The system uses OpenAI for chat reasoning, Whisper for voice-to-text transcription, and OpenAI TTS for spoken responses. The knowledge base is built from company FAQs using embedding-based semantic search — so the bot answers accurately even when customers phrase questions differently than the FAQ entries.
Technical Highlights
- Bilingual support — French and Tunisian Arabic
- Voice input via Whisper and text-to-speech output via OpenAI TTS
- Streaming SSE responses for real-time chat experience
- Semantic FAQ search using embedding-based retrieval
- Lead capture form with automatic data collection
- Human handoff when bot confidence is low
Stack
- Backend: FastAPI, Python
- AI: OpenAI GPT (chat), Whisper (STT), OpenAI TTS
- Knowledge: Embedding-based semantic FAQ search
- Frontend: HTML/JS chat widget
- Streaming: Server-Sent Events (SSE)
