Shreyas094 commited on
Commit
d370be6
·
verified ·
1 Parent(s): de5771f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -9
app.py CHANGED
@@ -241,10 +241,8 @@ def ask_question(question, temperature, top_p, repetition_penalty, web_search):
241
  web_docs = [Document(page_content=result["text"], metadata={"source": result["link"]}) for result in search_results if result["text"]]
242
 
243
  if database is None:
244
- # Create the database with web search results if it doesn't exist
245
  database = FAISS.from_documents(web_docs, embed)
246
  else:
247
- # Add web search results to the existing database
248
  database.add_documents(web_docs)
249
 
250
  database.save_local("faiss_database")
@@ -257,7 +255,7 @@ def ask_question(question, temperature, top_p, repetition_penalty, web_search):
257
  {context}
258
  Current Question: {question}
259
  If the web search results don't contain relevant information, state that the information is not available in the search results.
260
- Provide a concise and direct answer to the question without mentioning the web search or these instructions:
261
  """
262
  prompt_val = ChatPromptTemplate.from_template(prompt_template)
263
  formatted_prompt = prompt_val.format(context=context_str, question=question)
@@ -277,12 +275,20 @@ def ask_question(question, temperature, top_p, repetition_penalty, web_search):
277
  prompt_val = ChatPromptTemplate.from_template(prompt)
278
  formatted_prompt = prompt_val.format(history=history_str, context=context_str, question=question)
279
 
280
- answer = generate_chunked_response(model, formatted_prompt)
281
- answer = re.split(r'Question:|Current Question:', answer)[-1].strip()
282
-
283
- # Remove any remaining prompt instructions from the answer
284
- answer_lines = answer.split('\n')
285
- answer = '\n'.join(line for line in answer_lines if not line.startswith('If') and not line.startswith('Provide'))
 
 
 
 
 
 
 
 
286
 
287
  if not web_search:
288
  memory_database[question] = answer
 
241
  web_docs = [Document(page_content=result["text"], metadata={"source": result["link"]}) for result in search_results if result["text"]]
242
 
243
  if database is None:
 
244
  database = FAISS.from_documents(web_docs, embed)
245
  else:
 
246
  database.add_documents(web_docs)
247
 
248
  database.save_local("faiss_database")
 
255
  {context}
256
  Current Question: {question}
257
  If the web search results don't contain relevant information, state that the information is not available in the search results.
258
+ Provide a concise and direct answer to the question:
259
  """
260
  prompt_val = ChatPromptTemplate.from_template(prompt_template)
261
  formatted_prompt = prompt_val.format(context=context_str, question=question)
 
275
  prompt_val = ChatPromptTemplate.from_template(prompt)
276
  formatted_prompt = prompt_val.format(history=history_str, context=context_str, question=question)
277
 
278
+ full_response = generate_chunked_response(model, formatted_prompt)
279
+
280
+ # Filter out the prompt and extract only the answer
281
+ answer_pattern = r"(?:Answer:|Provide a concise and direct answer to the question:)([\s\S]*)"
282
+ match = re.search(answer_pattern, full_response, re.IGNORECASE)
283
+
284
+ if match:
285
+ answer = match.group(1).strip()
286
+ else:
287
+ # If no match is found, use the entire response but remove any instructions
288
+ answer = re.sub(r"(?i)If the .+?instructions:", "", full_response).strip()
289
+
290
+ # Remove any numbered list formatting
291
+ answer = re.sub(r'^\s*\d+\.\s*', '', answer, flags=re.MULTILINE)
292
 
293
  if not web_search:
294
  memory_database[question] = answer