Skip to content

Commit

Permalink
core, community: deprecate tool.__call__ (#20900)
Browse files Browse the repository at this point in the history
Does not update docs.
  • Loading branch information
ccurme authored and hinthornw committed Apr 26, 2024
1 parent 1b88cfb commit 5900266
Show file tree
Hide file tree
Showing 13 changed files with 20 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def test_edenai_call() -> None:
"""Test simple call to edenai's speech to text endpoint."""
speech2text = EdenAiSpeechToTextTool(providers=["amazon"])

output = speech2text(
output = speech2text.invoke(
"https://audio-samples.github.io/samples/mp3/blizzard_unconditional/sample-0.mp3"
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def test_edenai_call() -> None:
providers=["amazon"], language="en", voice="MALE"
)

output = text2speech("hello")
output = text2speech.invoke("hello")
parsed_url = urlparse(output)

assert text2speech.name == "edenai_text_to_speech"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def test_edenai_call() -> None:
"""Test simple call to edenai's image moderation endpoint."""
image_moderation = EdenAiExplicitImageTool(providers=["amazon"])

output = image_moderation("https://static.javatpoint.com/images/objects.jpg")
output = image_moderation.invoke("https://static.javatpoint.com/images/objects.jpg")

assert image_moderation.name == "edenai_image_explicit_content_detection"
assert image_moderation.feature == "image"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def test_edenai_call() -> None:
"""Test simple call to edenai's object detection endpoint."""
object_detection = EdenAiObjectDetectionTool(providers=["google"])

output = object_detection("https://static.javatpoint.com/images/objects.jpg")
output = object_detection.invoke("https://static.javatpoint.com/images/objects.jpg")

assert object_detection.name == "edenai_object_detection"
assert object_detection.feature == "image"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def test_edenai_call() -> None:
"""Test simple call to edenai's identity parser endpoint."""
id_parser = EdenAiParsingIDTool(providers=["amazon"], language="en")

output = id_parser(
output = id_parser.invoke(
"https://www.citizencard.com/images/citizencard-uk-id-card-2023.jpg"
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ def test_edenai_call() -> None:
"""Test simple call to edenai's invoice parser endpoint."""
invoice_parser = EdenAiParsingInvoiceTool(providers=["amazon"], language="en")

output = invoice_parser("https://app.edenai.run/assets/img/data_1.72e3bdcc.png")
output = invoice_parser.invoke(
"https://app.edenai.run/assets/img/data_1.72e3bdcc.png"
)

assert invoice_parser.name == "edenai_invoice_parsing"
assert invoice_parser.feature == "ocr"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ def test_edenai_call() -> None:

text_moderation = EdenAiTextModerationTool(providers=["openai"], language="en")

output = text_moderation("i hate you")
output = text_moderation.invoke("i hate you")

assert text_moderation.name == "edenai_explicit_content_detection_text"
assert text_moderation.feature == "text"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ def _load_arxiv_from_universal_entry(**kwargs: Any) -> BaseTool:

def test_load_arxiv_from_universal_entry() -> None:
arxiv_tool = _load_arxiv_from_universal_entry()
output = arxiv_tool("Caprice Stanley")
output = arxiv_tool.invoke("Caprice Stanley")
assert (
"On Mixing Behavior of a Family of Random Walks" in output
), "failed to fetch a valid result"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def ddg_installed() -> bool:
def test_ddg_search_tool() -> None:
keywords = "Bella Ciao"
tool = DuckDuckGoSearchRun()
result = tool(keywords)
result = tool.invoke(keywords)
print(result) # noqa: T201
assert len(result.split()) > 20

Expand All @@ -29,6 +29,6 @@ def test_ddg_search_tool() -> None:
def test_ddg_search_news_tool() -> None:
keywords = "Tesla"
tool = DuckDuckGoSearchResults(source="news")
result = tool(keywords)
result = tool.invoke(keywords)
print(result) # noqa: T201
assert len(result.split()) > 20
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ def test_load_pupmed_from_universal_entry() -> None:
"Examining the Validity of ChatGPT in Identifying "
"Relevant Nephrology Literature"
)
output = pubmed_tool(search_string)
output = pubmed_tool.invoke(search_string)
test_string = (
"Examining the Validity of ChatGPT in Identifying "
"Relevant Nephrology Literature: Findings and Implications"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,6 @@ def test_parse_response_format(mock_post: MagicMock) -> None:
]
mock_post.return_value = mock_response

result = tool("some query")
result = tool.invoke("some query")

assert result == 'nsfw_likelihood: 5\n"offensive": 4\n"hate_speech": 5'
2 changes: 2 additions & 0 deletions libs/core/langchain_core/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
Union,
)

from langchain_core._api import deprecated
from langchain_core.callbacks import (
AsyncCallbackManager,
AsyncCallbackManagerForToolRun,
Expand Down Expand Up @@ -601,6 +602,7 @@ async def arun(
)
return observation

@deprecated("0.1.47", alternative="invoke", removal="0.3.0")
def __call__(self, tool_input: str, callbacks: Callbacks = None) -> str:
"""Make tool callable."""
return self.run(tool_input, callbacks=callbacks)
Expand Down
8 changes: 4 additions & 4 deletions libs/core/tests/unit_tests/test_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def search_api(query: str) -> str:
assert isinstance(search_api, BaseTool)
assert search_api.name == "search_api"
assert not search_api.return_direct
assert search_api("test") == "API result"
assert search_api.invoke("test") == "API result"


class _MockSchema(BaseModel):
Expand Down Expand Up @@ -596,7 +596,7 @@ def search_api(query: str) -> str:
def test_create_tool_positional_args() -> None:
"""Test that positional arguments are allowed."""
test_tool = Tool("test_name", lambda x: x, "test_description")
assert test_tool("foo") == "foo"
assert test_tool.invoke("foo") == "foo"
assert test_tool.name == "test_name"
assert test_tool.description == "test_description"
assert test_tool.is_single_input
Expand All @@ -606,7 +606,7 @@ def test_create_tool_keyword_args() -> None:
"""Test that keyword arguments are allowed."""
test_tool = Tool(name="test_name", func=lambda x: x, description="test_description")
assert test_tool.is_single_input
assert test_tool("foo") == "foo"
assert test_tool.invoke("foo") == "foo"
assert test_tool.name == "test_name"
assert test_tool.description == "test_description"

Expand All @@ -624,7 +624,7 @@ async def _test_func(x: str) -> str:
coroutine=_test_func,
)
assert test_tool.is_single_input
assert test_tool("foo") == "foo"
assert test_tool.invoke("foo") == "foo"
assert test_tool.name == "test_name"
assert test_tool.description == "test_description"
assert test_tool.coroutine is not None
Expand Down

0 comments on commit 5900266

Please sign in to comment.