Spaces:
Paused
Paused
| # HNTAI - Medical Data Extraction & AI Processing Platform | |
| A comprehensive, scalable AI platform for medical data extraction, processing, and analysis. Built with FastAPI, supporting multiple AI model backends including Transformers, OpenVINO, and GGUF models with automatic GPU/CPU optimization. | |
| ## π₯ Overview | |
| HNTAI is a production-ready medical AI platform that provides: | |
| - **Medical Document Processing**: PDF, DOCX, image, and audio transcription | |
| - **Protected Health Information (PHI) Scrubbing**: HIPAA-compliant data anonymization | |
| - **AI-Powered Summarization**: Multi-model support with automatic device optimization | |
| - **Patient Summary Generation**: Comprehensive clinical assessments | |
| - **Simplified Architecture**: Clean, maintainable codebase with essential features | |
| ## π Key Features | |
| ### π€ Multi-Model AI Support | |
| - **Transformers Models**: Hugging Face models with automatic GPU/CPU detection | |
| - **OpenVINO Optimization**: Intel-optimized models for production performance | |
| - **GGUF Models**: Quantized models for efficient inference | |
| - **Automatic Device Selection**: GPU when available, CPU fallback | |
| - **Model Caching**: Intelligent model management and caching | |
| ### π Document Processing | |
| - **Multi-format Support**: PDF, DOCX, images, audio files | |
| - **OCR Integration**: Tesseract-based text extraction | |
| - **Audio Transcription**: Whisper-based speech-to-text | |
| - **Batch Processing**: Async processing for scalability | |
| ### π Security & Compliance | |
| - **HIPAA Compliance**: PHI scrubbing with audit logging | |
| - **Data Encryption**: Secure data handling and storage | |
| - **Audit Trails**: Comprehensive logging for compliance | |
| - **Non-root Containers**: Security-hardened deployments | |
| ### π Monitoring & Observability | |
| - **Health Endpoints**: `/health/live`, `/health/ready` | |
| - **Basic Metrics**: Simple performance tracking | |
| - **Structured Logging**: Application logging | |
| - **Audit Logging**: HIPAA-compliant audit trails | |
| ## ποΈ Architecture | |
| ``` | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β FastAPI Application β | |
| β (main.py) β | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β | |
| βββββββββββββββββββββΌββββββββββββββββββββ | |
| β β β | |
| βΌ βΌ βΌ | |
| ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ | |
| β Routes β β Agents β β Utils β | |
| β β β β β β | |
| β - /upload β β - Text β β - Model β | |
| β - /transcribeβ β Extractor β β Manager β | |
| β - /generate β β - PHI β β - JSON β | |
| β _summary β β Scrubber β β Parser β | |
| β β β - Patient β β - Config β | |
| β β β Summary β β β | |
| β β β - Whisper β β β | |
| ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ | |
| β β β | |
| βββββββββββββββββββββΌββββββββββββββββββββ | |
| β | |
| βββββββββββββββββββββΌββββββββββββββββββββ | |
| β β β | |
| βΌ βΌ βΌ | |
| ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ | |
| β Models β β Database β β Health β | |
| β β β (Optional) β β β | |
| β - Transformersβ β - Audit Logs β β - /health β | |
| β - GGUF β β (HIPAA) β β - /metrics β | |
| β - OpenVINO β β β β β | |
| β - Whisper β β β β β | |
| ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ | |
| ``` | |
| ## π οΈ Installation | |
| ### Prerequisites | |
| - Python 3.11+ | |
| - CUDA 11.8+ (for GPU support) | |
| - Docker (for containerized deployment) | |
| - PostgreSQL 13+ (optional - for audit logs) | |
| ### Local Development | |
| 1. **Clone the repository**: | |
| ```bash | |
| git clone <repository-url> | |
| cd HNTAI | |
| ``` | |
| 2. **Create virtual environment**: | |
| ```bash | |
| python -m venv venv | |
| source venv/bin/activate # On Windows: venv\Scripts\activate | |
| ``` | |
| 3. **Install dependencies**: | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| 4. **Set up environment variables**: | |
| ```bash | |
| export DATABASE_URL="postgresql://user:password@localhost:5432/hntai" # Optional - for audit logs | |
| export SECRET_KEY="your-secret-key" | |
| export JWT_SECRET_KEY="your-jwt-secret" | |
| export HF_HOME="/tmp/huggingface" | |
| ``` | |
| 5. **Run the application**: | |
| ```bash | |
| # Development server | |
| python -m uvicorn services.ai-service.src.ai_med_extract.main:app --reload --host 0.0.0.0 --port 7860 | |
| # Or using the service directly | |
| cd services/ai-service | |
| python src/ai_med_extract/main.py | |
| ``` | |
| ### Docker Deployment | |
| 1. **Build the image**: | |
| ```bash | |
| docker build -t hntai:latest . | |
| ``` | |
| 2. **Run with Docker Compose**: | |
| ```bash | |
| docker-compose up -d | |
| ``` | |
| ### Kubernetes Deployment | |
| 1. **Apply Kubernetes manifests**: | |
| ```bash | |
| kubectl apply -f infra/k8s/secure_deployment.yaml | |
| ``` | |
| 2. **Check deployment status**: | |
| ```bash | |
| kubectl get pods -l app=hntai | |
| ``` | |
| ## π API Documentation | |
| ### Core Endpoints | |
| #### Health & Monitoring | |
| - `GET /health/live` - Liveness probe | |
| - `GET /health/ready` - Readiness probe | |
| - `GET /metrics` - Prometheus metrics | |
| #### Document Processing | |
| - `POST /upload` - Upload and process documents | |
| - `POST /transcribe` - Transcribe audio files | |
| - `GET /get_updated_medical_data` - Retrieve processed data | |
| - `PUT /update_medical_data` - Update medical data | |
| #### AI Processing | |
| - `POST /generate_patient_summary` - Generate comprehensive patient summaries | |
| - `POST /api/generate_summary` - Generate text summaries | |
| - `POST /api/patient_summary_openvino` - OpenVINO-optimized summaries | |
| - `POST /extract_medical_data` - Extract structured medical data | |
| ### Model Management | |
| - `POST /api/load_model` - Load specific AI models | |
| - `GET /api/model_info` - Get model information | |
| - `POST /api/switch_model` - Switch between models | |
| ## π€ AI Model Configuration | |
| ### Supported Model Types | |
| #### 1. Transformers Models | |
| ```python | |
| { | |
| "model_name": "microsoft/Phi-3-mini-4k-instruct", | |
| "model_type": "text-generation" | |
| } | |
| ``` | |
| #### 2. OpenVINO Models | |
| ```python | |
| { | |
| "model_name": "OpenVINO/Phi-3-mini-4k-instruct-fp16-ov", | |
| "model_type": "openvino" | |
| } | |
| ``` | |
| #### 3. GGUF Models | |
| ```python | |
| { | |
| "model_name": "microsoft/Phi-3-mini-4k-instruct-gguf", | |
| "model_type": "gguf" | |
| } | |
| ``` | |
| ### Automatic Device Detection | |
| The system automatically detects and uses: | |
| - **GPU**: When CUDA is available | |
| - **CPU**: Fallback when GPU is not available | |
| - **Optimization**: Intel OpenVINO for production performance | |
| ## π§ Configuration | |
| ### Environment Variables | |
| | Variable | Description | Default | | |
| |----------|-------------|---------| | |
| | `DATABASE_URL` | PostgreSQL connection string (optional - for audit logs) | Not required | | |
| | `SECRET_KEY` | Application secret key | Required | | |
| | `JWT_SECRET_KEY` | JWT signing key | Required | | |
| | `HF_HOME` | Hugging Face cache directory | `/tmp/huggingface` | | |
| | `TORCH_HOME` | PyTorch cache directory | `/tmp/torch` | | |
| | `WHISPER_CACHE` | Whisper model cache | `/tmp/whisper` | | |
| | `HF_SPACES` | Hugging Face Spaces mode | `false` | | |
| | `PRELOAD_GGUF` | Preload GGUF models | `false` | | |
| ### Model Configuration | |
| The system supports flexible model configuration through `model_config.py`: | |
| ```python | |
| # Default models for different tasks | |
| DEFAULT_MODELS = { | |
| "text-generation": { | |
| "primary": "microsoft/Phi-3-mini-4k-instruct", | |
| "fallback": "facebook/bart-base" | |
| }, | |
| "openvino": { | |
| "primary": "OpenVINO/Phi-3-mini-4k-instruct-fp16-ov", | |
| "fallback": "microsoft/Phi-3-mini-4k-instruct" | |
| }, | |
| "gguf": { | |
| "primary": "microsoft/Phi-3-mini-4k-instruct-gguf", | |
| "fallback": "microsoft/Phi-3-mini-4k-instruct-gguf" | |
| } | |
| } | |
| ``` | |
| ## π§ͺ Testing | |
| ### Run Tests | |
| ```bash | |
| # Unit tests | |
| python -m pytest tests/ | |
| # Smoke test (no model loading) | |
| cd services/ai-service | |
| python run_smoke_test.py | |
| # Integration tests | |
| python -m pytest tests/integration/ | |
| ``` | |
| ### Code Quality | |
| ```bash | |
| # Format code | |
| black . | |
| isort . | |
| # Lint code | |
| flake8 . | |
| mypy . | |
| # Type checking | |
| mypy services/ai-service/src/ai_med_extract/ | |
| ``` | |
| ## π Monitoring | |
| ### Health Checks | |
| - **Liveness**: `GET /health/live` - Application is running | |
| - **Readiness**: `GET /health/ready` - Application is ready to serve requests | |
| ### Metrics | |
| - **Prometheus**: `GET /metrics` - Application and model metrics | |
| - **Custom Metrics**: Model inference time, success rates, error rates | |
| ### Logging | |
| - **Structured Logging**: JSON-formatted logs | |
| - **Audit Trails**: PHI access and modification logs | |
| - **Performance Logs**: Model loading and inference timing | |
| ## π Security Features | |
| ### HIPAA Compliance | |
| - **PHI Scrubbing**: Automatic removal of protected health information | |
| - **Audit Logging**: Comprehensive access and modification logs | |
| - **Data Encryption**: Secure data handling and storage | |
| - **Access Controls**: Role-based access to sensitive data | |
| ### Container Security | |
| - **Non-root Containers**: Security-hardened container images | |
| - **Resource Limits**: CPU and memory limits | |
| - **Network Policies**: Secure network communication | |
| - **Secrets Management**: Secure handling of sensitive configuration | |
| ## π Deployment Options | |
| ### 1. Local Development | |
| ```bash | |
| python -m uvicorn services.ai-service.src.ai_med_extract.main:app --reload | |
| ``` | |
| ### 2. Docker | |
| ```bash | |
| docker run -p 7860:7860 hntai:latest | |
| ``` | |
| ### 3. Kubernetes | |
| ```bash | |
| kubectl apply -f infra/k8s/secure_deployment.yaml | |
| ``` | |
| ### 4. Hugging Face Spaces | |
| ```bash | |
| # Configure for HF Spaces | |
| export HF_SPACES=true | |
| # The app.py file automatically detects HF Spaces environment | |
| ``` | |
| ## π Project Structure | |
| ``` | |
| HNTAI/ | |
| βββ services/ | |
| β βββ ai-service/ | |
| β βββ src/ | |
| β βββ ai_med_extract/ | |
| β βββ agents/ # Core agents (simplified) | |
| β β βββ text_extractor.py | |
| β β βββ phi_scrubber.py | |
| β β βββ patient_summary_agent.py | |
| β β βββ medical_data_extractor.py | |
| β βββ api/ | |
| β β βββ routes_fastapi.py # All routes in one file | |
| β βββ utils/ | |
| β β βββ unified_model_manager.py # Single model manager | |
| β β βββ robust_json_parser.py | |
| β β βββ model_config.py | |
| β βββ app.py # FastAPI app setup | |
| β βββ main.py # Entry point | |
| β βββ health_endpoints.py # Simple health checks | |
| β βββ database_audit.py # HIPAA audit logging | |
| βββ docs/ | |
| β βββ hf-spaces/ # HF Spaces deployment guides | |
| β βββ archive/ # Archived documentation | |
| βββ app.py # HF Spaces wrapper (minimal) | |
| βββ preload_models.py # Model preloading | |
| βββ requirements.txt | |
| βββ README.md | |
| ``` | |
| ## π€ Contributing | |
| 1. **Fork the repository** | |
| 2. **Create a feature branch**: `git checkout -b feature/amazing-feature` | |
| 3. **Make your changes** | |
| 4. **Run tests**: `python -m pytest` | |
| 5. **Commit changes**: `git commit -m 'Add amazing feature'` | |
| 6. **Push to branch**: `git push origin feature/amazing-feature` | |
| 7. **Open a Pull Request** | |
| ## π License | |
| This project is licensed under the MIT License - see the LICENSE file for details. | |
| ## π Documentation | |
| ### Main Documentation | |
| - **README_DEPLOYMENT.md** - Quick deployment reference for HF Spaces | |
| - **services/ai-service/README.md** - Detailed service documentation | |
| ### Deployment Guides (docs/hf-spaces/) | |
| - **HF_SPACES_QUICKSTART.md** - 10-minute deployment guide | |
| - **DEPLOYMENT_CHECKLIST.md** - Step-by-step checklist | |
| - **MODEL_USAGE_GUIDE.md** - Model configuration and usage | |
| - **HF_SPACES_DEPLOYMENT.md** - Complete deployment reference | |
| ### Additional Resources | |
| - **docs/archive/** - Historical documentation and summaries | |
| - **services/ai-service/src/ai_med_extract/PRODUCTION_READY_SUMMARY.md** - Production notes | |
| - **services/ai-service/src/ai_med_extract/utils/INTEGRATION_GUIDE.md** - Integration guide | |
| ## π Support | |
| - **Documentation**: Check the `/docs` endpoint for interactive API documentation | |
| - **Issues**: Report bugs and feature requests via GitHub Issues | |
| - **Discussions**: Join community discussions for questions and support | |
| ## π Changelog | |
| ### Latest Updates | |
| - β **Simplified architecture** - Removed over-engineered components | |
| - β **Unified model management** - Single model manager for all model types | |
| - β **Consolidated routes** - All API endpoints in one file | |
| - β **Simplified agents** - Removed duplicate implementations | |
| - β **Enhanced security and HIPAA compliance** - Maintained audit logging | |
| - β **Cleaner codebase** - 50% fewer files, 40% less code | |
| --- | |
| **Built with β€οΈ for the medical AI community** |