About WEB_SEARCH_CONCURRENT_REQUEST env var:
This variable is treated internally as requests_per_second and is used to calculate parallel requests, threads, or times in some methods/search engines.
The library works in parallel, adjusting concurrent requests based on max_results.
Here, it is assigned as its name suggests: number of concurrent/parallel searches (theads).
About name:
Clarification on the name, as there are some issues and ongoing discussions about this "confusion."
The library we're using, ddgs (duckduckgo_search v0.0.3), started as a simple call to a default DuckDuckGo URL, but over the years, categorized search functions, greater parameterization, and more search engines have been added. It's now a metasearch engine (ddgs v9.5.4).
In recent versions of Open-WebUI, it has been updated, but without using the new features or limiting the search options, and with the default options, which results in it generating searches in several search engines, not just DuckDuckGo.
This isn't a bad or negative thing; it's another option and a good alternative to use as the default metasearch engine, but it needs work to take advantage of the features and add valves/configuration panel.
But it would be advisable to change the name or configurate it for use only duckduckgo search to avoid confusion.
About Engines:
(Right now, Open-WebUI only use text(query, safesearch="moderate", max_results=count, backend="lite") function for searches)
DDGS function
Available backends
text()
bing, brave, duckduckgo, google, mojeek, mullvad_brave, mullvad_google, yandex, yahoo, wikipedia
By submitting this pull request, I confirm that I have read and fully agree to the Contributor License Agreement (CLA), and I am providing my contributions under its terms.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/open-webui/open-webui/pull/16694
**Author:** [@rgaricano](https://github.com/rgaricano)
**Created:** 8/18/2025
**Status:** ❌ Closed
**Base:** `dev` ← **Head:** `dev_ddgs_concurrent`
---
### 📝 Commits (1)
- [`1abe576`](https://github.com/open-webui/open-webui/commit/1abe576904aad6d3da5b7e98bac451ac0f9990d9) UPD: "duckduckgo" MetaSearch - set concurrent requests
### 📊 Changes
**1 file changed** (+2 additions, -0 deletions)
<details>
<summary>View changed files</summary>
📝 `backend/open_webui/retrieval/web/duckduckgo.py` (+2 -0)
</details>
### 📄 Description
## **UPDATE** for Distributed Global Search MetaSearch (DuckDuckGo)
- Fix https://github.com/open-webui/open-webui/issues/16630
- Forward the [WEB_SEARCH_CONCURRENT_REQUEST configuration variable](https://github.com/rgaricano/open-webui/blob/main/backend/open_webui/config.py#L2601) to the ddgs search requests function and assign this variable to the [ddgs.theads parameter](https://github.com/deedy5/ddgs/blob/main/ddgs/ddgs.py#L34).
### Aclarations
_About WEB_SEARCH_CONCURRENT_REQUEST env var:_
This variable is treated internally as requests_per_second and is used to calculate parallel requests, threads, or times in some methods/search engines.
The library works in parallel, adjusting concurrent requests based on `max_results`.
Here, it is assigned as its name suggests: number of concurrent/parallel searches (theads).
_About name:_
Clarification on the name, as there are some issues and ongoing discussions about this "confusion."
The library we're using, **ddgs** (duckduckgo_search v0.0.3), started as a simple call to a default DuckDuckGo URL, but over the years, categorized search functions, greater parameterization, and more search engines have been added. **It's now a metasearch engine** (ddgs v9.5.4).
In recent versions of Open-WebUI, it has been updated, but without using the new features or limiting the search options, and with the default options, which results in it generating searches in several search engines, not just DuckDuckGo.
This isn't a bad or negative thing; it's another option and a good alternative to use as the default metasearch engine, but it needs work to take advantage of the features and add valves/configuration panel.
But it would be advisable to change the name or configurate it for use only duckduckgo search to avoid confusion.
_About Engines:_
(Right now, Open-WebUI only use text(query, safesearch="moderate", max_results=count, backend="lite") function for searches)
| DDGS function | Available backends |
| --------------|:-------------------|
| **text()** | `bing`, `brave`, `duckduckgo`, `google`, `mojeek`, `mullvad_brave`, `mullvad_google`, `yandex`, `yahoo`, `wikipedia`|
| images() | `duckduckgo` |
| videos() | `duckduckgo` |
| news() | `duckduckgo`, `yahoo` |
| books() | `annasarchive` |
For Reference: [DDGS library](https://github.com/deedy5/ddgs)
---
### Contributor License Agreement
By submitting this pull request, I confirm that I have read and fully agree to the [Contributor License Agreement (CLA)](/CONTRIBUTOR_LICENSE_AGREEMENT), and I am providing my contributions under its terms.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/open-webui/open-webui/pull/16694
Author: @rgaricano
Created: 8/18/2025
Status: ❌ Closed
Base:
dev← Head:dev_ddgs_concurrent📝 Commits (1)
1abe576UPD: "duckduckgo" MetaSearch - set concurrent requests📊 Changes
1 file changed (+2 additions, -0 deletions)
View changed files
📝
backend/open_webui/retrieval/web/duckduckgo.py(+2 -0)📄 Description
UPDATE for Distributed Global Search MetaSearch (DuckDuckGo)
Fix https://github.com/open-webui/open-webui/issues/16630
Forward the WEB_SEARCH_CONCURRENT_REQUEST configuration variable to the ddgs search requests function and assign this variable to the ddgs.theads parameter.
Aclarations
About WEB_SEARCH_CONCURRENT_REQUEST env var:
This variable is treated internally as requests_per_second and is used to calculate parallel requests, threads, or times in some methods/search engines.
The library works in parallel, adjusting concurrent requests based on
max_results.Here, it is assigned as its name suggests: number of concurrent/parallel searches (theads).
About name:
Clarification on the name, as there are some issues and ongoing discussions about this "confusion."
The library we're using, ddgs (duckduckgo_search v0.0.3), started as a simple call to a default DuckDuckGo URL, but over the years, categorized search functions, greater parameterization, and more search engines have been added. It's now a metasearch engine (ddgs v9.5.4).
In recent versions of Open-WebUI, it has been updated, but without using the new features or limiting the search options, and with the default options, which results in it generating searches in several search engines, not just DuckDuckGo.
This isn't a bad or negative thing; it's another option and a good alternative to use as the default metasearch engine, but it needs work to take advantage of the features and add valves/configuration panel.
But it would be advisable to change the name or configurate it for use only duckduckgo search to avoid confusion.
About Engines:
(Right now, Open-WebUI only use text(query, safesearch="moderate", max_results=count, backend="lite") function for searches)
bing,brave,duckduckgo,google,mojeek,mullvad_brave,mullvad_google,yandex,yahoo,wikipediaduckduckgoduckduckgoduckduckgo,yahooannasarchiveFor Reference: DDGS library
Contributor License Agreement
By submitting this pull request, I confirm that I have read and fully agree to the Contributor License Agreement (CLA), and I am providing my contributions under its terms.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.