File size: 7,206 Bytes
186b228
 
 
 
 
 
 
 
 
 
 
 
 
3ca1d38
a8c922b
c4f5f25
 
 
 
3ca1d38
 
a8c922b
c4f5f25
a8c922b
c4f5f25
3ca1d38
c4f5f25
 
 
 
3ca1d38
c4f5f25
3ca1d38
c4f5f25
 
 
 
3ca1d38
c4f5f25
 
 
 
 
3ca1d38
c4f5f25
 
a8c922b
c4f5f25
 
 
a8c922b
c4f5f25
 
 
 
 
 
 
 
a8c922b
 
c4f5f25
 
 
 
a8c922b
c4f5f25
a8c922b
c4f5f25
a8c922b
c4f5f25
 
 
 
 
 
 
 
 
 
 
a8c922b
 
c4f5f25
a8c922b
c4f5f25
 
 
 
 
a8c922b
c4f5f25
a8c922b
c4f5f25
 
 
 
 
 
 
a8c922b
c4f5f25
a8c922b
c4f5f25
a8c922b
c4f5f25
 
 
 
 
 
 
a8c922b
c4f5f25
a8c922b
6dc9d46
a8c922b
 
c4f5f25
3ca1d38
6dc9d46
c4f5f25
 
 
 
 
 
 
 
 
6dc9d46
 
c4f5f25
6dc9d46
c4f5f25
 
 
6dc9d46
c4f5f25
 
 
 
 
 
 
 
 
 
 
 
6dc9d46
 
c4f5f25
6dc9d46
c4f5f25
 
 
 
 
6dc9d46
c4f5f25
6dc9d46
 
c4f5f25
 
 
 
 
 
 
 
 
 
 
 
 
 
6dc9d46
 
c4f5f25
6dc9d46
c4f5f25
 
 
6dc9d46
c4f5f25
 
6dc9d46
c4f5f25
 
 
 
6dc9d46
c4f5f25
6dc9d46
c4f5f25
6dc9d46
c4f5f25
 
 
 
6dc9d46
c4f5f25
 
 
 
6dc9d46
c4f5f25
 
 
a8c922b
c4f5f25
 
a8c922b
 
c4f5f25
a8c922b
c4f5f25
 
 
 
a8c922b
c4f5f25
a8c922b
c4f5f25
 
 
 
 
a8c922b
c4f5f25
a8c922b
c4f5f25
 
 
 
 
a8c922b
c4f5f25
a8c922b
c4f5f25
a8c922b
c4f5f25
a8c922b
c4f5f25
 
 
 
 
 
a8c922b
c4f5f25
a8c922b
c4f5f25
 
 
 
 
a8c922b
c4f5f25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
---
title: MediGuard AI
emoji: πŸ₯
colorFrom: blue
colorTo: green
sdk: docker
sdk_version: "3.13"
python_version: "3.13"
app_file: app.py
pinned: false
license: mit
---

# MediGuard AI: Multi-Agent RAG System for Medical Biomarker Analysis

[![Tests](https://img.shields.io/badge/tests-148%20passing-brightgreen)](tests/)
[![Coverage](https://img.shields.io/badge/coverage-58%25-yellow)](tests/)
[![Security](https://img.shields.io/badge/security-passing-brightgreen)](src/)
[![Code Quality](https://img.shields.io/badge/code%20quality-passing-brightgreen)](src/)

> **⚠️ Disclaimer:** This is an AI-assisted analysis tool, NOT a medical device. Always consult healthcare professionals for medical decisions.

A production-ready biomarker analysis system combining 6 specialized AI agents with medical knowledge retrieval (RAG) to provide evidence-based insights on blood test results.

## πŸš€ Quick Start

### Prerequisites
- Python 3.13+
- 8GB+ RAM
- Ollama (for local LLM) or Groq API key

### Installation (5 minutes)

```bash
# Clone the repository
git clone https://github.com/yourusername/Agentic-RagBot.git
cd Agentic-RagBot

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # Linux/Mac
# or
.venv\\Scripts\\activate  # Windows

# Install dependencies
pip install -r requirements.txt

# Configure environment (copy .env.example to .env)
cp .env.example .env
# Edit .env with your API keys

# Initialize embeddings
python scripts/setup_embeddings.py

# Start the application
python -m src.main
```

### Docker Alternative

```bash
# Build and run with Docker
docker build -t mediguard-ai .
docker run -p 8000:8000 -p 7860:7860 mediguard-ai
```

## πŸ—οΈ Architecture

### Multi-Agent Workflow

```
Input β†’ Validation β†’ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β†’ Output
                    β”‚     6 Specialist Agents        β”‚
                    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
                    β”‚ β€’ Biomarker Analyzer            β”‚
                    β”‚ β€’ Disease Explainer            β”‚
                    β”‚ β€’ Biomarker Linker             β”‚
                    β”‚ β€’ Clinical Guidelines Agent    β”‚
                    β”‚ β€’ Confidence Assessor          β”‚
                    β”‚ β€’ Response Synthesizer         β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

### Key Components

- **Agents**: 6 specialized AI agents for different analysis aspects
- **Knowledge Base**: Medical literature in vector database (FAISS/OpenSearch)
- **State Management**: LangGraph for workflow orchestration
- **API Layer**: FastAPI with async support
- **Web UI**: Gradio interface for interactive use

## πŸ“Š Features

- **🧬 Biomarker Analysis**: Analyzes 80+ biomarker aliases mapped to 24 canonical names
- **🎯 Disease Scoring**: Rule-based heuristics for 5 major conditions
- **πŸ“š Evidence-Based**: All recommendations backed by medical literature
- **πŸ”’ HIPAA Compliant**: Audit logging and security headers
- **πŸš€ Production Ready**: Error handling, monitoring, and scalability
- **πŸ”§ Configurable**: Environment-based configuration
- **πŸ“– Multiple Interfaces**: CLI, REST API, and Web UI

## 🎯 Disease Detection

The system uses rule-based heuristics to score disease likelihood:

| Disease | Key Indicators | Threshold |
|---------|----------------|-----------|
| Diabetes | Glucose, HbA1c | Glucose > 126, HbA1c β‰₯ 6.5 |
| Anemia | Hemoglobin, MCV | Hgb < 12, MCV < 80 |
| Heart Disease | Cholesterol, Troponin | Chol > 240, Troponin > 0.04 |
| Thrombocytopenia | Platelets | Platelets < 150,000 |
| Thalassemia | MCV + Hgb pattern | MCV < 80 + Hgb < 12 |

## πŸ› οΈ Usage

### REST API

```bash
# Start the server
uvicorn src.main:app --reload

# Analyze biomarkers
curl -X POST http://localhost:8000/analyze/structured \\
  -H "Content-Type: application/json" \\
  -d '{"biomarkers": {"Glucose": 140, "HbA1c": 10.0}}'

# Ask medical questions
curl -X POST http://localhost:8000/ask \\
  -H "Content-Type: application/json" \\
  -d '{"question": "What does high HbA1c mean?"}'
```

### Python SDK

```python
from src.workflow import create_guild
from src.state import PatientInput

# Create workflow
guild = create_guild()

# Analyze patient data
patient_input = PatientInput(
    biomarkers={"Glucose": 140, "HbA1c": 10.0},
    patient_context={"age": 45, "gender": "male"},
    model_prediction={"disease": "Diabetes", "confidence": 0.9}
)

result = guild.run(patient_input)
print(result["final_response"])
```

### Web Interface

```bash
# Launch Gradio UI
python -m src.gradio_app
# Visit http://localhost:7860
```

## πŸ“ Project Structure

```
Agentic-RagBot/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ agents/          # Agent implementations
β”‚   β”œβ”€β”€ services/        # Core services (retrieval, embeddings)
β”‚   β”œβ”€β”€ routers/         # FastAPI endpoints
β”‚   β”œβ”€β”€ models/          # Data models
β”‚   β”œβ”€β”€ state.py         # State management
β”‚   β”œβ”€β”€ workflow.py      # Workflow orchestration
β”‚   └── main.py          # Application entry point
β”œβ”€β”€ tests/               # Test suite (58% coverage)
β”œβ”€β”€ scripts/             # Utility scripts
β”œβ”€β”€ docs/                # Documentation
β”œβ”€β”€ data/                # Data files
└── docker/              # Docker configurations
```

## πŸ§ͺ Testing

```bash
# Run all tests
pytest tests/

# Run with coverage
pytest tests/ --cov=src --cov-report=html

# Run specific test suites
pytest tests/test_agents.py
pytest tests/test_workflow.py
```

## πŸ”§ Configuration

Key environment variables:

```bash
# API Configuration
API__HOST=127.0.0.1
API__PORT=8000

# LLM Configuration
GROQ_API_KEY=your_groq_key
# or
OLLAMA_BASE_URL=http://localhost:11434

# Database
OPENSEARCH_HOST=localhost
OPENSEARCH_PORT=9200

# Cache
REDIS_URL=redis://localhost:6379
```

## πŸ“ˆ Performance

- **Response Time**: < 2 seconds for typical analysis
- **Throughput**: 100+ concurrent requests
- **Memory Usage**: ~2GB base + embeddings
- **Test Coverage**: 58% (148 passing tests)

## πŸ”’ Security

- HIPAA-compliant audit logging
- Security headers middleware
- Input validation and sanitization
- No hardcoded secrets
- Regular security scans (Bandit)

## 🀝 Contributing

1. Fork the repository
2. Create a feature branch
3. Write tests for new functionality
4. Ensure all tests pass
5. Submit a pull request

See [DEVELOPMENT.md](DEVELOPMENT.md) for detailed guidelines.

## πŸ“„ License

MIT License - see [LICENSE](LICENSE) for details.

## πŸ™ Acknowledgments

- Medical literature from NIH and WHO
- LangChain and LangGraph for agent framework
- FAISS for vector similarity search
- FastAPI for web framework

## πŸ“ž Support

- πŸ“§ Email: support@mediguard-ai.com
- πŸ“– Documentation: [docs/](docs/)
- πŸ› Issues: [GitHub Issues](https://github.com/yourusername/Agentic-RagBot/issues)

---

**⚑ Ready to deploy?** See [DEPLOYMENT.md](DEPLOYMENT.md) for production deployment guide.