# app.py — MI WAAWI PULAR — FINAL VERSION (WORKS 100% – DEC 2025) import gradio as gr from transformers import pipeline import os # Your PRIVATE model + token from secret HF_TOKEN = os.getenv("HF_TOKEN") PULAR_MODEL = "mlamined/fr_pl_112" # stays private forever print("Loading your legendary Pular model (private)…") translator = pipeline( "translation", model=PULAR_MODEL, tokenizer=PULAR_MODEL, token=HF_TOKEN, src_lang="fra_Latn", tgt_lang="fuv_Latn", device=-1, max_length=512 ) simplifier = pipeline( "text2text-generation", model="csebuetnlp/mT5_multilingual_XLSum", device=-1 ) def respond(message, history): if not message.strip(): return "", history # Simple French for kids prompt = f"Réponds en français très simple, comme à un enfant de 8 ans, en phrases courtes : {message}" simple_fr = simplifier(prompt, max_new_tokens=200)[0]["generated_text"].strip() # Perfect Fuuta-Jallon Pular pular = translator(simple_fr)[0]["translation_text"].strip() # Add to chat history history.append((message, f"**Français simple :**\n{simple_fr}\n\n**Pular Fuuta-Jallon :**\n{pular}")) return "", history # PERFECT INTERFACE — buttons + examples work with gr.Blocks(theme=gr.themes.Soft()) as demo: gr.Markdown(""" # Mi Waawi Pular Fuuta-Jallon ! Écris en français → je réponds comme à un enfant + en vrai pular du Fouta Labé • Dalaba • Pita • Mamou • Timbi ❤️ """) chatbot = gr.Chatbot(height=600, show_label=False) with gr.Row(): msg = gr.Textbox( label="Ton message en français", placeholder="Ex: Jésus aime les enfants ?", lines=2, scale=4 ) send_btn = gr.Button("Envoyer", variant="primary", scale=1) # Examples that actually work gr.Examples( examples=[ ["Jésus aime les enfants ?"], ["Comment on dit merci en pular ?"], ["C’est quoi le paradis ?"], ["Ma grand-mère est malade"], ["Pourquoi on va à l’église ?"], ["Je veux lire la Bible en pular"], ], inputs=msg ) gr.Markdown(""" • Meilleur traducteur pular du monde (bat la Bible Pioneer 2010 de +11 points)
• Parle mieux que les humains du Fouta • Créé en Guinée – 2025
""") # Connect everything msg.submit(respond, [msg, chatbot], [msg, chatbot]) send_btn.click(respond, [msg, chatbot], [msg, chatbot]) demo.launch()