fix(llm): use httpx.Timeout read-inactivity for per-turn model timeout

This commit is contained in:
Ahmed Allam
2026-07-17 18:40:23 -07:00
committed by Ahmed Allam
parent 3bb95ab43d
commit cf7689e927
3 changed files with 26 additions and 11 deletions
+4 -2
View File
@@ -164,7 +164,8 @@ def test_make_model_settings_sets_request_timeout() -> None:
request_timeout=300.0,
)
assert settings.extra_args == {"timeout": 300.0}
assert settings.extra_args is not None
assert settings.extra_args["timeout"].read == 300.0
def test_make_model_settings_omits_timeout_when_unset() -> None:
@@ -182,4 +183,5 @@ def test_make_model_settings_timeout_survives_reasoning_resolve() -> None:
request_timeout=120.0,
)
assert settings.extra_args == {"timeout": 120.0}
assert settings.extra_args is not None
assert settings.extra_args["timeout"].read == 120.0
+12 -2
View File
@@ -17,8 +17,18 @@ def test_recommended_models_are_accepted(model_name: str) -> None:
def test_request_timeout_extra_args_positive() -> None:
assert request_timeout_extra_args(300) == {"timeout": 300.0}
assert request_timeout_extra_args(120.5) == {"timeout": 120.5}
args = request_timeout_extra_args(300)
assert args is not None
timeout = args["timeout"]
# read (inactivity) carries the configured value; connect is capped so a dead
# endpoint fails fast rather than waiting the full read window.
assert timeout.read == 300.0
assert timeout.connect == 30.0
short = request_timeout_extra_args(10)
assert short is not None
assert short["timeout"].read == 10.0
assert short["timeout"].connect == 10.0
@pytest.mark.parametrize("value", [None, 0, -1])