|
|
|
@ -1,7 +1,8 @@
|
|
|
|
|
# flake8: noqa
|
|
|
|
|
"""Load tools."""
|
|
|
|
|
import warnings
|
|
|
|
|
from typing import Any, List, Optional
|
|
|
|
|
from typing import Any, Dict, List, Optional, Callable, Tuple
|
|
|
|
|
from mypy_extensions import KwArg
|
|
|
|
|
|
|
|
|
|
from langchain.agents.tools import Tool
|
|
|
|
|
from langchain.callbacks.base import BaseCallbackManager
|
|
|
|
@ -14,6 +15,7 @@ from langchain.requests import TextRequestsWrapper
|
|
|
|
|
from langchain.tools.arxiv.tool import ArxivQueryRun
|
|
|
|
|
from langchain.tools.base import BaseTool
|
|
|
|
|
from langchain.tools.bing_search.tool import BingSearchRun
|
|
|
|
|
from langchain.tools.ddg_search.tool import DuckDuckGoSearchTool
|
|
|
|
|
from langchain.tools.google_search.tool import GoogleSearchResults, GoogleSearchRun
|
|
|
|
|
from langchain.tools.human.tool import HumanInputRun
|
|
|
|
|
from langchain.tools.python.tool import PythonREPLTool
|
|
|
|
@ -31,6 +33,7 @@ from langchain.utilities import ArxivAPIWrapper
|
|
|
|
|
from langchain.utilities.apify import ApifyWrapper
|
|
|
|
|
from langchain.utilities.bash import BashProcess
|
|
|
|
|
from langchain.utilities.bing_search import BingSearchAPIWrapper
|
|
|
|
|
from langchain.utilities.duckduckgo_search import DuckDuckGoSearchAPIWrapper
|
|
|
|
|
from langchain.utilities.google_search import GoogleSearchAPIWrapper
|
|
|
|
|
from langchain.utilities.google_serper import GoogleSerperAPIWrapper
|
|
|
|
|
from langchain.utilities.searx_search import SearxSearchWrapper
|
|
|
|
@ -215,6 +218,10 @@ def _get_bing_search(**kwargs: Any) -> BaseTool:
|
|
|
|
|
return BingSearchRun(api_wrapper=BingSearchAPIWrapper(**kwargs))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _get_ddg_search(**kwargs: Any) -> BaseTool:
|
|
|
|
|
return DuckDuckGoSearchTool(api_wrapper=DuckDuckGoSearchAPIWrapper(**kwargs))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _get_human_tool(**kwargs: Any) -> BaseTool:
|
|
|
|
|
return HumanInputRun(**kwargs)
|
|
|
|
|
|
|
|
|
@ -225,7 +232,7 @@ _EXTRA_LLM_TOOLS = {
|
|
|
|
|
"podcast-api": (_get_podcast_api, ["listen_api_key"]),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_EXTRA_OPTIONAL_TOOLS = {
|
|
|
|
|
_EXTRA_OPTIONAL_TOOLS: Dict[str, Tuple[Callable[[KwArg(Any)], BaseTool], List[str]]] = {
|
|
|
|
|
"wolfram-alpha": (_get_wolfram_alpha, ["wolfram_alpha_appid"]),
|
|
|
|
|
"google-search": (_get_google_search, ["google_api_key", "google_cse_id"]),
|
|
|
|
|
"google-search-results-json": (
|
|
|
|
@ -237,6 +244,7 @@ _EXTRA_OPTIONAL_TOOLS = {
|
|
|
|
|
["searx_host", "engines", "num_results", "aiosession"],
|
|
|
|
|
),
|
|
|
|
|
"bing-search": (_get_bing_search, ["bing_subscription_key", "bing_search_url"]),
|
|
|
|
|
"ddg-search": (_get_ddg_search, []),
|
|
|
|
|
"google-serper": (_get_google_serper, ["serper_api_key"]),
|
|
|
|
|
"serpapi": (_get_serpapi, ["serpapi_api_key", "aiosession"]),
|
|
|
|
|
"searx-search": (_get_searx_search, ["searx_host", "engines", "aiosession"]),
|
|
|
|
|