mirror of
https://gitee.com/wanwujie/deer-flow
synced 2026-04-12 18:14:46 +08:00
feat: add Serper search engine support (#762)
* feat: add Serper search engine support * docs: update configuration guide and env example for Serper * test: add test case for Serper with missing API key
This commit is contained in:
@@ -17,6 +17,7 @@ class SearchEngine(enum.Enum):
|
||||
ARXIV = "arxiv"
|
||||
SEARX = "searx"
|
||||
WIKIPEDIA = "wikipedia"
|
||||
SERPER = "serper"
|
||||
|
||||
|
||||
class CrawlerEngine(enum.Enum):
|
||||
|
||||
@@ -8,6 +8,7 @@ from typing import List, Optional
|
||||
from langchain_community.tools import (
|
||||
BraveSearch,
|
||||
DuckDuckGoSearchResults,
|
||||
GoogleSerperRun,
|
||||
SearxSearchRun,
|
||||
WikipediaQueryRun,
|
||||
)
|
||||
@@ -15,6 +16,7 @@ from langchain_community.tools.arxiv import ArxivQueryRun
|
||||
from langchain_community.utilities import (
|
||||
ArxivAPIWrapper,
|
||||
BraveSearchWrapper,
|
||||
GoogleSerperAPIWrapper,
|
||||
SearxSearchWrapper,
|
||||
WikipediaAPIWrapper,
|
||||
)
|
||||
@@ -33,6 +35,7 @@ LoggedTavilySearch = create_logged_tool(TavilySearchWithImages)
|
||||
LoggedInfoQuestSearch = create_logged_tool(InfoQuestSearchResults)
|
||||
LoggedDuckDuckGoSearch = create_logged_tool(DuckDuckGoSearchResults)
|
||||
LoggedBraveSearch = create_logged_tool(BraveSearch)
|
||||
LoggedSerperSearch = create_logged_tool(GoogleSerperRun)
|
||||
LoggedArxivSearch = create_logged_tool(ArxivQueryRun)
|
||||
LoggedSearxSearch = create_logged_tool(SearxSearchRun)
|
||||
LoggedWikipediaSearch = create_logged_tool(WikipediaQueryRun)
|
||||
@@ -102,6 +105,14 @@ def get_web_search_tool(max_search_results: int):
|
||||
search_kwargs={"count": max_search_results},
|
||||
),
|
||||
)
|
||||
elif SELECTED_SEARCH_ENGINE == SearchEngine.SERPER.value:
|
||||
return LoggedSerperSearch(
|
||||
name="web_search",
|
||||
api_wrapper=GoogleSerperAPIWrapper(
|
||||
k=max_search_results,
|
||||
serper_api_key=os.getenv("SERPER_API_KEY", ""),
|
||||
),
|
||||
)
|
||||
elif SELECTED_SEARCH_ENGINE == SearchEngine.ARXIV.value:
|
||||
return LoggedArxivSearch(
|
||||
name="web_search",
|
||||
|
||||
Reference in New Issue
Block a user