RAG Chatbot with Slack Integration & Streaming
Overview
An internal build chatbot pairing a Python LLM backend with a Next.js front-end. It demonstrates retrieval-augmented chat over a FAISS index, streaming responses, and a Slack bot front-end, an early (2023) take on a production-style assistant.
Why It Exists
The aim was to validate a full RAG chat stack the studio could reuse: grounding answers in indexed data, streaming tokens to clients in real time, and surfacing the assistant where people already work (Slack), while staying provider-agnostic across Anthropic and OpenAI.
What We Built
A modular Flask backend (backend/core/) with discrete concerns, ai.py (model orchestration), chat.py, db.py, integrations.py, prompts.py, server.py, slackbot.py, and streamers.py for token streaming, plus an actions/ layer. It uses LangChain (0.0.248) with FAISS for retrieval, the Anthropic SDK (anthropic 0.3.7) and OpenAI side by side, LangSmith for tracing, Socket.IO for real-time delivery, and loguru for logging. The front-end is a Next.js 13 app with Tailwind. CI/CD is wired via GitHub Actions with separate dev and prod deployment workflows, and the app is containerized with Docker / docker-compose.
Technologies & Approach
Flask + Socket.IO backend; LangChain + FAISS for RAG; dual Anthropic/OpenAI model support; LangSmith tracing; Next.js 13 + Tailwind front-end; Dockerized with GitHub Actions deployments. The design separates retrieval, prompting, streaming, and integrations cleanly for reuse.
Outcome / Impact
Proved out an end-to-end RAG assistant, grounded retrieval, streaming, Slack delivery, and multi-provider model support, as a reusable internal pattern, built early in the LLM-app cycle.
Capabilities Demonstrated
- Building RAG chatbots with LangChain and FAISS
- Provider-agnostic LLM integration (Anthropic + OpenAI)
- Real-time token streaming over Socket.IO
- Slack bot integration and Dockerized CI/CD (dev/prod) delivery