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