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