Shreyas094 commited on
Commit
838a4d7
·
verified ·
1 Parent(s): 2f2f9c0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -20
app.py CHANGED
@@ -278,7 +278,19 @@ def generate_chunked_response(prompt, model, max_tokens=10000, num_calls=3, temp
278
  def get_web_search_database():
279
  embed = get_embeddings()
280
  temp_dir = tempfile.mkdtemp()
281
- database = WebSearchFAISS.from_documents([], embed)
 
 
 
 
 
 
 
 
 
 
 
 
282
  return database, temp_dir
283
 
284
  def cleanup_web_search_database(temp_dir):
@@ -286,21 +298,26 @@ def cleanup_web_search_database(temp_dir):
286
 
287
  def duckduckgo_search(query):
288
  logging.info(f"Performing DuckDuckGo search for query: {query}")
289
- with DDGS() as ddgs:
290
- results = list(ddgs.text(query, max_results=5))
291
-
292
- logging.info(f"Number of search results: {len(results)}")
293
-
294
- database, temp_dir = get_web_search_database()
295
- documents = []
296
- for result in results:
297
- content = f"{result['title']}\n{result['body']}"
298
- doc = WebSearchDocument(page_content=content, metadata={"source": result['href']})
299
- documents.append(doc)
300
-
301
- logging.info(f"Number of documents created: {len(documents)}")
302
- database.add_documents(documents)
303
- return database, temp_dir, results
 
 
 
 
 
304
 
305
  def retrieve_web_search_results(database, query):
306
  logging.info(f"Retrieving web search results for query: {query}")
@@ -356,10 +373,8 @@ def respond(message: str, history: List[Tuple[str, str]], model: str, temperatur
356
  try:
357
  if use_web_search:
358
  database, temp_dir, search_results = duckduckgo_search(message)
359
- logging.info(f"Number of search results: {len(search_results)}")
360
-
361
- if not search_results:
362
- yield "I'm sorry, but I couldn't find any search results for your query. Could you please rephrase or ask a different question?"
363
  return
364
 
365
  context = retrieve_web_search_results(database, message)
 
278
  def get_web_search_database():
279
  embed = get_embeddings()
280
  temp_dir = tempfile.mkdtemp()
281
+
282
+ # Create a dummy document to initialize the database
283
+ dummy_doc = WebSearchDocument(page_content="Dummy content", metadata={"source": "dummy"})
284
+
285
+ try:
286
+ database = WebSearchFAISS.from_documents([dummy_doc], embed)
287
+ # Remove the dummy document after initialization
288
+ database.delete([dummy_doc.metadata["source"]])
289
+ except Exception as e:
290
+ logging.error(f"Error initializing WebSearchFAISS: {str(e)}", exc_info=True)
291
+ # If initialization fails, create an empty database
292
+ database = WebSearchFAISS(embed.embed_query, None, {}, {}, None)
293
+
294
  return database, temp_dir
295
 
296
  def cleanup_web_search_database(temp_dir):
 
298
 
299
  def duckduckgo_search(query):
300
  logging.info(f"Performing DuckDuckGo search for query: {query}")
301
+ try:
302
+ with DDGS() as ddgs:
303
+ results = list(ddgs.text(query, max_results=5))
304
+
305
+ logging.info(f"Number of search results: {len(results)}")
306
+
307
+ database, temp_dir = get_web_search_database()
308
+ documents = []
309
+ for result in results:
310
+ content = f"{result['title']}\n{result['body']}"
311
+ doc = WebSearchDocument(page_content=content, metadata={"source": result['href']})
312
+ documents.append(doc)
313
+
314
+ logging.info(f"Number of documents created: {len(documents)}")
315
+ if documents:
316
+ database.add_documents(documents)
317
+ return database, temp_dir, results
318
+ except Exception as e:
319
+ logging.error(f"Error in duckduckgo_search: {str(e)}", exc_info=True)
320
+ return None, None, []
321
 
322
  def retrieve_web_search_results(database, query):
323
  logging.info(f"Retrieving web search results for query: {query}")
 
373
  try:
374
  if use_web_search:
375
  database, temp_dir, search_results = duckduckgo_search(message)
376
+ if database is None:
377
+ yield "I'm sorry, but I encountered an error while searching. Please try again later."
 
 
378
  return
379
 
380
  context = retrieve_web_search_results(database, message)