Shreyas094 commited on
Commit
ea51797
·
verified ·
1 Parent(s): 27b795a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -9
app.py CHANGED
@@ -100,15 +100,25 @@ def get_model(temperature, top_p, repetition_penalty):
100
  huggingfacehub_api_token=huggingface_token
101
  )
102
 
103
- def generate_chunked_response(model, prompt, max_tokens=1000, max_chunks=5):
104
  full_response = ""
105
- for i in range(max_chunks):
106
- chunk = model(prompt + full_response, max_new_tokens=max_tokens)
107
- chunk = chunk.strip()
108
- if chunk.endswith((".", "!", "?")):
 
 
 
 
109
  full_response += chunk
 
 
 
 
 
 
110
  break
111
- full_response += chunk
112
  return full_response.strip()
113
 
114
  def manage_conversation_history(question, answer, history, max_history=5):
@@ -223,8 +233,14 @@ def google_search(term, num_results=20, lang="en", timeout=5, safe="active", ssl
223
  return all_results
224
 
225
  def summarize_content(content, model):
 
 
 
 
 
 
226
  summary_prompt = f"""
227
- Summarize the following content in a concise manner:
228
  {content}
229
  Summary:
230
  """
@@ -262,12 +278,28 @@ def ask_question(question, temperature, top_p, repetition_penalty, web_search):
262
  database = FAISS.load_local("faiss_database", embed, allow_dangerous_deserialization=True)
263
  else:
264
  database = None
265
-
266
  if web_search:
267
  search_results = google_search(question)
268
  model = get_model(temperature, top_p, repetition_penalty)
269
 
270
- summaries = [summarize_content(result["text"], model) for result in search_results]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
271
  titles = [result["title"] for result in search_results]
272
  ranks = rank_search_results(titles, summaries, model)
273
 
 
100
  huggingfacehub_api_token=huggingface_token
101
  )
102
 
103
+ def generate_chunked_response(model, prompt, max_tokens=200):
104
  full_response = ""
105
+ total_length = len(prompt.split()) # Approximate token count of prompt
106
+
107
+ while total_length < 7800: # Leave some margin
108
+ try:
109
+ chunk = model(prompt + full_response, max_new_tokens=min(200, 7800 - total_length))
110
+ chunk = chunk.strip()
111
+ if not chunk:
112
+ break
113
  full_response += chunk
114
+ total_length += len(chunk.split()) # Approximate token count
115
+
116
+ if chunk.endswith((".", "!", "?")):
117
+ break
118
+ except Exception as e:
119
+ print(f"Error generating response: {str(e)}")
120
  break
121
+
122
  return full_response.strip()
123
 
124
  def manage_conversation_history(question, answer, history, max_history=5):
 
233
  return all_results
234
 
235
  def summarize_content(content, model):
236
+ # Approximate the token limit using character count
237
+ # Assuming an average of 4 characters per token
238
+ max_chars = 7000 * 4 # Leave some room for the prompt
239
+ if len(content) > max_chars:
240
+ content = content[:max_chars] + "..."
241
+
242
  summary_prompt = f"""
243
+ Summarize the following content concisely:
244
  {content}
245
  Summary:
246
  """
 
278
  database = FAISS.load_local("faiss_database", embed, allow_dangerous_deserialization=True)
279
  else:
280
  database = None
281
+
282
  if web_search:
283
  search_results = google_search(question)
284
  model = get_model(temperature, top_p, repetition_penalty)
285
 
286
+ summaries = []
287
+ for result in search_results:
288
+ try:
289
+ summary = summarize_content(result["text"], model)
290
+ summaries.append(summary)
291
+ except Exception as e:
292
+ print(f"Error summarizing content: {str(e)}")
293
+ summaries.append("Error: Unable to summarize this content.")
294
+
295
+ # Combine summaries, ensuring we don't exceed the token limit
296
+ combined_summaries = ""
297
+ for summary in summaries:
298
+ if len((combined_summaries + summary).split()) > 7000:
299
+ break
300
+ combined_summaries += summary + "\n\n"
301
+
302
+ context_str = combined_summaries
303
  titles = [result["title"] for result in search_results]
304
  ranks = rank_search_results(titles, summaries, model)
305