mirror of
https://gitee.com/wanwujie/deer-flow
synced 2026-04-15 03:04:44 +08:00
Feat: Add Wikipedia search engine (#478)
* feat: add Wikipedia search engine * wikipedia * make format
This commit is contained in:
@@ -13,6 +13,7 @@ class SearchEngine(enum.Enum):
|
||||
DUCKDUCKGO = "duckduckgo"
|
||||
BRAVE_SEARCH = "brave_search"
|
||||
ARXIV = "arxiv"
|
||||
WIKIPEDIA = "wikipedia"
|
||||
|
||||
|
||||
# Tool configuration
|
||||
|
||||
@@ -5,9 +5,17 @@ import logging
|
||||
import os
|
||||
from typing import List, Optional
|
||||
|
||||
from langchain_community.tools import BraveSearch, DuckDuckGoSearchResults
|
||||
from langchain_community.tools import (
|
||||
BraveSearch,
|
||||
DuckDuckGoSearchResults,
|
||||
WikipediaQueryRun,
|
||||
)
|
||||
from langchain_community.tools.arxiv import ArxivQueryRun
|
||||
from langchain_community.utilities import ArxivAPIWrapper, BraveSearchWrapper
|
||||
from langchain_community.utilities import (
|
||||
ArxivAPIWrapper,
|
||||
BraveSearchWrapper,
|
||||
WikipediaAPIWrapper,
|
||||
)
|
||||
|
||||
from src.config import SearchEngine, SELECTED_SEARCH_ENGINE
|
||||
from src.config import load_yaml_config
|
||||
@@ -24,6 +32,7 @@ LoggedTavilySearch = create_logged_tool(TavilySearchResultsWithImages)
|
||||
LoggedDuckDuckGoSearch = create_logged_tool(DuckDuckGoSearchResults)
|
||||
LoggedBraveSearch = create_logged_tool(BraveSearch)
|
||||
LoggedArxivSearch = create_logged_tool(ArxivQueryRun)
|
||||
LoggedWikipediaSearch = create_logged_tool(WikipediaQueryRun)
|
||||
|
||||
|
||||
def get_search_config():
|
||||
@@ -76,5 +85,19 @@ def get_web_search_tool(max_search_results: int):
|
||||
load_all_available_meta=True,
|
||||
),
|
||||
)
|
||||
elif SELECTED_SEARCH_ENGINE == SearchEngine.WIKIPEDIA.value:
|
||||
wiki_lang = search_config.get("wikipedia_lang", "en")
|
||||
wiki_doc_content_chars_max = search_config.get(
|
||||
"wikipedia_doc_content_chars_max", 4000
|
||||
)
|
||||
return LoggedWikipediaSearch(
|
||||
name="web_search",
|
||||
api_wrapper=WikipediaAPIWrapper(
|
||||
lang=wiki_lang,
|
||||
top_k_results=max_search_results,
|
||||
load_all_available_meta=True,
|
||||
doc_content_chars_max=wiki_doc_content_chars_max,
|
||||
),
|
||||
)
|
||||
else:
|
||||
raise ValueError(f"Unsupported search engine: {SELECTED_SEARCH_ENGINE}")
|
||||
|
||||
Reference in New Issue
Block a user