Spaces:
Running
Running
import os | |
import gradio as gr | |
from transformers import BartTokenizer, BartForConditionalGeneration | |
from huggingface_hub import hf_hub_download | |
hf_token = os.getenv("HF_TOKEN") | |
# Load model and tokenizer from Hugging Face hub using the provided model name | |
model_name = "iimran/SAM-TheSummariserV2" | |
tokenizer = BartTokenizer.from_pretrained(model_name, use_auth_token=hf_token) | |
model = BartForConditionalGeneration.from_pretrained(model_name, use_auth_token=hf_token) | |
def summarize(input_text): | |
# Tokenize the input text with truncation | |
inputs = tokenizer(input_text, max_length=1024, truncation=True, return_tensors="pt") | |
# Generate the summary using beam search | |
summary_ids = model.generate( | |
inputs["input_ids"], | |
num_beams=4, # Use beam search with 4 beams for quality summaries | |
max_length=128, # Set maximum length for the generated summary | |
early_stopping=True # Enable early stopping if all beams finish | |
) | |
# Decode the generated summary tokens to a string | |
summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True) | |
return summary | |
# Create a Gradio interface | |
iface = gr.Interface( | |
fn=summarize, | |
inputs=gr.Textbox( | |
label="Enter Text to Summarize", | |
lines=10, | |
placeholder="Paste or type the text you want to summarize here..." | |
), | |
outputs=gr.Textbox( | |
label="Summary", | |
lines=5, | |
placeholder="Summary will appear here..." | |
), | |
title="SAM - The Summariser", | |
description="SAM is a model that summarizes large texts into concise summaries." | |
) | |
# Launch the Gradio interface | |
iface.launch() | |