Spaces:
Running
Running
import gradio as gr | |
from transformers import pipeline | |
import os | |
# Initialize global pipeline | |
ner_pipeline = None | |
def load_healthcare_ner_pipeline(): | |
"""Load the Hugging Face pipeline for Healthcare NER.""" | |
global ner_pipeline | |
if ner_pipeline is None: | |
ner_pipeline = pipeline( | |
"token-classification", | |
model="TypicaAI/HealthcareNER-Fr", | |
aggregation_strategy="first" # Groups B- and I- tokens into entities | |
) | |
return ner_pipeline | |
def process_text(text): | |
"""Process input text and return highlighted entities.""" | |
pipeline = load_healthcare_ner_pipeline() | |
entities = pipeline(text) | |
return {"text": text, "entities": entities} | |
def log_demo_usage(text, num_entities): | |
"""Log demo usage for analytics.""" | |
print(f"Processed text: {text[:50]}... | Entities found: {num_entities}") | |
# Define the main demo interface | |
demo = gr.Interface( | |
fn=process_text, | |
inputs=gr.Textbox( | |
label="Paste French medical text", | |
placeholder="Le patient présente une hypertension artérielle...", | |
lines=5 | |
), | |
outputs=gr.HighlightedText(), | |
#outputs=gr.HTML(label="Identified Medical Entities"), | |
title="French Healthcare NER Demo", | |
description=""" | |
_By **Hicham Assoudi** – AI Researcher (Ph.D.), Oracle Consultant, and Author._ | |
Explore the 🔬 **Live Demo** of the French Healthcare NER model, featured in _Natural Language Processing on Oracle Cloud Infrastructure: Building Transformer-Based NLP Solutions Using Oracle AI and Hugging Face_. Learn more in Chapter 6 of the book ([Get the Book](https://a.co/d/eg7my5G)). | |
📚 **Educational Focus**: Step-by-step guidance on building NLP models, using the healthcare case study featured in the book. Explore applications like extracting insights from medical records, identifying patient conditions, and supporting compliance with healthcare regulations. | |
⚡ **Built on OCI**: Trained using Oracle Cloud Infrastructure's AI capabilities. | |
""", | |
article=""" | |
### **Disclaimer** | |
This is a **demo model** provided for educational purposes. It was trained on a limited dataset and is not intended for production use, clinical decision-making, or real-world medical applications. | |
""", | |
examples=[ | |
["Le medecin donne des antibiotiques en cas d'infections des voies respiratoires e.g. pneumonie."], | |
["Dans le cas de l'asthme, le médecin peut recommander des corticoïdes pour réduire l'inflammation dans les poumons."], | |
["Pour soulager les symptômes d'allergie, le médecin prescrit des antihistaminiques."], | |
["Si le patient souffre de diabète de type 2, le médecin peut prescrire une insulinothérapie par exemple: Metformine 500mg."], | |
["Après une blessure musculaire ou une maladies douloureuses des tendons comme une tendinopathie, le patient pourrait suivre une kinésithérapie ou une physiothérapie."], | |
["En cas d'infection bactérienne, le médecin recommande une antibiothérapie."], | |
["Antécédents: infarctus du myocarde en 2019. Allergie à la pénicilline."] | |
] | |
) | |
# Add marketing elements | |
with gr.Blocks() as marketing_elements: | |
gr.Markdown(""" | |
### 📖 Get the Complete Guide | |
Learn how to build and deploy this exact model in 'Natural Language Processing on Oracle Cloud Infrastructure: Building Transformer-Based NLP Solutions Using Oracle AI and Hugging Face Kindle Edition' | |
- ✓ Step-by-step implementation | |
- ✓ Performance optimization | |
- ✓ Enterprise deployment patterns | |
- ✓ Complete source code | |
[Get the Book](https://a.co/d/eg7my5G) | |
""") | |
with gr.Row(): | |
email_input = gr.Textbox( | |
label="Get the French Healthcare NER Dataset", | |
placeholder="Enter your business email" | |
) | |
submit_btn = gr.Button("Access Dataset") | |
# Launch the Gradio demo | |
if __name__ == "__main__": | |
demo.launch() | |