RAGnosis / README.md
asadsandhu's picture
Update README.md
65a107c verified

A newer version of the Gradio SDK is available: 5.42.0

Upgrade
metadata
title: RAGnosis
emoji: 🧠
colorFrom: red
colorTo: indigo
sdk: gradio
sdk_version: 5.36.2
app_file: app.py
pinned: false
license: mit
short_description: Clinical Query Answering with RAG + MIMIC-IV Notes.

🧠 RAGnosis – Clinical Reasoning via Retrieval-Augmented Generation

License: MIT Python Hugging Face GitHub Repo

βš•οΈ A CPU-friendly RAG assistant for explainable clinical diagnosis, built using annotated notes from the MIMIC-IV-Ext-DiReCT dataset.


πŸ–ΌοΈ Live Demo

Try it on Hugging Face Spaces (CPU-based, ~500s latency) πŸ‘‰ :

πŸ”— https://huggingface.co/spaces/asadsandhu/RAGnosis

Demo


βš™οΈ Technical Stack

Component Details
🧠 Model BioMistral/BioMistral-7B
πŸ₯ Dataset MIMIC-IV-Ext-DiReCT
πŸ” Retrieval FAISS + SentenceTransformers (all-MiniLM-L6-v2)
πŸ’¬ Interface Gradio (Runs on Hugging Face Spaces)
βš™οΈ Backend PyTorch + Transformers (CPU inference)

🩺 Key Features

  • πŸ”Ž Top-k clinical note retrieval from structured diagnostic chains
  • 🧠 Diagnosis generation using BioMistral-7B without GPU
  • πŸ—‚οΈ MIMIC-IV-Ext-DiReCT backed medical reasoning
  • πŸ’¬ Natural query input and interpretable LLM output
  • βœ… Optimized for Hugging Face's free CPU tier (16GB RAM)

πŸ§ͺ Example Prompt

patient is experiencing shortness of breath

πŸ’¬ Model response:

Shortness of breath is a common symptom that can be caused by a variety of respiratory conditions. The differential diagnosis for shortness of breath includes asthma, chronic obstructive pulmonary disease (COPD), congestive heart failure, pneumonia, and pneumothorax. In order to determine the cause of the shortness of breath, it is important to consider the patient's medical history, physical examination findings, and diagnostic testing results. For example, if the patient has a history of asthma and is experiencing wheezing and a prolonged expiratory phase on examination, this would suggest asthma as the cause of the shortness of breath. On the other hand, if the patient has a history of congestive heart failure and is experiencing orthopnea, crackles on auscultation, and a history of edema, this would suggest congestive heart failure as the cause of the shortness of breath.


πŸ”§ Under the Hood

🧠 Step 1: Retrieval

🧱 Step 2: Prompt Construction

  • Clinical query + retrieved chunks form an instruction prompt

🧬 Step 3: Generation

  • Uses BioMistral/BioMistral-7B
  • Generated on CPU (expect ~500 seconds)

⚠️ Note on Performance

Feature Hugging Face (CPU) Colab / Local (GPU)
Model Used BioMistral-7B Nous-Hermes-2-Mistral-7B-DPO
Speed ~500 seconds/query 🐒 ~10 seconds/query ⚑
Accuracy βœ… Good βœ… Great
Requirements 1 CPU (free tier) CUDA GPU (Colab/Kaggle/local)

Want faster responses? Use the GPU version on GitHub with app.py.


βš™οΈ Run It Locally (GPU Recommended)

# 1. Clone the repository
git clone https://github.com/asadsandhu/RAG-Diagnostic-Assistant.git
cd RAG-Diagnostic-Assistant

# 2. Install dependencies
pip install -r requirements.txt

# 3. Run the app (auto-detects GPU)
python app.py

Required files (already in repo):


πŸ“ Project Structure

RAG-Diagnostic-Assistant/
β”œβ”€β”€ app.py
β”œβ”€β”€ faiss_index.bin
β”œβ”€β”€ retrieval_corpus.csv
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ assets/
β”‚   └── demo.png
└── README.md

πŸ‘€ Author

Built with ❀️ by Asad Ali


πŸ“œ License

MIT License β€” see LICENSE


πŸ™ Acknowledgments

  • MIMIC-IV-Ext-DiReCT – Annotated diagnostic dataset
  • Hugging Face Transformers + Gradio
  • SentenceTransformers + FAISS
  • BioMistral + NousResearch

⚠️ Disclaimer: This is a research prototype and not intended for clinical decision-making.