Browse Source

Merge pull request #12604 from maurerle/ddg_improve_stacktrace

 **fix** improve stack trace of duckduckgo exception
Tim Jaeryang Baek 3 months ago
parent
commit
2575dac4ed
3 changed files with 10 additions and 10 deletions
  1. 8 8
      backend/open_webui/retrieval/web/duckduckgo.py
  2. 1 1
      backend/requirements.txt
  3. 1 1
      pyproject.toml

+ 8 - 8
backend/open_webui/retrieval/web/duckduckgo.py

@@ -3,6 +3,7 @@ from typing import Optional
 
 from open_webui.retrieval.web.main import SearchResult, get_filtered_results
 from duckduckgo_search import DDGS
+from duckduckgo_search.exceptions import RatelimitException
 from open_webui.env import SRC_LOG_LEVELS
 
 log = logging.getLogger(__name__)
@@ -22,16 +23,15 @@ def search_duckduckgo(
         list[SearchResult]: A list of search results
     """
     # Use the DDGS context manager to create a DDGS object
+    search_results = []
     with DDGS() as ddgs:
         # Use the ddgs.text() method to perform the search
-        ddgs_gen = ddgs.text(
-            query, safesearch="moderate", max_results=count, backend="api"
-        )
-        # Check if there are search results
-        if ddgs_gen:
-            # Convert the search results into a list
-            search_results = [r for r in ddgs_gen]
-
+        try:
+            search_results = ddgs.text(
+                query, safesearch="moderate", max_results=count, backend="lite"
+            )
+        except RatelimitException as e:
+            log.error(f"RatelimitException: {e}")
     if filter_list:
         search_results = get_filtered_results(search_results, filter_list)
 

+ 1 - 1
backend/requirements.txt

@@ -98,7 +98,7 @@ pytube==15.0.0
 
 extract_msg
 pydub
-duckduckgo-search~=7.3.2
+duckduckgo-search~=7.5.5
 
 ## Google Drive
 google-api-python-client

+ 1 - 1
pyproject.toml

@@ -104,7 +104,7 @@ dependencies = [
 
     "extract_msg",
     "pydub",
-    "duckduckgo-search~=7.3.2",
+    "duckduckgo-search~=7.5.5",
 
     "google-api-python-client",
     "google-auth-httplib2",