feat(search): harvest custom duckduckgo endpoint
Add optional [search].base_url support for DuckDuckGo-compatible private search endpoints, including a preferred CODEWHALE_SEARCH_BASE_URL env override and the legacy DEEPSEEK_SEARCH_BASE_URL alias. Network policy now gates the configured endpoint host, custom endpoints do not fall back to public Bing, non-DuckDuckGo provider/base_url combinations and challenge pages return explicit errors, and custom endpoint results report the configured host as their source. Fixes #2436 Reported by @Artenx Harvested from PR #2510 by @cyq1017 Co-authored-by: cyq1017 <61975706+cyq1017@users.noreply.github.com>
This commit is contained in:
@@ -1081,6 +1081,13 @@ parseable results. Bing remains selectable for users who explicitly want it,
|
||||
and Tavily, Bocha, Metaso, or Baidu can be selected when an API-backed provider
|
||||
is preferred.
|
||||
|
||||
For a private/internal search service that serves DuckDuckGo-compatible HTML,
|
||||
keep `provider = "duckduckgo"` and set `base_url`; CodeWhale appends the `q`
|
||||
query parameter to that endpoint and applies network policy to its host.
|
||||
Custom endpoints do not fall back to public Bing. `CODEWHALE_SEARCH_BASE_URL`
|
||||
can override this per process; `DEEPSEEK_SEARCH_BASE_URL` remains accepted as
|
||||
the legacy alias.
|
||||
|
||||
**Metaso** ([metaso.cn](https://metaso.cn)) has a 100 searches/day free quota;
|
||||
set `METASO_API_KEY` or `[search] api_key` for a higher quota.
|
||||
|
||||
@@ -1092,6 +1099,7 @@ only; it does not add a Baidu model provider.
|
||||
```toml
|
||||
[search]
|
||||
provider = "baidu" # duckduckgo | bing | tavily | bocha | metaso | baidu
|
||||
# base_url = "https://search.example/html/" # optional with provider = "duckduckgo"
|
||||
# api_key = "YOUR_KEY" # required for tavily, bocha, and baidu; optional for metaso
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user