DevBM commited on
Commit
0ba53c8
·
verified ·
1 Parent(s): a88e67a

Adding data caching and using session state for model caching

Browse files
Files changed (1) hide show
  1. app.py +19 -9
app.py CHANGED
@@ -20,15 +20,19 @@ nlp = spacy.load("en_core_web_sm")
20
  user_agent = 'QGen/1.0 (channingfisher7@gmail.com)'
21
  wiki_wiki = wikipediaapi.Wikipedia(user_agent= user_agent,language='en')
22
 
23
- model = None
24
- tokenizer = None
25
  def load_model():
26
- global model, tokenizer
27
- if model is None or tokenizer is None:
28
- # Load T5 model and tokenizer
29
- model_name = "DevBM/t5-large-squad"
30
- model = T5ForConditionalGeneration.from_pretrained(model_name)
31
- tokenizer = T5Tokenizer.from_pretrained(model_name)
 
 
 
 
 
 
32
 
33
  # Function to extract keywords using combined techniques
34
  def extract_keywords(text):
@@ -106,6 +110,9 @@ def export_to_pdf(data):
106
  # pdf.output("questions.pdf")
107
  return pdf.output(name='questions.pdf',dest='S').encode('latin1')
108
 
 
 
 
109
  # Streamlit interface
110
  st.title(":blue[Question Generator from Text]")
111
  text = st.text_area("Enter text here:", value="Joe Biden, the current US president is on a weak wicket going in for his reelection later this November against former President Donald Trump.")
@@ -137,9 +144,12 @@ if st.button("Generate Questions"):
137
  st.write(f"**Entity Link:** {linked_entity}")
138
  st.write("---")
139
  data.append((context, keyword, question))
 
 
 
140
 
141
  # Export buttons
142
- if data is not None:
143
  with st.sidebar:
144
  st.subheader('Download Content')
145
  csv_data = export_to_csv(data)
 
20
  user_agent = 'QGen/1.0 (channingfisher7@gmail.com)'
21
  wiki_wiki = wikipediaapi.Wikipedia(user_agent= user_agent,language='en')
22
 
 
 
23
  def load_model():
24
+ model_name = "DevBM/t5-large-squad"
25
+ model = T5ForConditionalGeneration.from_pretrained(model_name)
26
+ tokenizer = T5Tokenizer.from_pretrained(model_name)
27
+ return model, tokenizer
28
+
29
+ # Initialize session state for model and tokenizer
30
+ if 'model' not in st.session_state:
31
+ st.session_state.model, st.session_state.tokenizer = load_model()
32
+
33
+ # Use the model and tokenizer from session state
34
+ model = st.session_state.model
35
+ tokenizer = st.session_state.tokenizer
36
 
37
  # Function to extract keywords using combined techniques
38
  def extract_keywords(text):
 
110
  # pdf.output("questions.pdf")
111
  return pdf.output(name='questions.pdf',dest='S').encode('latin1')
112
 
113
+ if 'data' not in st.session_state:
114
+ st.session_state.data = None
115
+
116
  # Streamlit interface
117
  st.title(":blue[Question Generator from Text]")
118
  text = st.text_area("Enter text here:", value="Joe Biden, the current US president is on a weak wicket going in for his reelection later this November against former President Donald Trump.")
 
144
  st.write(f"**Entity Link:** {linked_entity}")
145
  st.write("---")
146
  data.append((context, keyword, question))
147
+
148
+ # Add the data to session state
149
+ st.session_state.data = data
150
 
151
  # Export buttons
152
+ if st.session_state.data is not None:
153
  with st.sidebar:
154
  st.subheader('Download Content')
155
  csv_data = export_to_csv(data)