Spaces:
Sleeping
Sleeping
File size: 3,453 Bytes
c7ee2c4 a8e5bec c7ee2c4 a8e5bec c7ee2c4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | import gradio as gr
import csv
import os
from datetime import datetime
import uuid
DOMAINES = ["Santé", "Éducation", "Numérique", "Agriculture", "Politique", "Autre"]
LANGUES = ["Français", "Arabe tchadien", "Sara", "Ngambay", "Autre"]
TYPES = ["Texte brut", "Question-réponse", "Résumé", "Dialogue"]
FICHIER_SORTIE = "contributions.csv"
def sauvegarder_contribution(texte, domaine, langue, source, type_contenu, contributeur, consentement):
if not texte or not texte.strip():
return "⚠️ Le champ texte ne peut pas être vide."
if not consentement:
return "⚠️ Vous devez accepter les conditions de contribution pour soumettre."
nouvelle_ligne = {
"id": str(uuid.uuid4())[:8],
"texte": texte.strip(),
"domaine": domaine,
"langue": langue,
"source": source if source else "contribution directe",
"type": type_contenu,
"contributeur": contributeur if contributeur else "anonyme",
"date_collecte": datetime.now().strftime("%Y-%m-%d"),
"licence": "CC-BY-SA-4.0"
}
fichier_existe = os.path.isfile(FICHIER_SORTIE)
with open(FICHIER_SORTIE, mode="a", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=nouvelle_ligne.keys())
if not fichier_existe:
writer.writeheader()
writer.writerow(nouvelle_ligne)
return "✅ Merci ! Votre contribution a été enregistrée et sera relue par l'équipe CIAT avant intégration."
with gr.Blocks(title="CIAT Dataset - Contribuer") as demo:
gr.Markdown("""
# 🇹🇩 Contribuer au CIAT Dataset Tchad
Aidez-nous à construire un corpus public multilingue pour entraîner un modèle de langue tchadien.
Toute contribution est relue par l'équipe CIAT avant intégration définitive.
""")
with gr.Row():
with gr.Column():
texte = gr.Textbox(
label="Votre texte",
placeholder="Collez ou écrivez votre contribution ici...",
lines=8
)
domaine = gr.Dropdown(DOMAINES, label="Domaine", value="Numérique")
langue = gr.Dropdown(LANGUES, label="Langue", value="Français")
type_contenu = gr.Dropdown(TYPES, label="Type de contenu", value="Texte brut")
source = gr.Textbox(label="Source (optionnel)", placeholder="Ex : rédaction originale, traduction, article...")
contributeur = gr.Textbox(label="Votre pseudonyme (optionnel, laissez vide pour anonyme)")
consentement = gr.Checkbox(
label="J'accepte que ce contenu soit publié sous licence CC-BY-SA-4.0 et utilisé pour entraîner des modèles de langage."
)
bouton = gr.Button("Soumettre ma contribution", variant="primary")
with gr.Column():
resultat = gr.Textbox(label="Statut", interactive=False)
gr.Markdown("""
### Règles de contribution
- Ne soumettez que du contenu dont vous détenez les droits
- Pas de contenu diffamatoire ou de désinformation
- Pas de données personnelles ou médicales identifiables
- Précisez la langue exacte de votre texte
""")
bouton.click(
fn=sauvegarder_contribution,
inputs=[texte, domaine, langue, source, type_contenu, contributeur, consentement],
outputs=resultat
)
demo.launch()
|