From 3c5084828e398a7002305abb3230c34caa3a0973 Mon Sep 17 00:00:00 2001 From: Tanmay Kale Date: Thu, 23 Jul 2026 17:24:46 +0200 Subject: [PATCH 1/2] fix: lower default streaming read timeout to 20s [AIR-1092] --- src/mistralai/client/agents.py | 4 ++-- src/mistralai/client/chat.py | 4 ++-- src/mistralai/client/fim.py | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/mistralai/client/agents.py b/src/mistralai/client/agents.py index 12e7f483..29413075 100644 --- a/src/mistralai/client/agents.py +++ b/src/mistralai/client/agents.py @@ -466,7 +466,7 @@ def stream( timeout_ms = self.sdk_configuration.timeout_ms if timeout_ms is None: - timeout_ms = 300000 + timeout_ms = 20000 if server_url is not None: base_url = server_url @@ -660,7 +660,7 @@ async def stream_async( timeout_ms = self.sdk_configuration.timeout_ms if timeout_ms is None: - timeout_ms = 300000 + timeout_ms = 20000 if server_url is not None: base_url = server_url diff --git a/src/mistralai/client/chat.py b/src/mistralai/client/chat.py index c7ff5704..f41fd51c 100644 --- a/src/mistralai/client/chat.py +++ b/src/mistralai/client/chat.py @@ -575,7 +575,7 @@ def stream( timeout_ms = self.sdk_configuration.timeout_ms if timeout_ms is None: - timeout_ms = 300000 + timeout_ms = 20000 if server_url is not None: base_url = server_url @@ -778,7 +778,7 @@ async def stream_async( timeout_ms = self.sdk_configuration.timeout_ms if timeout_ms is None: - timeout_ms = 300000 + timeout_ms = 20000 if server_url is not None: base_url = server_url diff --git a/src/mistralai/client/fim.py b/src/mistralai/client/fim.py index b4504370..e24ed6ab 100644 --- a/src/mistralai/client/fim.py +++ b/src/mistralai/client/fim.py @@ -333,7 +333,7 @@ def stream( timeout_ms = self.sdk_configuration.timeout_ms if timeout_ms is None: - timeout_ms = 300000 + timeout_ms = 20000 if server_url is not None: base_url = server_url @@ -475,7 +475,7 @@ async def stream_async( timeout_ms = self.sdk_configuration.timeout_ms if timeout_ms is None: - timeout_ms = 300000 + timeout_ms = 20000 if server_url is not None: base_url = server_url From 9bac14c8df5d3acbb5c31b43a7080cffb1914e56 Mon Sep 17 00:00:00 2001 From: Tanmay Kale Date: Fri, 24 Jul 2026 13:08:37 +0200 Subject: [PATCH 2/2] feat: add stream_timeout_ms to SDKConfiguration and Mistral.__init__ [AIR-1092] --- src/mistralai/client/agents.py | 4 ++++ src/mistralai/client/chat.py | 4 ++++ src/mistralai/client/fim.py | 4 ++++ src/mistralai/client/sdk.py | 3 +++ src/mistralai/client/sdkconfiguration.py | 1 + 5 files changed, 16 insertions(+) diff --git a/src/mistralai/client/agents.py b/src/mistralai/client/agents.py index 29413075..d3b1bc5e 100644 --- a/src/mistralai/client/agents.py +++ b/src/mistralai/client/agents.py @@ -462,6 +462,8 @@ def stream( """ base_url = None url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.stream_timeout_ms if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms @@ -656,6 +658,8 @@ async def stream_async( """ base_url = None url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.stream_timeout_ms if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms diff --git a/src/mistralai/client/chat.py b/src/mistralai/client/chat.py index f41fd51c..d8f62880 100644 --- a/src/mistralai/client/chat.py +++ b/src/mistralai/client/chat.py @@ -571,6 +571,8 @@ def stream( """ base_url = None url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.stream_timeout_ms if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms @@ -774,6 +776,8 @@ async def stream_async( """ base_url = None url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.stream_timeout_ms if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms diff --git a/src/mistralai/client/fim.py b/src/mistralai/client/fim.py index e24ed6ab..3e05def2 100644 --- a/src/mistralai/client/fim.py +++ b/src/mistralai/client/fim.py @@ -329,6 +329,8 @@ def stream( """ base_url = None url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.stream_timeout_ms if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms @@ -471,6 +473,8 @@ async def stream_async( """ base_url = None url_variables = None + if timeout_ms is None: + timeout_ms = self.sdk_configuration.stream_timeout_ms if timeout_ms is None: timeout_ms = self.sdk_configuration.timeout_ms diff --git a/src/mistralai/client/sdk.py b/src/mistralai/client/sdk.py index 9b7eb230..b2e2961a 100644 --- a/src/mistralai/client/sdk.py +++ b/src/mistralai/client/sdk.py @@ -81,6 +81,7 @@ def __init__( async_client: Optional[AsyncHttpClient] = None, retry_config: OptionalNullable[RetryConfig] = UNSET, timeout_ms: Optional[int] = None, + stream_timeout_ms: Optional[int] = None, debug_logger: Optional[Logger] = None, ) -> None: r"""Instantiates the SDK configuring it with the provided parameters. @@ -93,6 +94,7 @@ def __init__( :param async_client: The Async HTTP client to use for all asynchronous methods :param retry_config: The retry configuration to use for all supported methods :param timeout_ms: Optional request timeout applied to each operation in milliseconds + :param stream_timeout_ms: Optional idle-read timeout for SSE streaming operations in milliseconds (default 20 000 ms). Overrides timeout_ms for streaming calls only. """ client_supplied = True if client is None: @@ -140,6 +142,7 @@ def __init__( server=server, retry_config=retry_config, timeout_ms=timeout_ms, + stream_timeout_ms=stream_timeout_ms, debug_logger=debug_logger, ), parent_ref=self, diff --git a/src/mistralai/client/sdkconfiguration.py b/src/mistralai/client/sdkconfiguration.py index 999e2717..87c35cb8 100644 --- a/src/mistralai/client/sdkconfiguration.py +++ b/src/mistralai/client/sdkconfiguration.py @@ -47,6 +47,7 @@ class SDKConfiguration: user_agent: str = __user_agent__ retry_config: OptionalNullable[RetryConfig] = Field(default_factory=lambda: UNSET) timeout_ms: Optional[int] = None + stream_timeout_ms: Optional[int] = None def get_server_details(self) -> Tuple[str, Dict[str, str]]: if self.server_url is not None and self.server_url: