textSummarizer1 / app.py
safaeaif's picture
Update app.py
b384259 verified
import torch
import gradio as gr
from transformers import pipeline
import time
# Charger le modèle
summarizer = pipeline("summarization", model="Falconsai/text_summarization")
def generate_summary_stream(article):
# Générer le résumé complet
result = summarizer(
article,
min_length=30,
do_sample=False
)
full_text = result[0]['summary_text']
# Streamer mot par mot
words = full_text.split()
for i in range(len(words)):
# Retourner les mots accumulés jusqu'à présent
yield " ".join(words[:i + 1])
time.sleep(0.1) # Délai entre les mots
# Interface avec streaming
with gr.Blocks() as demo:
gr.Markdown("# 📚 Streaming Text Summarization ")
with gr.Row():
input_box = gr.Textbox(
label="Text",
placeholder="Paste your article here...",
lines=10
)
with gr.Row():
output_box = gr.Textbox(
label="Summary (appears progressively)",
lines=6,
interactive=False
)
generate_btn = gr.Button("Summarize", variant="primary")
# Lier le bouton à la fonction
generate_btn.click(
fn=generate_summary_stream,
inputs=input_box,
outputs=output_box
)
demo.launch()