moazx's picture
Refactor project for Lung Cancer AI Advisor: update app and API descriptions, modify .gitignore to exclude Jupyter notebooks, and remove outdated deployment documentation. Delete unused files and enhance logging for better traceability.
0176a31
---
title: Lung Cancer Clinical Decision Support System
emoji: 🫁
colorFrom: blue
colorTo: green
sdk: docker
pinned: false
app_port: 7860
---
# Lung Cancer Clinical Decision Support System
A specialized AI-powered clinical decision support system for thoracic oncologists, pulmonologists, and healthcare professionals managing lung cancer patients. Built with Retrieval-Augmented Generation (RAG) and agentic AI capabilities.
## 🎯 Features
### Core Capabilities
- **Specialized Knowledge**: Focused on NSCLC and SCLC management
- **Evidence-Based Guidance**: Retrieves information from authoritative medical guidelines (NCCN, ASCO, ESMO, NICE)
- **Molecular Testing**: EGFR, ALK, ROS1, BRAF, MET, RET, KRAS, PD-L1, TMB
- **Treatment Modalities**: Targeted therapy, immunotherapy, chemotherapy, radiation, surgery
- **Comprehensive Citations**: Inline citations with page references for every answer
### Technical Features
- **Hybrid Search**: Vector search (FAISS) + BM25 for optimal retrieval
- **Context Enrichment**: Automatically includes surrounding pages for complete clinical context
- **Streaming Responses**: Real-time answer generation
- **Session Management**: Conversation history tracking
- **Export Functionality**: Export conversations as PDF or DOCX
- **Authentication**: Secure session-based authentication
- **Rate Limiting**: Built-in API rate limiting
## πŸš€ Deployment
### Live API
The API is deployed at: **https://moazx-lung-cancer-ai-advisor.hf.space**
### Quick Start
1. **Access the API**:
- API Docs: https://moazx-lung-cancer-ai-advisor.hf.space/docs
- Health Check: https://moazx-lung-cancer-ai-advisor.hf.space/health
## πŸ“š API Endpoints
### Health & Status
- `GET /` - API information
- `GET /health` - Health check
- `GET /health/initialization` - Initialization status
### Authentication
- `POST /auth/login` - User login
- `POST /auth/logout` - User logout
- `GET /auth/status` - Check authentication status
up
### Medical Queries
- `POST /ask` - Ask a question (complete response)
```json
{
"query": "What are the early symptoms of lung cancer?",
"session_id": "user_123_session_1699612345"
}
```
- `POST /ask/stream` - Ask a question (streaming response)
```json
{
"query": "What are the treatment options?",
"session_id": "user_123_session_1699612345"
}
```
### Export
- `GET /export/{format}?session_id={id}` - Export conversation (format: pdf, docx, txt)
## πŸ’» Local Development
### Prerequisites
- Python 3.11+
- OpenAI API key
- GitHub Personal Access Token (for side effects storage)
### Setup
1. **Clone the repository**:
```bash
git clone https://github.com/your-repo/lung-cancer-advisor.git
cd lung-cancer-advisor
```
2. **Install dependencies**:
```bash
pip install -r requirements.txt
```
3. **Configure environment variables**:
```bash
cp .env.example .env
# Edit .env with your API keys
```
4. **Run the application**:
```bash
python app.py
```
5. **Access the application**:
- API: http://localhost:7860
- Docs: http://localhost:7860/docs
- Frontend: Open `frontend/index.html`
## πŸ”§ Configuration
### Environment Variables
See `.env.example` for all configuration options:
- `OPENAI_API_KEY`: Your OpenAI API key (required)
- `GITHUB_TOKEN`: GitHub token for side effects storage (optional)
- `PORT`: Server port (default: 7860)
- `ALLOWED_ORIGINS`: CORS allowed origins
## πŸ—οΈ Architecture
### Components
- **FastAPI Backend**: RESTful API with async support
- **LangChain Agent**: Orchestrates tools and generates responses
- **Vector Store**: FAISS for semantic search
- **BM25 Search**: Keyword-based retrieval
- **Context Enrichment**: Adds surrounding pages for complete context
- **Frontend**: Vanilla JavaScript with Markdown rendering
### Agent Tools
1. **medical_guidelines_knowledge_tool**: Retrieves information from guidelines
2. **compare_providers_tool**: Compares guidance between providers
3. **side_effect_recording_tool**: Records adverse drug reactions
4. **get_current_datetime_tool**: Gets current date/time
## πŸ“Š Response Format
The agent provides:
- **Concise, evidence-based answers** for busy clinicians
- **Inline citations** after each statement
- **Comprehensive reference list** at the end
- **Structured markdown formatting** for easy scanning
- **Real-time streaming** for immediate feedback
Example:
```
### First-Line Treatment for EGFR-Mutated NSCLC
**Recommended Options:**
- Osimertinib 80mg daily (Source: NCCN.pdf, Page: 45, Provider: NCCN)
- Alternative: Erlotinib or Gefitinib for exon 19 deletions (Page: 46)
**References:**
(Source: NCCN.pdf, Pages: 45, 46, Provider: NCCN, Location: NSCLC Treatment Algorithm)
```