import gradio as gr from app.handler import predict markdown_doc_fr = """ # 📘 Documentation du modèle ToxiCheck Ce modèle détecte automatiquement la toxicité des commentaires en français à l’aide de variantes de CamemBERT. --- ### 📊 Performances - Précision (non toxique) : 0.93 - Rappel (non toxique) : 0.93 - F1-score (non toxique) : 0.93 - Précision (toxique) : 0.62 - Rappel (toxique) : 0.61 - F1-score (toxique) : 0.61 - Accuracy globale : 0.88 --- ### ⚙️ Types de modèles disponibles - `zero-shot` : modèle générique sans entraînement spécifique - `few-shot` : modèle avec apprentissage partiel - `fine-tuned` : modèle CamemBERT entraîné sur un corpus annoté --- ### 🔗 Modèle utilisé [ymokay/toxicheck-camembert](https://huggingface.co/ymokay/toxicheck-camembert) """ markdown_doc_en = """ # 📘 ToxiCheck Model Documentation This model automatically detects toxic comments in French using variants of CamemBERT. --- ### 📊 Performance - Precision (non-toxic): 0.93 - Recall (non-toxic): 0.93 - F1-score (non-toxic): 0.93 - Precision (toxic): 0.62 - Recall (toxic): 0.61 - F1-score (toxic): 0.61 - Overall accuracy: 0.88 --- ### ⚙️ Available model types - `zero-shot`: general-purpose model without specific training - `few-shot`: model trained on a few examples - `fine-tuned`: CamemBERT model trained on an annotated corpus --- ### 🔗 Model used [ymokay/toxicheck-camembert](https://huggingface.co/ymokay/toxicheck-camembert) """ def create_interface(): with gr.Blocks() as demo: with gr.Tabs(): with gr.TabItem("📘 Documentation"): lang_selector = gr.Radio(["fr", "en"], label="Langue / Language", value="fr") doc_output = gr.Markdown() def show_doc(lang): return markdown_doc_fr if lang == "fr" else markdown_doc_en lang_selector.change(fn=show_doc, inputs=lang_selector, outputs=doc_output) with gr.TabItem("🧪 Inférence"): gr.Markdown("### Analyse d'un texte") input_text = gr.Textbox(label="Texte à analyser") model_choice = gr.Dropdown(choices=["zero-shot", "few-shot", "fine-tuned"], label="Type de modèle", value="zero-shot") output = gr.Markdown() button = gr.Button("Analyser") button.click(fn=predict, inputs=[input_text, model_choice], outputs=output) return demo def launch_app(): iface = create_interface() iface.launch()