From e09abf8170f52891de6afa341cce00a4616547e5 Mon Sep 17 00:00:00 2001 From: ccurme Date: Tue, 24 Jun 2025 15:17:22 -0400 Subject: [PATCH] anthropic[patch]: add benchmark (#31718) Account for lazy loading of clients in init time benchmark --- .../anthropic/tests/unit_tests/test_standard.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/libs/partners/anthropic/tests/unit_tests/test_standard.py b/libs/partners/anthropic/tests/unit_tests/test_standard.py index cb963c90b94..78546afef9c 100644 --- a/libs/partners/anthropic/tests/unit_tests/test_standard.py +++ b/libs/partners/anthropic/tests/unit_tests/test_standard.py @@ -1,7 +1,9 @@ """Standard LangChain interface tests""" +import pytest from langchain_core.language_models import BaseChatModel from langchain_tests.unit_tests import ChatModelUnitTests +from pytest_benchmark.fixture import BenchmarkFixture # type: ignore[import-untyped] from langchain_anthropic import ChatAnthropic @@ -14,3 +16,16 @@ class TestAnthropicStandard(ChatModelUnitTests): @property def chat_model_params(self) -> dict: return {"model": "claude-3-haiku-20240307"} + + +@pytest.mark.benchmark +def test_init_time_with_client(benchmark: BenchmarkFixture) -> None: + """Test initialization time, accounting for lazy loading of client.""" + + def _init_in_loop_with_clients() -> None: + for _ in range(10): + llm = ChatAnthropic(model="claude-3-5-haiku-latest") + _ = llm._client + _ = llm._async_client + + benchmark(_init_in_loop_with_clients)