|
|
|
|
|
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") |
|
|