diff --git a/app/llm.py b/app/llm.py index 82ebe8857..80d60a39d 100644 --- a/app/llm.py +++ b/app/llm.py @@ -355,7 +355,7 @@ def format_messages( wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(6), retry=retry_if_exception_type( - (OpenAIError, Exception, ValueError) + (OpenAIError, ValueError) ), # Don't retry TokenLimitExceeded ) async def ask( @@ -482,7 +482,7 @@ async def ask( wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(6), retry=retry_if_exception_type( - (OpenAIError, Exception, ValueError) + (OpenAIError, ValueError) ), # Don't retry TokenLimitExceeded ) async def ask_with_images( @@ -638,7 +638,7 @@ async def ask_with_images( wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(6), retry=retry_if_exception_type( - (OpenAIError, Exception, ValueError) + (OpenAIError, ValueError) ), # Don't retry TokenLimitExceeded ) async def ask_tool( diff --git a/app/tool/web_search.py b/app/tool/web_search.py index b9b9e31ae..85ca3d70e 100644 --- a/app/tool/web_search.py +++ b/app/tool/web_search.py @@ -297,11 +297,19 @@ async def _try_all_engines( for engine_name in engine_order: engine = self._search_engine[engine_name] logger.info(f"🔎 Attempting search with {engine_name.capitalize()}...") - search_items = await self._perform_search_with_engine( - engine, query, num_results, search_params - ) + try: + search_items = await self._perform_search_with_engine( + engine, query, num_results, search_params + ) + except Exception as e: + logger.warning( + f"Search engine {engine_name.capitalize()} raised an exception: {e}" + ) + failed_engines.append(engine_name) + continue if not search_items: + failed_engines.append(engine_name) continue if failed_engines: