badrbenabdellah
Add Gradio app V5
e1c9707
Raw
History Blame Contribute Delete
1.63 kB
import gradio as gr
from transformers import pipeline
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
# Chargement du modèle PEFT
base_model = "microsoft/Phi-4-mini-instruct"
adapter_repo = "badrben/QCM_5_6_Francais_VF"
tokenizer = AutoTokenizer.from_pretrained(base_model)
model = AutoModelForCausalLM.from_pretrained(base_model)
model = PeftModel.from_pretrained(model, adapter_repo)
# Pipeline de génération
generator = pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
device_map="auto" # utilise le GPU si disponible
)
# Fonction pour Gradio
def generate_qcm(user_text):
prompt = (
f"Texte: {user_text}\n\n"
"Génère une question QCM en français avec 4 choix (A, B, C, D) "
"et indique la bonne réponse. "
"Puis génère une réponse textuelle QHPE niveau 1 avec au moins trois raisons pour justifier la réponse."
)
result = generator(
prompt,
max_new_tokens=400, # augmente le nombre de tokens pour inclure tout
temperature=0.7,
top_p=0.9,
do_sample=True
)
return result[0]["generated_text"]
# Interface Gradio
iface = gr.Interface(
fn=generate_qcm,
inputs=gr.Textbox(lines=8, placeholder="Entrez votre texte ici..."),
outputs="text",
title="🧠 Générateur QCM Français",
description="Collez un texte pour générer un QCM avec 4 choix, la bonne réponse et une justification détaillée."
)
if __name__ == "__main__":
iface.launch(share=True) # share=True pour obtenir un lien public sur Hugging Face Space