mirror of
https://gitee.com/wanwujie/deer-flow
synced 2026-04-03 06:12:14 +08:00
feat: add support for searx/searxng (#253)
* add searx/searxng support * nit * Fix indentation in search.py for readability * Clean up imports in search.py Removed unused imports from search.py --------- Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
This commit is contained in:
@@ -22,9 +22,10 @@ ENABLE_MCP_SERVER_CONFIGURATION=false
|
||||
# Otherwise, you system could be compromised.
|
||||
ENABLE_PYTHON_REPL=false
|
||||
|
||||
# Search Engine, Supported values: tavily (recommended), duckduckgo, brave_search, arxiv
|
||||
# Search Engine, Supported values: tavily (recommended), duckduckgo, brave_search, arxiv, searx
|
||||
SEARCH_API=tavily
|
||||
TAVILY_API_KEY=tvly-xxx
|
||||
# SEARX_HOST=xxx # Required only if SEARCH_API is searx.(compatible with both Searx and SearxNG)
|
||||
# BRAVE_SEARCH_API_KEY=xxx # Required only if SEARCH_API is brave_search
|
||||
# JINA_API_KEY=jina_xxx # Optional, default is None
|
||||
|
||||
|
||||
@@ -169,6 +169,10 @@ DeerFlow supports multiple search engines that can be configured in your `.env`
|
||||
- No API key required
|
||||
- Specialized for scientific and academic papers
|
||||
|
||||
- **Searx/SearxNG**: Self-hosted metasearch engine
|
||||
- Requires `SEARX_HOST` to be set in the `.env` file
|
||||
- Supports connecting to either Searx or SearxNG
|
||||
|
||||
To configure your preferred search engine, set the `SEARCH_API` variable in your `.env` file:
|
||||
|
||||
```bash
|
||||
|
||||
@@ -167,6 +167,10 @@ DeerFlow unterstützt mehrere Suchmaschinen, die in Ihrer `.env`-Datei über die
|
||||
- Kein API-Schlüssel erforderlich
|
||||
- Spezialisiert auf wissenschaftliche und akademische Papiere
|
||||
|
||||
- **Searx/SearxNG**: Selbstgehostete Metasuchmaschine
|
||||
- Erfordert `SEARX_HOST` in Ihrer `.env`-Datei
|
||||
- Unterstützt die Anbindung an Searx oder SearxNG
|
||||
|
||||
Um Ihre bevorzugte Suchmaschine zu konfigurieren, setzen Sie die Variable `SEARCH_API` in Ihrer `.env`-Datei:
|
||||
|
||||
```bash
|
||||
|
||||
@@ -168,6 +168,10 @@ DeerFlow soporta múltiples motores de búsqueda que pueden configurarse en tu a
|
||||
- No requiere clave API
|
||||
- Especializado en artículos científicos y académicos
|
||||
|
||||
- **Searx/SearxNG**: Motor de metabúsqueda autoalojado
|
||||
- Requiere `SEARX_HOST` en tu archivo `.env`
|
||||
- Compatible con Searx o SearxNG
|
||||
|
||||
Para configurar tu motor de búsqueda preferido, establece la variable `SEARCH_API` en tu archivo `.env`:
|
||||
|
||||
```bash
|
||||
|
||||
@@ -162,6 +162,10 @@ DeerFlow は複数の検索エンジンをサポートしており、`.env`フ
|
||||
- APIキー不要
|
||||
- 科学・学術論文専用
|
||||
|
||||
- **Searx/SearxNG**セルフホスト型メタ検索エンジン
|
||||
- `.env`ファイルに`SEARX_HOST`が必要
|
||||
- Searx または SearxNG に接続可能
|
||||
|
||||
お好みの検索エンジンを設定するには、`.env`ファイルで`SEARCH_API`変数を設定します:
|
||||
|
||||
```bash
|
||||
|
||||
@@ -171,6 +171,10 @@ DeerFlow suporta múltiplos mecanismos de busca que podem ser configurados no se
|
||||
- Não requer chave API
|
||||
- Especializado em artigos científicos e acadêmicos
|
||||
|
||||
- **Searx/SearxNG**: Mecanismo de metabusca auto-hospedado
|
||||
- Requer `SEARX_HOST` no seu arquivo `.env`
|
||||
- Suporta integração com Searx ou SearxNG
|
||||
|
||||
Para configurar o seu mecanismo preferido, defina a variável `SEARCH_API` no seu arquivo:
|
||||
|
||||
```bash
|
||||
|
||||
@@ -168,6 +168,10 @@ DeerFlow поддерживает несколько поисковых сист
|
||||
- Не требуется API-ключ
|
||||
- Специализируется на научных и академических статьях
|
||||
|
||||
- **Searx/SearxNG**: Самостоятельно размещённая метапоисковая система
|
||||
- Требуется `SEARX_HOST` в вашем файле `.env`
|
||||
- Поддерживает подключение к Searx или SearxNG
|
||||
|
||||
Чтобы настроить предпочитаемую поисковую систему, установите переменную `SEARCH_API` в вашем файле `.env`:
|
||||
|
||||
```bash
|
||||
|
||||
@@ -163,6 +163,10 @@ DeerFlow 支持多种搜索引擎,可以在`.env`文件中通过`SEARCH_API`
|
||||
- 无需 API 密钥
|
||||
- 专为科学和学术论文设计
|
||||
|
||||
- **Searx/SearxNG**:自托管的元搜索引擎
|
||||
- 需要在`.env`文件中设置`SEARX_HOST`
|
||||
- 支持对接Searx或SearxNG
|
||||
|
||||
要配置您首选的搜索引擎,请在`.env`文件中设置`SEARCH_API`变量:
|
||||
|
||||
```bash
|
||||
|
||||
@@ -14,6 +14,7 @@ class SearchEngine(enum.Enum):
|
||||
DUCKDUCKGO = "duckduckgo"
|
||||
BRAVE_SEARCH = "brave_search"
|
||||
ARXIV = "arxiv"
|
||||
SEARX = "searx"
|
||||
WIKIPEDIA = "wikipedia"
|
||||
|
||||
|
||||
|
||||
@@ -8,12 +8,14 @@ from typing import List, Optional
|
||||
from langchain_community.tools import (
|
||||
BraveSearch,
|
||||
DuckDuckGoSearchResults,
|
||||
SearxSearchRun,
|
||||
WikipediaQueryRun,
|
||||
)
|
||||
from langchain_community.tools.arxiv import ArxivQueryRun
|
||||
from langchain_community.utilities import (
|
||||
ArxivAPIWrapper,
|
||||
BraveSearchWrapper,
|
||||
SearxSearchWrapper,
|
||||
WikipediaAPIWrapper,
|
||||
)
|
||||
|
||||
@@ -30,6 +32,7 @@ LoggedTavilySearch = create_logged_tool(TavilySearchWithImages)
|
||||
LoggedDuckDuckGoSearch = create_logged_tool(DuckDuckGoSearchResults)
|
||||
LoggedBraveSearch = create_logged_tool(BraveSearch)
|
||||
LoggedArxivSearch = create_logged_tool(ArxivQueryRun)
|
||||
LoggedSearxSearch = create_logged_tool(SearxSearchRun)
|
||||
LoggedWikipediaSearch = create_logged_tool(WikipediaQueryRun)
|
||||
|
||||
|
||||
@@ -88,6 +91,13 @@ def get_web_search_tool(max_search_results: int):
|
||||
load_all_available_meta=True,
|
||||
),
|
||||
)
|
||||
elif SELECTED_SEARCH_ENGINE == SearchEngine.SEARX.value:
|
||||
return LoggedSearxSearch(
|
||||
name="web_search",
|
||||
wrapper=SearxSearchWrapper(
|
||||
k=max_search_results,
|
||||
)
|
||||
)
|
||||
elif SELECTED_SEARCH_ENGINE == SearchEngine.WIKIPEDIA.value:
|
||||
wiki_lang = search_config.get("wikipedia_lang", "en")
|
||||
wiki_doc_content_chars_max = search_config.get(
|
||||
|
||||
Reference in New Issue
Block a user