# Multi-Agent-Medical-Assistant **Repository Path**: wangyao0512/Multi-Agent-Medical-Assistant ## Basic Information - **Project Name**: Multi-Agent-Medical-Assistant - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-07 - **Last Updated**: 2026-04-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
![logo](https://github.com/souvikmajumder26/Multi-Agent-Medical-Assistant/blob/main/assets/logo_rounded.png)

βš•οΈ Multi-Agent-Medical-Assistant :
AI-powered multi-agentic system for medical diagnosis and assistance

![Python - Version](https://img.shields.io/badge/PYTHON-3.11+-blue?style=for-the-badge&logo=python&logoColor=white) ![LangGraph - Version](https://img.shields.io/badge/LangGraph-0.3+-teal?style=for-the-badge&logo=langgraph) ![LangChain - Version](https://img.shields.io/badge/LangChain-0.3+-teal?style=for-the-badge&logo=langchain) ![Qdrant Client - Version](https://img.shields.io/badge/Qdrant-1.13+-red?style=for-the-badge&logo=qdrant) ![Pydantic - Version](https://img.shields.io/badge/Pydantic-2.10+-red?style=for-the-badge&logo=pydantic) ![FastAPI - Version](https://img.shields.io/badge/FastAPI-0.115+-teal?style=for-the-badge&logo=fastapi) ![Docling - Version](https://img.shields.io/badge/Docling-3.1+-orange?style=for-the-badge&logo=docling) [![Generic badge](https://img.shields.io/badge/License-Apache-.svg?style=for-the-badge)](https://github.com/souvikmajumder26/Multi-Agent-Medical-Assistant/blob/main/LICENSE) [![GitHub Issues](https://img.shields.io/github/issues/souvikmajumder26/Multi-Agent-Medical-Assistant.svg?style=for-the-badge)](https://github.com/souvikmajumder26/Multi-Agent-Medical-Assistant/issues) ![Contributions welcome](https://img.shields.io/badge/contributions-welcome-orange.svg?style=for-the-badge)
---- > [!IMPORTANT] > πŸ“‹ Version Updates from v2.0 to v2.1 and further: > 1. **Document Processing Upgrade**: Unstructured.io has been replaced with Docling for document parsing and extraction of text, tables, and images to be embedded. > 2. **Enhanced RAG References**: Links to source documents and reference images present in reranked retrieved chunks stored in local storage are added to the bottom of the RAG responses. > > To use Unstructured.io based solution, refer release - [v2.0](https://github.com/souvikmajumder26/Multi-Agent-Medical-Assistant/tree/v2.0). ## πŸ“š Table of Contents - [Overview](#overview) - [Demo](#demo) - [Technical Flow Chart](#technical-flowchart) - [Key Features](#key-features) - [Tech Stack](#technology-stack) - [Installation and Setup](#installation-setup) - [Using Docker](#docker-setup) - [Manual Installation](#manual-setup) - [Usage](#usage) - [Contributions](#contributions) - [License](#license) - [Citing](#citing) - [Contact](#contact) ---- ## πŸ“Œ Overview The **Multi-Agent Medical Assistant** is an **AI-powered chatbot** designed to assist with **medical diagnosis, research, and patient interactions**. πŸš€ **Powered by Multi-Agent Intelligence**, this system integrates: - **πŸ€– Large Language Models (LLMs)** - **πŸ–ΌοΈ Computer Vision Models** for medical imaging analysis - **πŸ“š Retrieval-Augmented Generation (RAG)** leveraging vector databases - **🌐 Real-time Web Search** for up-to-date medical insights - **πŸ‘¨β€βš•οΈ Human-in-the-Loop Validation** to verify AI-based medical image diagnoses ### **What You’ll Learn from This Project** πŸ“– πŸ”Ή **πŸ‘¨β€πŸ’» Multi-Agent Orchestration** with structured graph workflows πŸ”Ή **πŸ” Advanced RAG Techniques** – hybrid retrieval, semantic chunking, and vector search πŸ”Ή **⚑ Confidence-Based Routing** & **Agent-to-Agent Handoff** πŸ”Ή **πŸ”’ Scalable, Production-Ready AI with Modularized Code & Robust Exception Handling** πŸ“‚ **For learners**: Check out [`agents/README.md`](agents/README.md) for a **detailed breakdown** of the agentic workflow! 🎯 --- ## πŸ’« Demo https://github.com/user-attachments/assets/d27d4a2e-1c7d-45e2-bbc5-b3d95ccd5b35 If you like what you see and would want to support the project's developer, you can Buy Me A Coffee ! :) πŸ“‚ **For an even more detailed demo video**: Check out [`Multi-Agent-Medical-Assistant-v1.9`](assets/Multi-Agent-Medical-Assistant-v1.9_Compressed.mp4). πŸ“½οΈ --- ## πŸ›‘οΈ Technical Flow Chart ![Technical Flow Chart](assets/final_medical_assistant_flowchart_light_rounded.png) --- ## ✨ Key Features - πŸ€– **Multi-Agent Architecture** : Specialized agents working in harmony to handle diagnosis, information retrieval, reasoning, and more - πŸ” **Advanced Agentic RAG Retrieval System** : - Docling based parsing to extract text, tables, and images from PDFs. - Embedding markdown formatted text, tables and LLM based image summaries. - LLM based semantic chunking with structural boundary awareness. - LLM based query expansion with related medical domain terms. - Qdrant hybrid search combining BM25 sparse keyword search along with dense embedding vector search. - HuggingFace Cross-Encoder based reranking of retrieved document chunks for accurate LLM reponses. - Input-output guardrails to ensure safe and relevant responses. - Links to source documents and images present in reference document chunks provided with reponse. - Confidence-based agent-to-agent handoff between RAG and Web Search to prevent hallucinations. - πŸ₯ **Medical Imaging Analysis** - Brain Tumor Detection (TBD) - Chest X-ray Disease Classification - Skin Lesion Segmentation - 🌐 **Real-time Research Integration** : Web search agent that retrieves the latest medical research papers and findings - πŸ“Š **Confidence-Based Verification** : Log probability analysis ensures high accuracy in medical recommendations - πŸŽ™οΈ **Voice Interaction Capabilities** : Seamless speech-to-text and text-to-speech powered by Eleven Labs API - πŸ‘©β€βš•οΈ **Expert Oversight System** : Human-in-the-loop verification by medical professionals before finalizing outputs - βš”οΈ **Input & Output Guardrails** : Ensures safe, unbiased, and reliable medical responses while filtering out harmful or misleading content - πŸ’» **Intuitive User Interface** : Designed for healthcare professionals with minimal technical expertise > [!NOTE] > Upcoming features: > 1. Brain Tumor Medical Computer Vision model integration. > 2. Open to suggestions and contributions. --- ## πŸ› οΈ Technology Stack | Component | Technologies | |-----------|-------------| | πŸ”Ή **Backend Framework** | FastAPI | | πŸ”Ή **Agent Orchestration** | LangGraph | | πŸ”Ή **Document Parsing** | Docling | | πŸ”Ή **Knowledge Storage** | Qdrant Vector Database | | πŸ”Ή **Medical Imaging** | Computer Vision Models | | | β€’ Brain Tumor: Object Detection (PyTorch) | | | β€’ Chest X-ray: Image Classification (PyTorch) | | | β€’ Skin Lesion: Semantic Segmentation (PyTorch) | | πŸ”Ή **Guardrails** | LangChain | | πŸ”Ή **Speech Processing** | Eleven Labs API | | πŸ”Ή **Frontend** | HTML, CSS, JavaScript | | πŸ”Ή **Deployment** | Docker, GitHub Actions CI/CD | --- ## πŸš€ Installation & Setup ## πŸ“Œ Option 1: Using Docker ### Prerequisites: - [Docker](https://docs.docker.com/get-docker/) installed on your system - API keys for the required services ### 1️⃣ Clone the Repository ```bash git clone https://github.com/souvikmajumder26/Multi-Agent-Medical-Assistant.git cd Multi-Agent-Medical-Assistant ``` ### 2️⃣ Create Environment File - Create a `.env` file in the root directory and add the following API keys: > [!NOTE] > You may use any llm and embedding model of your choice... > 1. If using Azure OpenAI, no modification required. > 2. If using direct OpenAI, modify the llm and embedding model definitions in the 'config.py' and provide appropriate env variables. > 3. If using local models, appropriate code changes might be required throughout the codebase especially in 'agents'. > [!WARNING] > Ensure the API keys in the `.env` file are correct and have the necessary permissions. > No trailing whitespaces after variable names. ```bash # LLM Configuration (Azure Open AI - gpt-4o used in development) # If using any other LLM API key or local LLM, appropriate code modification is required deployment_name= model_name=gpt-4o azure_endpoint= openai_api_key= openai_api_version= # Embedding Model Configuration (Azure Open AI - text-embedding-ada-002 used in development) # If using any other embedding model, appropriate code modification is required embedding_deployment_name= embedding_model_name=text-embedding-ada-002 embedding_azure_endpoint= embedding_openai_api_key= embedding_openai_api_version= # Speech API Key (Free credits available with new Eleven Labs Account) ELEVEN_LABS_API_KEY= # Web Search API Key (Free credits available with new Tavily Account) TAVILY_API_KEY= # Hugging Face Token - using reranker model "ms-marco-TinyBERT-L-6" HUGGINGFACE_TOKEN= # (OPTIONAL) If using Qdrant server version, local does not require API key QDRANT_URL= QDRANT_API_KEY= ``` ### 3️⃣ Build the Docker Image ```bash docker build -t medical-assistant . ``` ### 4️⃣ Run the Docker Container ```bash docker run -d --name medical-assistant-app -p 8000:8000 --env-file .env medical-assistant ``` The application will be available at: [http://localhost:8000](http://localhost:8000) ### 5️⃣ Ingest Data into Vector DB from Docker Container - To ingest a single document: ```bash docker exec medical-assistant-app python ingest_rag_data.py --file ./data/raw/brain_tumors_ucni.pdf ``` - To ingest multiple documents from a directory: ```bash docker exec medical-assistant-app python ingest_rag_data.py --dir ./data/raw ``` ### Managing the Container: #### Stop the Container ```bash docker stop medical-assistant-app ``` #### Start the Container ```bash docker start medical-assistant-app ``` #### View Logs ```bash docker logs medical-assistant-app ``` #### Remove the Container ```bash docker rm medical-assistant-app ``` ### Troubleshooting: #### Container Health Check The container includes a health check that monitors the application status. You can check the health status with: ```bash docker inspect --format='{{.State.Health.Status}}' medical-assistant-app ``` #### Container Not Starting If the container fails to start, check the logs for errors: ```bash docker logs medical-assistant-app ``` ## πŸ“Œ Option 2: Without Using Docker ### 1️⃣ Clone the Repository ```bash git clone https://github.com/souvikmajumder26/Multi-Agent-Medical-Assistant.git cd Multi-Agent-Medical-Assistant ``` ### 2️⃣ Create & Activate Virtual Environment - If using conda: ```bash conda create --name python=3.11 conda activate ``` - If using python venv: ```bash python -m venv source /bin/activate # For Mac/Linux \Scripts\activate # For Windows ``` ### 3️⃣ Install Dependencies > [!IMPORTANT] > ffmpeg is required for speech service to work. - If using conda: ```bash conda install -c conda-forge ffmpeg ``` ```bash pip install -r requirements.txt ``` - If using python venv: ```bash wingetΒ install ffmpeg ``` ```bash pip install -r requirements.txt ``` ### 4️⃣ Set Up API Keys - Create a `.env` file and add the required API keys as shown in `Option 1`. ### 5️⃣ Run the Application - Run the following command in the activate environment. ```bash python app.py ``` The application will be available at: [http://localhost:8000](http://localhost:8000) ### 6️⃣ Ingest additional data into the Vector DB Run any one of the following commands as required. - To ingest one document at a time: ```bash python ingest_rag_data.py --file ./data/raw/brain_tumors_ucni.pdf ``` - To ingest multiple documents from a directory: ```bash python ingest_rag_data.py --dir ./data/raw ``` --- ## 🧠 Usage > [!NOTE] > 1. The first run can be jittery and may get errors - be patient and check the console for ongoing downloads and installations. > 2. On the first run, many models will be downloaded - yolo for tesseract ocr, computer vision agent models, cross-encoder reranker model, etc. > 3. Once they are completed, retry. Everything should work seamlessly since all of it is thoroughly tested. - Upload medical images for **AI-based diagnosis**. Task specific Computer Vision model powered agents - upload images from 'sample_images' folder to try out. - Ask medical queries to leverage **retrieval-augmented generation (RAG)** if information in memory or **web-search** to retrieve latest information. - Use **voice-based** interaction (speech-to-text and text-to-speech). - Review AI-generated insights with **human-in-the-loop verification**. --- ## 🀝 Contributions Contributions are welcome! Please check the [issues](https://github.com/souvikmajumder26/Multi-Agent-Medical-Assistant/issues) tab for feature requests and improvements. --- ## βš–οΈ License This project is licensed under the **Apache-2.0 License**. See the [LICENSE](LICENSE) file for details. --- ## πŸ“ Citing ``` @misc{Souvik2025, Author = {Souvik Majumder}, Title = {Multi Agent Medical Assistant}, Year = {2025}, Publisher = {GitHub}, Journal = {GitHub repository}, Howpublished = {\url{https://github.com/souvikmajumder26/Multi-Agent-Medical-Assistant}} } ``` --- ## πŸ“¬ Contact For any questions or collaboration inquiries, reach out to **Souvik Majumder** on: πŸ”— **LinkedIn**: [https://www.linkedin.com/in/souvikmajumder26](https://www.linkedin.com/in/souvikmajumder26) πŸ”— **GitHub**: [https://github.com/souvikmajumder26](https://github.com/souvikmajumder26)

πŸ” Return

---