diff --git a/backend/open_webui/retrieval/web/duckduckgo.py b/backend/open_webui/retrieval/web/duckduckgo.py index 27d56f6934..2d57b071cd 100644 --- a/backend/open_webui/retrieval/web/duckduckgo.py +++ b/backend/open_webui/retrieval/web/duckduckgo.py @@ -4,7 +4,6 @@ import logging import urllib.request from ddgs import DDGS -from ddgs.exceptions import RatelimitException from open_webui.retrieval.web.main import SearchResult, get_filtered_results log = logging.getLogger(__name__) @@ -31,21 +30,11 @@ def search_duckduckgo( # Resolve via stdlib getproxies() — same pattern as the other loaders. env_proxies = urllib.request.getproxies() proxy = env_proxies.get('https') or env_proxies.get('http') - search_results = [] with DDGS(proxy=proxy) as ddgs: if concurrent_requests: ddgs.threads = concurrent_requests - # Use the ddgs.text() method to perform the search - try: - kwargs = {'safesearch': 'moderate', 'max_results': count} - if backend and backend != 'auto': - kwargs['backend'] = backend - results = ddgs.text(query, **kwargs) - search_results = results if results is not None else [] - except RatelimitException as e: - log.error(f'RatelimitException: {e}') - search_results = [] + search_results = ddgs.text(query, safesearch='moderate', max_results=count, backend=backend or 'auto') if filter_list: search_results = get_filtered_results(search_results, filter_list)