|
import gradio as gr |
|
from transformers import pipeline |
|
|
|
def summarize_text(text, min_length, max_length): |
|
summarizer = pipeline("summarization", model="facebook/bart-large-cnn") |
|
summary = summarizer( |
|
text, |
|
min_length=min_length, |
|
max_length=max_length, |
|
do_sample=False |
|
) |
|
return summary[0]['summary_text'] |
|
|
|
with gr.Blocks() as demo: |
|
gr.Markdown("## Adjustable Text Summarization") |
|
with gr.Row(): |
|
input_text = gr.Textbox( |
|
label="Enter your text here", |
|
placeholder="Paste your text here...", |
|
lines=5 |
|
) |
|
with gr.Row(): |
|
min_length = gr.Slider( |
|
label="Minimum Length (Tokens)", |
|
minimum=10, |
|
maximum=50, |
|
value=10 |
|
) |
|
max_length = gr.Slider( |
|
label="Maximum Length (Tokens)", |
|
minimum=50, |
|
maximum=150, |
|
value=100 |
|
) |
|
with gr.Row(): |
|
summarize_button = gr.Button("Generate Summary", variant="primary") |
|
with gr.Row(): |
|
output_text = gr.Textbox( |
|
label="Generated Summary", |
|
lines=4 |
|
) |
|
|
|
summarize_button.click( |
|
fn=summarize_text, |
|
inputs=[input_text, min_length, max_length], |
|
outputs=output_text |
|
) |
|
|
|
if __name__ == "__main__": |
|
demo.launch() |