refactor: update tools output type to Tool (#2766)
* refactor: update tools output type to Tool * refactor: Update BingSearchAPI to return Tool type
This commit is contained in:
parent
6e75a05978
commit
b23e17e54a
8 changed files with 20 additions and 20 deletions
|
|
@ -1,11 +1,10 @@
|
||||||
from abc import abstractmethod
|
from abc import abstractmethod
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
|
|
||||||
from langflow.custom import Component
|
from langflow.custom import Component
|
||||||
|
from langflow.field_typing import Tool
|
||||||
from langflow.io import Output
|
from langflow.io import Output
|
||||||
from langflow.schema import Data
|
from langflow.schema import Data
|
||||||
from langchain_core.tools import BaseTool
|
|
||||||
|
|
||||||
|
|
||||||
class LCToolComponent(Component):
|
class LCToolComponent(Component):
|
||||||
|
|
@ -32,7 +31,7 @@ class LCToolComponent(Component):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def build_tool(self) -> BaseTool:
|
def build_tool(self) -> Tool:
|
||||||
"""
|
"""
|
||||||
Build the tool.
|
Build the tool.
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
from typing import List
|
from typing import List, cast
|
||||||
|
|
||||||
from langchain_community.tools.bing_search import BingSearchResults
|
from langchain_community.tools.bing_search import BingSearchResults
|
||||||
from langchain_community.utilities import BingSearchAPIWrapper
|
from langchain_community.utilities import BingSearchAPIWrapper
|
||||||
from langchain_core.tools import BaseTool
|
|
||||||
|
|
||||||
from langflow.base.langchain_utilities.model import LCToolComponent
|
from langflow.base.langchain_utilities.model import LCToolComponent
|
||||||
|
from langflow.field_typing import Tool
|
||||||
from langflow.inputs import IntInput, MessageTextInput, MultilineInput, SecretStrInput
|
from langflow.inputs import IntInput, MessageTextInput, MultilineInput, SecretStrInput
|
||||||
from langflow.schema import Data
|
from langflow.schema import Data
|
||||||
|
|
||||||
|
|
@ -36,11 +36,11 @@ class BingSearchAPIComponent(LCToolComponent):
|
||||||
self.status = data
|
self.status = data
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def build_tool(self) -> BaseTool:
|
def build_tool(self) -> Tool:
|
||||||
if self.bing_search_url:
|
if self.bing_search_url:
|
||||||
wrapper = BingSearchAPIWrapper(
|
wrapper = BingSearchAPIWrapper(
|
||||||
bing_search_url=self.bing_search_url, bing_subscription_key=self.bing_subscription_key
|
bing_search_url=self.bing_search_url, bing_subscription_key=self.bing_subscription_key
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
wrapper = BingSearchAPIWrapper(bing_subscription_key=self.bing_subscription_key) # type: ignore
|
wrapper = BingSearchAPIWrapper(bing_subscription_key=self.bing_subscription_key) # type: ignore
|
||||||
return BingSearchResults(api_wrapper=wrapper, num_results=self.k)
|
return cast(Tool, BingSearchResults(api_wrapper=wrapper, num_results=self.k))
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
from langchain_core.tools import BaseTool, Tool
|
from langchain_core.tools import Tool
|
||||||
|
|
||||||
from langflow.base.langchain_utilities.model import LCToolComponent
|
from langflow.base.langchain_utilities.model import LCToolComponent
|
||||||
from langflow.inputs import SecretStrInput, MultilineInput, IntInput
|
from langflow.inputs import SecretStrInput, MultilineInput, IntInput
|
||||||
|
|
@ -29,7 +29,7 @@ class GoogleSearchAPIComponent(LCToolComponent):
|
||||||
self.status = data
|
self.status = data
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def build_tool(self) -> BaseTool:
|
def build_tool(self) -> Tool:
|
||||||
wrapper = self._build_wrapper()
|
wrapper = self._build_wrapper()
|
||||||
return Tool(
|
return Tool(
|
||||||
name="google_search",
|
name="google_search",
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@ from typing import Union
|
||||||
|
|
||||||
from langchain_community.utilities.google_serper import GoogleSerperAPIWrapper
|
from langchain_community.utilities.google_serper import GoogleSerperAPIWrapper
|
||||||
|
|
||||||
from langchain_core.tools import BaseTool, Tool
|
|
||||||
from langflow.base.langchain_utilities.model import LCToolComponent
|
from langflow.base.langchain_utilities.model import LCToolComponent
|
||||||
from langflow.inputs import SecretStrInput, MultilineInput, IntInput
|
from langflow.inputs import SecretStrInput, MultilineInput, IntInput
|
||||||
from langflow.schema import Data
|
from langflow.schema import Data
|
||||||
|
from langflow.field_typing import Tool
|
||||||
|
|
||||||
|
|
||||||
class GoogleSerperAPIComponent(LCToolComponent):
|
class GoogleSerperAPIComponent(LCToolComponent):
|
||||||
|
|
@ -30,7 +30,7 @@ class GoogleSerperAPIComponent(LCToolComponent):
|
||||||
self.status = data
|
self.status = data
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def build_tool(self) -> BaseTool:
|
def build_tool(self) -> Tool:
|
||||||
wrapper = self._build_wrapper()
|
wrapper = self._build_wrapper()
|
||||||
return Tool(
|
return Tool(
|
||||||
name="google_search",
|
name="google_search",
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@ from typing import Union
|
||||||
from langchain_community.utilities.searchapi import SearchApiAPIWrapper
|
from langchain_community.utilities.searchapi import SearchApiAPIWrapper
|
||||||
|
|
||||||
from langflow.base.langchain_utilities.model import LCToolComponent
|
from langflow.base.langchain_utilities.model import LCToolComponent
|
||||||
from langchain_core.tools import BaseTool, Tool
|
|
||||||
from langflow.inputs import SecretStrInput, MultilineInput, DictInput, MessageTextInput
|
from langflow.inputs import SecretStrInput, MultilineInput, DictInput, MessageTextInput
|
||||||
from langflow.schema import Data
|
from langflow.schema import Data
|
||||||
|
from langflow.field_typing import Tool
|
||||||
|
|
||||||
|
|
||||||
class SearchAPIComponent(LCToolComponent):
|
class SearchAPIComponent(LCToolComponent):
|
||||||
|
|
@ -32,7 +32,7 @@ class SearchAPIComponent(LCToolComponent):
|
||||||
self.status = data
|
self.status = data
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def build_tool(self) -> BaseTool:
|
def build_tool(self) -> Tool:
|
||||||
wrapper = self._build_wrapper()
|
wrapper = self._build_wrapper()
|
||||||
return Tool(
|
return Tool(
|
||||||
name="search_api",
|
name="search_api",
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
from langchain_community.utilities.serpapi import SerpAPIWrapper
|
from langchain_community.utilities.serpapi import SerpAPIWrapper
|
||||||
|
|
||||||
from langflow.base.langchain_utilities.model import LCToolComponent
|
from langflow.base.langchain_utilities.model import LCToolComponent
|
||||||
from langchain_core.tools import BaseTool, Tool
|
|
||||||
from langflow.inputs import SecretStrInput, DictInput, MultilineInput
|
from langflow.inputs import SecretStrInput, DictInput, MultilineInput
|
||||||
from langflow.schema import Data
|
from langflow.schema import Data
|
||||||
|
from langflow.field_typing import Tool
|
||||||
|
|
||||||
|
|
||||||
class SerpAPIComponent(LCToolComponent):
|
class SerpAPIComponent(LCToolComponent):
|
||||||
|
|
@ -28,7 +28,7 @@ class SerpAPIComponent(LCToolComponent):
|
||||||
self.status = data
|
self.status = data
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def build_tool(self) -> BaseTool:
|
def build_tool(self) -> Tool:
|
||||||
wrapper = self._build_wrapper()
|
wrapper = self._build_wrapper()
|
||||||
return Tool(name="search_api", description="Search for recent results.", func=wrapper.run)
|
return Tool(name="search_api", description="Search for recent results.", func=wrapper.run)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
|
from langchain.tools import WikipediaQueryRun
|
||||||
from langchain_community.utilities.wikipedia import WikipediaAPIWrapper
|
from langchain_community.utilities.wikipedia import WikipediaAPIWrapper
|
||||||
|
|
||||||
from langflow.base.langchain_utilities.model import LCToolComponent
|
from langflow.base.langchain_utilities.model import LCToolComponent
|
||||||
from langchain.tools import WikipediaQueryRun, BaseTool
|
from langflow.field_typing import Tool
|
||||||
from langflow.inputs import IntInput, MessageTextInput, BoolInput, MultilineInput
|
from langflow.inputs import BoolInput, IntInput, MessageTextInput, MultilineInput
|
||||||
from langflow.schema import Data
|
from langflow.schema import Data
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -31,7 +32,7 @@ class WikipediaAPIComponent(LCToolComponent):
|
||||||
self.status = data
|
self.status = data
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def build_tool(self) -> BaseTool:
|
def build_tool(self) -> Tool:
|
||||||
wrapper = self._build_wrapper()
|
wrapper = self._build_wrapper()
|
||||||
return WikipediaQueryRun(api_wrapper=wrapper)
|
return WikipediaQueryRun(api_wrapper=wrapper)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
from langchain_community.utilities.wolfram_alpha import WolframAlphaAPIWrapper
|
from langchain_community.utilities.wolfram_alpha import WolframAlphaAPIWrapper
|
||||||
|
|
||||||
from langflow.base.langchain_utilities.model import LCToolComponent
|
from langflow.base.langchain_utilities.model import LCToolComponent
|
||||||
from langchain.tools import BaseTool, Tool
|
from langflow.field_typing import Tool
|
||||||
from langflow.inputs import MultilineInput, SecretStrInput
|
from langflow.inputs import MultilineInput, SecretStrInput
|
||||||
from langflow.schema import Data
|
from langflow.schema import Data
|
||||||
|
|
||||||
|
|
@ -26,7 +26,7 @@ class WolframAlphaAPIComponent(LCToolComponent):
|
||||||
self.status = data
|
self.status = data
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def build_tool(self) -> BaseTool:
|
def build_tool(self) -> Tool:
|
||||||
wrapper = self._build_wrapper()
|
wrapper = self._build_wrapper()
|
||||||
return Tool(name="wolfram_alpha_api", description="Answers mathematical questions.", func=wrapper.run)
|
return Tool(name="wolfram_alpha_api", description="Answers mathematical questions.", func=wrapper.run)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue