| |
|
|
| from transformers import pipeline |
| import gradio as gr |
|
|
| |
| summarizer = pipeline( |
| "summarization", |
| model="sshleifer/distilbart-cnn-12-6", |
| device=-1 |
| ) |
|
|
| def summarize(text: str, max_length: int, min_length: int): |
| if not text.strip(): |
| return "" |
| |
| summary = summarizer( |
| text, |
| max_length=max_length, |
| min_length=min_length, |
| do_sample=False |
| )[0]["summary_text"] |
| return summary |
|
|
| with gr.Blocks(title="📝 Text Summarization") as demo: |
| gr.Markdown( |
| "# 📝 Text Summarizer\n" |
| "Paste in any article, report, or long-form text and get a concise summary—**100% CPU**." |
| ) |
|
|
| with gr.Row(): |
| text_in = gr.Textbox(lines=10, placeholder="Enter your text here…", label="Input Text") |
| max_slider = gr.Slider(20, 200, value=100, step=10, label="Max Summary Length") |
| min_slider = gr.Slider(10, 100, value=30, step=5, label="Min Summary Length") |
|
|
| run_btn = gr.Button("Summarize 🔍", variant="primary") |
| summary_out = gr.Textbox(lines=5, label="Summary", interactive=False) |
|
|
| run_btn.click( |
| summarize, |
| inputs=[text_in, max_slider, min_slider], |
| outputs=summary_out |
| ) |
|
|
| if __name__ == "__main__": |
| demo.launch(server_name="0.0.0.0") |
|
|