# ๐Ÿ“ Text Summarization Demo | CPU-only HF Space from transformers import pipeline import gradio as gr # Load a distilled BART summarization model on CPU summarizer = pipeline( "summarization", model="sshleifer/distilbart-cnn-12-6", device=-1 # force CPU ) def summarize(text: str, max_length: int, min_length: int): if not text.strip(): return "" # run the summarization pipeline 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")