iimran's picture
Update app.py
735a1bb verified
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()