ms1449 commited on
Commit
ac69024
·
verified ·
1 Parent(s): e5ba04c

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -0
app.py ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import pipeline, AutoTokenizer
3
+
4
+ # Define the model
5
+ model = "facebook/bart-large-cnn"
6
+
7
+ @st.cache_resource
8
+ def load_summarizer():
9
+ return pipeline("summarization", model=model)
10
+
11
+ def get_model_max_length(model_name):
12
+ try:
13
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
14
+ return tokenizer.model_max_length
15
+ except:
16
+ return 1024 # default value if unable to determine
17
+
18
+ def generate_summary(text):
19
+ summarizer = load_summarizer()
20
+ max_input_length = min(summarizer.tokenizer.model_max_length, 1024)
21
+ truncated_text = summarizer.tokenizer.decode(
22
+ summarizer.tokenizer.encode(text, truncation=True, max_length=max_input_length)
23
+ )
24
+ summary = summarizer(truncated_text, max_new_tokens=150, min_new_tokens=40, do_sample=False)[0]['summary_text']
25
+ return summary
26
+
27
+ st.title("Text Summarization Tool")
28
+
29
+ st.write("This tool uses the BART-large-CNN model to generate summaries of input text.")
30
+
31
+ input_text = st.text_area("Enter the text you want to summarize:", height=200)
32
+
33
+ if st.button("Generate Summary"):
34
+ if input_text:
35
+ with st.spinner("Generating summary..."):
36
+ summary = generate_summary(input_text)
37
+ st.subheader("Summary:")
38
+ st.write(summary)
39
+ else:
40
+ st.warning("Please enter some text to summarize.")
41
+
42
+ st.write("---")
43
+ st.write("Model: facebook/bart-large-cnn")
44
+ st.write(f"Max input length: {get_model_max_length(model)}")