diff --git a/langchain/tools/__init__.py b/langchain/tools/__init__.py index a03519ac..fc1a870c 100644 --- a/langchain/tools/__init__.py +++ b/langchain/tools/__init__.py @@ -27,6 +27,13 @@ from langchain.tools.playwright import ( from langchain.tools.plugin import AIPluginTool from langchain.tools.scenexplain.tool import SceneXplainTool from langchain.tools.shell.tool import ShellTool +from langchain.tools.vectorstore.tool import ( + VectorStoreQATool, + VectorStoreQAWithSourcesTool, +) +from langchain.tools.wikipedia.tool import WikipediaQueryRun +from langchain.tools.wolfram_alpha.tool import WolframAlphaQueryRun +from langchain.tools.zapier.tool import ZapierNLAListActions, ZapierNLARunAction __all__ = [ "AIPluginTool", @@ -60,4 +67,10 @@ __all__ = [ "WriteFileTool", "BaseTool", "SceneXplainTool", + "VectorStoreQAWithSourcesTool", + "VectorStoreQATool", + "WikipediaQueryRun", + "WolframAlphaQueryRun", + "ZapierNLARunAction", + "ZapierNLAListActions", ] diff --git a/langchain/tools/bing_search/__init__.py b/langchain/tools/bing_search/__init__.py index a993a066..1697c651 100644 --- a/langchain/tools/bing_search/__init__.py +++ b/langchain/tools/bing_search/__init__.py @@ -1 +1,5 @@ """Bing Search API toolkit.""" + +from langchain.tools.bing_search.tool import BingSearchResults, BingSearchRun + +__all__ = ["BingSearchRun", "BingSearchResults"] diff --git a/langchain/tools/google_places/__init__.py b/langchain/tools/google_places/__init__.py index e5b5d504..3ca3bb61 100644 --- a/langchain/tools/google_places/__init__.py +++ b/langchain/tools/google_places/__init__.py @@ -1 +1,5 @@ """Google Places API Toolkit.""" + +from langchain.tools.google_places.tool import GooglePlacesTool + +__all__ = ["GooglePlacesTool"] diff --git a/langchain/tools/google_search/__init__.py b/langchain/tools/google_search/__init__.py index 1be19422..a7845458 100644 --- a/langchain/tools/google_search/__init__.py +++ b/langchain/tools/google_search/__init__.py @@ -1 +1,5 @@ """Google Search API Toolkit.""" + +from langchain.tools.google_search.tool import GoogleSearchResults, GoogleSearchRun + +__all__ = ["GoogleSearchRun", "GoogleSearchResults"] diff --git a/langchain/tools/human/__init__.py b/langchain/tools/human/__init__.py index 704a29da..03c0198c 100644 --- a/langchain/tools/human/__init__.py +++ b/langchain/tools/human/__init__.py @@ -1 +1,5 @@ """Tool for asking for human input.""" + +from langchain.tools.human.tool import HumanInputRun + +__all__ = ["HumanInputRun"] diff --git a/langchain/tools/interaction/tool.py b/langchain/tools/interaction/tool.py index 096c885d..2aff919c 100644 --- a/langchain/tools/interaction/tool.py +++ b/langchain/tools/interaction/tool.py @@ -1,32 +1,17 @@ """Tools for interacting with the user.""" -from typing import Optional +import warnings +from typing import Any -from langchain.callbacks.manager import ( - AsyncCallbackManagerForToolRun, - RunManager, -) -from langchain.tools.base import BaseTool +from langchain.tools.human.tool import HumanInputRun -class StdInInquireTool(BaseTool): +def StdInInquireTool(*args: Any, **kwargs: Any) -> HumanInputRun: """Tool for asking the user for input.""" - - name: str = "Inquire" - description: str = ( - "useful if you do not have enough information to" - " effectively use other tools. Input is best as a clarifying" - " question (to disambiguate) or a request for more context." + warnings.warn( + "StdInInquireTool will be deprecated in the future. " + "Please use HumanInputRun instead.", + DeprecationWarning, ) - - def _run(self, prompt: str, run_manager: Optional[RunManager] = None) -> str: - """Prompt the user for more input.""" - return input(f"\n{prompt}") - - async def _arun( - self, - query: str, - run_manager: Optional[AsyncCallbackManagerForToolRun] = None, - ) -> str: - raise NotImplementedError(f"{self.__class__.__name__} does not support async") + return HumanInputRun(*args, **kwargs) diff --git a/langchain/tools/wolfram_alpha/__init__.py b/langchain/tools/wolfram_alpha/__init__.py index e6870ac8..a722f736 100644 --- a/langchain/tools/wolfram_alpha/__init__.py +++ b/langchain/tools/wolfram_alpha/__init__.py @@ -1 +1,8 @@ """Wolfram Alpha API toolkit.""" + + +from langchain.tools.wolfram_alpha.tool import WolframAlphaQueryRun + +__all__ = [ + "WolframAlphaQueryRun", +] diff --git a/langchain/tools/zapier/__init__.py b/langchain/tools/zapier/__init__.py index ef6b8a2a..50309b12 100644 --- a/langchain/tools/zapier/__init__.py +++ b/langchain/tools/zapier/__init__.py @@ -1 +1,8 @@ """Zapier Tool.""" + +from langchain.tools.zapier.tool import ZapierNLAListActions, ZapierNLARunAction + +__all__ = [ + "ZapierNLARunAction", + "ZapierNLAListActions", +] diff --git a/tests/unit_tests/tools/test_signatures.py b/tests/unit_tests/tools/test_signatures.py index b1634dfc..f23550f6 100644 --- a/tests/unit_tests/tools/test_signatures.py +++ b/tests/unit_tests/tools/test_signatures.py @@ -21,7 +21,8 @@ def get_non_abstract_subclasses(cls: Type[BaseTool]) -> List[Type[BaseTool]]: and subclass not in to_skip ): subclasses.append(subclass) - subclasses.extend(get_non_abstract_subclasses(subclass)) + sc = get_non_abstract_subclasses(subclass) + subclasses.extend(sc) return subclasses