Python: Fixed parameter handling in OpenAI Responses client (#887)

* Small fix in OpenAI Responses parameters

* Updated test
This commit is contained in:
Dmytro Struk
2025-09-24 08:17:40 -07:00
committed by GitHub
Unverified
parent bd61e5f411
commit 6975309c38
2 changed files with 30 additions and 5 deletions
@@ -325,11 +325,10 @@ class OpenAIBaseResponsesClient(OpenAIBase, BaseChatClient):
options_dict["tools"] = self._tools_to_response_tools(chat_options.tools)
# other settings
if "store" not in options_dict:
options_dict["store"] = False
if "conversation_id" in options_dict:
options_dict["previous_response_id"] = options_dict["conversation_id"]
options_dict.pop("conversation_id")
options_dict["store"] = chat_options.store is True
if chat_options.conversation_id:
options_dict["previous_response_id"] = chat_options.conversation_id
if "model" not in options_dict:
options_dict["model"] = self.ai_model_id
return options_dict
@@ -2044,3 +2044,29 @@ def test_create_response_content_image_generation_fallback():
assert isinstance(content, DataContent)
assert content.media_type == "image/png"
assert f"data:image/png;base64,{unrecognized_base64}" == content.uri
def test_prepare_options_store_parameter_handling() -> None:
client = OpenAIResponsesClient(ai_model_id="test-model", api_key="test-key")
messages = [ChatMessage(role="user", text="Test message")]
test_conversation_id = "test-conversation-123"
chat_options = ChatOptions(store=True, conversation_id=test_conversation_id)
options = client._prepare_options(messages, chat_options) # type: ignore
assert options["store"] is True
assert options["previous_response_id"] == test_conversation_id
chat_options = ChatOptions(store=False, conversation_id="")
options = client._prepare_options(messages, chat_options) # type: ignore
assert options["store"] is False
assert "previous_response_id" not in options
chat_options = ChatOptions(store=None, conversation_id=None)
options = client._prepare_options(messages, chat_options) # type: ignore
assert options["store"] is False
assert "previous_response_id" not in options
chat_options = ChatOptions()
options = client._prepare_options(messages, chat_options) # type: ignore
assert options["store"] is False
assert "previous_response_id" not in options