Buberintwari's picture
Update app.py
ea5a4bd verified
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# Chargement du modèle GPT-2 français
#model_name = "dbddv01/gpt2-french-small"
model_name = "asi/gpt-fr-cased-small"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = model.to(device)
# Fonction de génération
def generate_text(prompt, max_length):
inputs = tokenizer(prompt, return_tensors="pt").to(device)
outputs = model.generate(
**inputs,
max_length=max_length,
do_sample=True,
top_k=40,
top_p=0.92,
temperature=0.8,
repetition_penalty=1.2,
no_repeat_ngram_size=3,
pad_token_id=tokenizer.eos_token_id
)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
# Interface Gradio
description = """
## ✍️ Conseils pour un bon prompt
Pour de meilleurs résultats, utilisez des phrases complètes ou des instructions claires.
**Exemples :**
- "Raconte une petite histoire sur un oiseau qui apprend à voler."
- "Complète ce texte : L'oiseau bleu survolait les montagnes..."
"""
demo = gr.Interface(
fn=generate_text,
inputs=[
gr.Textbox(lines=3, placeholder="Ex : Raconte une histoire sur un oiseau...", label="Prompt"),
gr.Slider(50, 300, value=150, step=10, label="Longueur maximale du texte")
],
outputs=gr.Textbox(label="Texte généré"),
title="📝 Générateur de texte GPT-2 (français)",
description=description
)
if __name__ == "__main__":
demo.launch()