|
import gradio as gr |
|
import logging |
|
import sys |
|
from transformers import pipeline |
|
|
|
|
|
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') |
|
logger = logging.getLogger(__name__) |
|
|
|
|
|
logger.info("Loading bart-large-cnn model...") |
|
summarizer = pipeline("summarization", model="facebook/bart-large-cnn") |
|
logger.info("Model loaded successfully!") |
|
|
|
def summarize_text(text, max_length=150, min_length=30): |
|
if not text or len(text.strip()) < 50: |
|
return text |
|
|
|
logger.info(f"Summarizing text of length {len(text)}") |
|
result = summarizer( |
|
text, |
|
max_length=max_length, |
|
min_length=min_length, |
|
truncation=True |
|
) |
|
summary = result[0]["summary_text"] |
|
return summary |
|
|
|
|
|
demo = gr.Interface( |
|
fn=summarize_text, |
|
inputs=[ |
|
gr.Textbox(lines=10, label="Text to Summarize"), |
|
gr.Slider(50, 500, value=150, label="Max Length"), |
|
gr.Slider(10, 200, value=30, label="Min Length") |
|
], |
|
outputs=gr.Textbox(label="Summary"), |
|
title="StudAI ", |
|
description="Powered by facebook/bart-large-cnn model" |
|
) |
|
|
|
demo.launch(share=True, server_name="Leo", server_port=8000) |