Skip to content

Commit

Permalink
anthropic: less pydantic for client (#28823)
Browse files Browse the repository at this point in the history
  • Loading branch information
efriis authored Dec 19, 2024
1 parent f1d7837 commit ff7b01a
Showing 1 changed file with 15 additions and 14 deletions.
29 changes: 15 additions & 14 deletions libs/partners/anthropic/langchain_anthropic/chat_models.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import copy
import re
import warnings
from functools import cached_property
from operator import itemgetter
from typing import (
Any,
Expand Down Expand Up @@ -68,11 +69,10 @@
BaseModel,
ConfigDict,
Field,
PrivateAttr,
SecretStr,
model_validator,
)
from typing_extensions import NotRequired, Self
from typing_extensions import NotRequired

from langchain_anthropic.output_parsers import extract_tool_calls

Expand Down Expand Up @@ -541,9 +541,6 @@ class Joke(BaseModel):
populate_by_name=True,
)

_client: anthropic.Client = PrivateAttr(default=None) # type: ignore[assignment]
_async_client: anthropic.AsyncClient = PrivateAttr(default=None) # type: ignore[assignment]

model: str = Field(alias="model_name")
"""Model name to use."""

Expand Down Expand Up @@ -661,13 +658,11 @@ def build_extra(cls, values: Dict) -> Any:
values = _build_model_kwargs(values, all_required_field_names)
return values

@model_validator(mode="after")
def post_init(self) -> Self:
api_key = self.anthropic_api_key.get_secret_value()
api_url = self.anthropic_api_url
@cached_property
def _client_params(self) -> Dict[str, Any]:
client_params: Dict[str, Any] = {
"api_key": api_key,
"base_url": api_url,
"api_key": self.anthropic_api_key.get_secret_value(),
"base_url": self.anthropic_api_url,
"max_retries": self.max_retries,
"default_headers": (self.default_headers or None),
}
Expand All @@ -677,9 +672,15 @@ def post_init(self) -> Self:
if self.default_request_timeout is None or self.default_request_timeout > 0:
client_params["timeout"] = self.default_request_timeout

self._client = anthropic.Client(**client_params)
self._async_client = anthropic.AsyncClient(**client_params)
return self
return client_params

@cached_property
def _client(self) -> anthropic.Client:
return anthropic.Client(**self._client_params)

@cached_property
def _async_client(self) -> anthropic.AsyncClient:
return anthropic.AsyncClient(**self._client_params)

def _get_request_payload(
self,
Expand Down

0 comments on commit ff7b01a

Please sign in to comment.