Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from transformers import pipeline, AutoTokenizer | |
| # Define the model | |
| model = "facebook/bart-large-cnn" | |
| def load_summarizer(): | |
| return pipeline("summarization", model=model) | |
| def get_model_max_length(model_name): | |
| try: | |
| tokenizer = AutoTokenizer.from_pretrained(model_name) | |
| return tokenizer.model_max_length | |
| except: | |
| return 1024 # default value if unable to determine | |
| def generate_summary(text): | |
| summarizer = load_summarizer() | |
| max_input_length = min(summarizer.tokenizer.model_max_length, 1024) | |
| truncated_text = summarizer.tokenizer.decode( | |
| summarizer.tokenizer.encode(text, truncation=True, max_length=max_input_length) | |
| ) | |
| summary = summarizer(truncated_text, max_new_tokens=150, min_new_tokens=40, do_sample=False)[0]['summary_text'] | |
| return summary | |
| st.title("Text Summarization Tool") | |
| st.write("Using the BART-large-CNN model.") | |
| input_text = st.text_area("Enter the text:", height=200) | |
| if st.button("Generate Summary"): | |
| if input_text: | |
| with st.spinner("Generating summary..."): | |
| summary = generate_summary(input_text) | |
| st.subheader("Summary:") | |
| st.write(summary) | |
| else: | |
| st.warning("Please enter some text to summarize.") | |
| st.write("---") | |
| st.write("Model: facebook/bart-large-cnn") | |
| st.write(f"Max input length: {get_model_max_length(model)}") |