Healthcare RAG chatbot over a Tunisian hospital knowledge graph (Neo4j + LangChain + FastAPI + Streamlit)
# 🇹🇳 Tunisia Health RAG Chatbot
A specialized Retrieval-Augmented Generation (RAG) agent designed for querying healthcare information in Tunisia. Built with LangChain, Neo4j knowledge graphs, and FastAPI, this chatbot provides intuitive access to complex healthcare data.
---
## 📋 Table of Contents
- Overview
- Key Features
- Interactive Interface
- Architecture
- Prerequisites
- Quick Start
- Example Queries
- Database Design
- Technical Stack
---
## 🎯 Overview
This project implements a healthcare-focused RAG chatbot that leverages LangChain for natural language processing and Neo4j's graph database for structured data storage.
The dataset models a synthetic Tunisian hospital network, including:
- Real Tunisian hospitals and clinics grouped by governorate
- Tunisian insurers (e.g., CNAM, private companies like GAT Assurances, STAR Assurances)
- Tunisian physician and patient names
- Billing amounts in Tunisian Dinar (TND)
---
## ✨ Key Features
- **Knowledge Graph Integration:** Powered by Neo4j for deep relationship mapping in healthcare data.
- **RESTful API:** Scalable backend built with FastAPI.
- **Interactive UI:** A clean, user-friendly Streamlit interface.
- **Containerized:** Easily deployable using Docker.
- **Multi-Model Support:** Configurable OpenAI models for optimal responses.
---
## 💻 Interactive Interface
Here is a glimpse of the chatbot in action:
---
## 🏗️ Architecture
```mermaid
graph LR
A[User] -->|Interacts with| B[Streamlit UI]
B -->|Sends Requests| C[FastAPI Backend]
C -->|Processes via| D[LangChain Agent]
D |Queries| E[(Neo4j Graph Database)]
D |Generates via| F[OpenAI API]
```
---
## 🛠️ Prerequisites
- **Docker** and **Docker Compose**
- **OpenAI API Key**
- **Neo4j AuraDB** instance
- **Python 3.8+** (for local development)
---
## 🚀 Quick Start
### 1. Clone the Repository
```bash
git clone
github.com
cd tunisia-health-rag
```
### 2. Environment Configurati …