From a1b4dbc7b61325943525db7a71e2f2a16db06e07 Mon Sep 17 00:00:00 2001 From: s44002 Date: Wed, 12 Mar 2025 15:29:11 +0530 Subject: [PATCH] Fixes #71: Added support for max_tokens in ModelSettings --- src/agents/model_settings.py | 2 ++ src/agents/models/openai_chatcompletions.py | 1 + 2 files changed, 3 insertions(+) diff --git a/src/agents/model_settings.py b/src/agents/model_settings.py index d8178ae3..ba621e9a 100644 --- a/src/agents/model_settings.py +++ b/src/agents/model_settings.py @@ -19,6 +19,7 @@ class ModelSettings: tool_choice: Literal["auto", "required", "none"] | str | None = None parallel_tool_calls: bool | None = False truncation: Literal["auto", "disabled"] | None = None + max_tokens: int | None = None def resolve(self, override: ModelSettings | None) -> ModelSettings: """Produce a new ModelSettings by overlaying any non-None values from the @@ -33,4 +34,5 @@ def resolve(self, override: ModelSettings | None) -> ModelSettings: tool_choice=override.tool_choice or self.tool_choice, parallel_tool_calls=override.parallel_tool_calls or self.parallel_tool_calls, truncation=override.truncation or self.truncation, + max_tokens=override.max_tokens or self.max_tokens, ) diff --git a/src/agents/models/openai_chatcompletions.py b/src/agents/models/openai_chatcompletions.py index a7340d05..5b5ae4eb 100644 --- a/src/agents/models/openai_chatcompletions.py +++ b/src/agents/models/openai_chatcompletions.py @@ -509,6 +509,7 @@ async def _fetch_response( stream=stream, stream_options={"include_usage": True} if stream else NOT_GIVEN, extra_headers=_HEADERS, + max_tokens=self._non_null_or_not_given(model_settings.max_tokens), ) if isinstance(ret, ChatCompletion):