mirror of
https://github.com/hwchase17/langchain.git
synced 2025-05-31 20:19:43 +00:00
community: add request_timeout and max_retries to ChatAnthropic (#19402)
This PR make `request_timeout` and `max_retries` configurable for ChatAnthropic. --------- Co-authored-by: Bagatur <baskaryan@gmail.com> Co-authored-by: Erick Friis <erick@langchain.dev>
This commit is contained in:
parent
c769421aa4
commit
a812839f0c
@ -244,7 +244,11 @@ class ChatAnthropic(BaseChatModel):
|
||||
"""Total probability mass of tokens to consider at each step."""
|
||||
|
||||
default_request_timeout: Optional[float] = Field(None, alias="timeout")
|
||||
"""Timeout for requests to Anthropic Completion API. Default is 600 seconds."""
|
||||
"""Timeout for requests to Anthropic Completion API."""
|
||||
|
||||
# sdk default = 2: https://github.com/anthropics/anthropic-sdk-python?tab=readme-ov-file#retries
|
||||
max_retries: int = 2
|
||||
"""Number of retries allowed for requests sent to the Anthropic Completion API."""
|
||||
|
||||
anthropic_api_url: str = "https://api.anthropic.com"
|
||||
|
||||
@ -286,16 +290,23 @@ class ChatAnthropic(BaseChatModel):
|
||||
or "https://api.anthropic.com"
|
||||
)
|
||||
values["anthropic_api_url"] = api_url
|
||||
values["_client"] = anthropic.Client(
|
||||
api_key=api_key,
|
||||
base_url=api_url,
|
||||
default_headers=values.get("default_headers"),
|
||||
)
|
||||
values["_async_client"] = anthropic.AsyncClient(
|
||||
api_key=api_key,
|
||||
base_url=api_url,
|
||||
default_headers=values.get("default_headers"),
|
||||
)
|
||||
client_params = {
|
||||
"api_key": api_key,
|
||||
"base_url": api_url,
|
||||
"max_retries": values["max_retries"],
|
||||
"default_headers": values.get("default_headers"),
|
||||
}
|
||||
# value <= 0 indicates the param should be ignored. None is a meaningful value
|
||||
# for Anthropic client and treated differently than not specifying the param at
|
||||
# all.
|
||||
if (
|
||||
values["default_request_timeout"] is None
|
||||
or values["default_request_timeout"] > 0
|
||||
):
|
||||
client_params["timeout"] = values["default_request_timeout"]
|
||||
|
||||
values["_client"] = anthropic.Client(**client_params)
|
||||
values["_async_client"] = anthropic.AsyncClient(**client_params)
|
||||
return values
|
||||
|
||||
def _format_params(
|
||||
|
Loading…
Reference in New Issue
Block a user