From b11fe68e159885b7e6465700cde536130518c80e Mon Sep 17 00:00:00 2001 From: Daniele Morotti <58258368+DanieleMorotti@users.noreply.github.com> Date: Mon, 14 Apr 2025 11:50:31 +0200 Subject: [PATCH 1/3] Added extra_body and extra_query attributes to ModelSettings.py --- src/agents/model_settings.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/agents/model_settings.py b/src/agents/model_settings.py index f29cfa4a..18107679 100644 --- a/src/agents/model_settings.py +++ b/src/agents/model_settings.py @@ -4,6 +4,7 @@ from typing import Literal from openai.types.shared import Reasoning +from openai._types import Body, Query @dataclass @@ -58,6 +59,14 @@ class ModelSettings: """Whether to include usage chunk. Defaults to True if not provided.""" + extra_query: Query | None = None + """Additional query fields to provide with the request. + Defaults to None if not provided.""" + + extra_body: Body | None = None + """Additional body fields to provide with the request. + Defaults to None if not provided.""" + def resolve(self, override: ModelSettings | None) -> ModelSettings: """Produce a new ModelSettings by overlaying any non-None values from the override on top of this instance.""" From 93407c2c74ee3cf4f220f26bf2fe8363c72f864d Mon Sep 17 00:00:00 2001 From: Daniele Morotti <58258368+DanieleMorotti@users.noreply.github.com> Date: Mon, 14 Apr 2025 11:54:13 +0200 Subject: [PATCH 2/3] Added extra_query and extra_body parameters when sending request --- src/agents/models/openai_chatcompletions.py | 2 ++ src/agents/models/openai_responses.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/agents/models/openai_chatcompletions.py b/src/agents/models/openai_chatcompletions.py index 807c6512..267efcaf 100644 --- a/src/agents/models/openai_chatcompletions.py +++ b/src/agents/models/openai_chatcompletions.py @@ -540,6 +540,8 @@ async def _fetch_response( store=self._non_null_or_not_given(store), reasoning_effort=self._non_null_or_not_given(reasoning_effort), extra_headers=_HEADERS, + extra_query=model_settings.extra_query, + extra_body=model_settings.extra_body, metadata=self._non_null_or_not_given(model_settings.metadata), ) diff --git a/src/agents/models/openai_responses.py b/src/agents/models/openai_responses.py index 06828884..cb5a603f 100644 --- a/src/agents/models/openai_responses.py +++ b/src/agents/models/openai_responses.py @@ -245,6 +245,8 @@ async def _fetch_response( parallel_tool_calls=parallel_tool_calls, stream=stream, extra_headers=_HEADERS, + extra_query=model_settings.extra_query, + extra_body=model_settings.extra_body, text=response_format, store=self._non_null_or_not_given(model_settings.store), reasoning=self._non_null_or_not_given(model_settings.reasoning), From 80bf2fb4381e3ac84ba7443c32a6c75b7531e294 Mon Sep 17 00:00:00 2001 From: Daniele Morotti <58258368+DanieleMorotti@users.noreply.github.com> Date: Mon, 14 Apr 2025 12:05:32 +0200 Subject: [PATCH 3/3] Fixed import order to solve lint error --- src/agents/model_settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/agents/model_settings.py b/src/agents/model_settings.py index 18107679..ed9a0131 100644 --- a/src/agents/model_settings.py +++ b/src/agents/model_settings.py @@ -3,8 +3,8 @@ from dataclasses import dataclass, fields, replace from typing import Literal -from openai.types.shared import Reasoning from openai._types import Body, Query +from openai.types.shared import Reasoning @dataclass