| import gradio as gr | |
| from transformers import pipeline | |
| summarizer = pipeline("summarization", model="facebook/bart-large-cnn") | |
| def summarize_text(text, min_len, max_len): | |
| word_count = len(text.split()) | |
| if word_count < min_len: | |
| return f"Error: The text should have at least {min_len} words." | |
| elif word_count > max_len: | |
| return f"Error: The text should have no more than {max_len} words." | |
| summary = summarizer(text, min_length=min_len, max_length=max_len) | |
| return summary[0]['summary_text'] | |
| interface = gr.Interface( | |
| fn=summarize_text, | |
| inputs=[ | |
| gr.Textbox(label="Enter Text", lines=10, placeholder="Paste your long text here..."), | |
| gr.Slider(label="Min Length", minimum=10, maximum=50, step=1, value=10), | |
| gr.Slider(label="Max Length", minimum=50, maximum=150, step=1, value=100) | |
| ], | |
| outputs=gr.Textbox(label="Summarized Text"), | |
| title="Text Summarizer with Sliders", | |
| description="This app uses the BART model to summarize your text. The input text must be between the min and max length you set using the sliders." | |
| ) | |
| interface.launch() | |