Medical_Document_Retrieval / UI_IMPLEMENTATION.md
taraky's picture
Upload folder using huggingface_hub
b7f3196 verified
|
raw
history blame
7.34 kB

Medical Q&A Bot - UI Implementation Summary

πŸ“¦ What Was Added

New Files Created:

  1. app.py - Main Gradio web interface (RECOMMENDED)

    • Clean, modern UI with gradient header
    • Dual-view mode (formatted HTML + JSON)
    • Real-time classification and retrieval
    • Example queries built-in
    • Automatic API generation
  2. app_streamlit.py - Alternative Streamlit interface

    • Interactive sidebar with settings
    • Card-based result display
    • Progress bars for confidence scores
    • More customizable styling options
  3. QUICKSTART.md - Step-by-step setup guide

    • Installation instructions
    • How to launch both UIs
    • Troubleshooting tips
    • Demo tips for presentations
  4. UI_README.md - Comprehensive documentation

    • Feature descriptions
    • Configuration options
    • Advanced usage
    • API information
  5. setup_ui.py - Automated setup script

    • Installs all dependencies
    • Checks for required data files
    • Verifies setup completeness

Modified Files:

  1. requirements.txt - Added:
    • gradio - Main UI framework
    • streamlit - Alternative UI framework

🎯 Key Features

Classification Display

  • βœ… Shows query type (Medical/Administrative/Other)
  • βœ… Confidence scores with visual indicators
  • βœ… Color-coded results

Document Retrieval

  • βœ… Retrieves top N relevant documents (1-50)
  • βœ… Shows BM25, Dense, and RRF scores
  • βœ… Displays document preview with full metadata
  • βœ… Optional reranker for better accuracy

User Experience

  • βœ… Clean, professional design
  • βœ… Example queries for easy testing
  • βœ… Formatted and raw JSON views
  • βœ… Responsive layout
  • βœ… Real-time processing

πŸš€ Quick Start (TL;DR)

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

# 2. Build data (if needed)
python -m adapters.build_corpora

# 3. Launch UI (choose one)
python app.py              # Gradio (recommended)
streamlit run app_streamlit.py  # Streamlit (alternative)

🌟 Which UI to Use?

Use Gradio (app.py) if you want:

  • Quick setup and deployment
  • Clean, minimal interface
  • Easy sharing (public links)
  • Automatic REST API
  • Better for demos and presentations

Use Streamlit (app_streamlit.py) if you want:

  • More interactive controls
  • Sidebar with settings
  • More customization options
  • Data-science focused interface

Recommendation: Start with Gradio - it's simpler and looks very professional!

πŸ“Š How It Works

User Input β†’ Gradio/Streamlit Interface
    ↓
Classifier (classify query as medical/admin/other)
    ↓
If Medical β†’ Retriever (BM25 + Dense + RRF)
    ↓
Optional Reranker (cross-encoder)
    ↓
Display Results (formatted cards + JSON)

πŸŽ“ For Your Presentation

Demo Flow:

  1. Open the interface - Show the clean design
  2. Enter a medical query - e.g., "I have a rash on my hands"
  3. Show classification - Highlight confidence scores
  4. Display results - Show retrieved medical documents
  5. Try administrative query - Show different handling
  6. Toggle settings - Demonstrate reranker and result count
  7. Show JSON view - For technical audience

Key Talking Points:

  • "We built a user-friendly web interface using Gradio"
  • "The system classifies queries in real-time with confidence scores"
  • "For medical queries, it retrieves relevant research from PubMed and Miriad"
  • "Uses hybrid search combining BM25 and dense embeddings"
  • "Optional reranker for improved accuracy"

🎨 Customization Options

Change Theme/Colors

Edit the CSS in app.py:

custom_css = """
.header {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
"""

Add More Example Queries

Edit the examples list in app.py:

gr.Examples(
    examples=[
        ["Your custom query here"],
    ],
    inputs=query_input,
)

Change Port

demo.launch(server_port=8080)  # Default is 7860

Enable Public Sharing

demo.launch(share=True)  # Creates 72-hour public link

πŸ”§ Technical Details

Gradio Version

  • Framework: Gradio 4.x
  • Features: Blocks API, custom CSS, examples, tabs
  • Auto-generates REST API at /docs

Streamlit Version

  • Framework: Streamlit
  • Features: Sidebar, caching, progress bars, metrics
  • More suitable for data exploration

Integration

  • Uses existing classifier and retriever modules
  • No changes to core logic
  • Models loaded once and cached
  • Async processing for better UX

πŸ“ File Structure

health-query-classifier/
β”œβ”€β”€ app.py                  # ← Main Gradio UI
β”œβ”€β”€ app_streamlit.py        # ← Alternative Streamlit UI
β”œβ”€β”€ setup_ui.py             # ← Setup script
β”œβ”€β”€ QUICKSTART.md           # ← Quick start guide
β”œβ”€β”€ UI_README.md            # ← Detailed documentation
β”œβ”€β”€ requirements.txt        # ← Updated with gradio/streamlit
β”œβ”€β”€ classifier/
β”‚   β”œβ”€β”€ infer.py           # Used by UI
β”‚   └── ...
β”œβ”€β”€ retriever/
β”‚   └── ...
└── team/
    β”œβ”€β”€ candidates.py      # Used by UI
    └── ...

πŸ› Common Issues & Solutions

"Module not found: gradio"

pip install gradio

"No corpora files found"

python -m adapters.build_corpora

Models take long to load

  • This is normal on first run
  • Models are cached after initial load
  • Consider using smaller models for faster demo

Port already in use

  • Change port in app.py (line ~255)
  • Or kill the process using that port

🌐 Deployment Options

Local (Current Setup)

  • Best for development and demos
  • Access via localhost

Hugging Face Spaces (Free)

  • Free hosting for Gradio apps
  • Easy to deploy
  • Public URL

Cloud Platforms

  • AWS, Google Cloud, Azure
  • More control and scalability
  • Requires more setup

πŸ“ˆ Future Enhancements

Potential additions for future development:

  • User authentication
  • Query history
  • Bookmarking results
  • Export to PDF
  • Multi-language support
  • Voice input
  • Mobile app
  • Analytics dashboard

πŸ‘₯ Team Contributions

This UI implementation demonstrates:

  • Full-stack development skills
  • ML model integration
  • User experience design
  • Modern web frameworks
  • Professional documentation

Perfect for showcasing in your group project presentation!

πŸ“ž Support

For issues or questions:

  1. Check QUICKSTART.md for setup issues
  2. Check UI_README.md for feature documentation
  3. Review error messages carefully
  4. Contact team members

βœ… Ready to Present!

Your medical Q&A bot now has a professional web interface that:

  • βœ… Looks modern and clean
  • βœ… Is easy to use
  • βœ… Demonstrates your ML capabilities
  • βœ… Provides clear results
  • βœ… Is well-documented
  • βœ… Can be easily deployed

Great work, team! πŸŽ‰


Created by: Tarak Jha, with contributions from the entire team Team: David Gray β€’ Tarak Jha β€’ Sravani Segireddy β€’ Riley Millikan β€’ Kent R. Spillner