fix: Include hidden params in chat response to responses api response transformation (#20084)

* Include hidden_params in chat completion to responses transformation

* add tests
This commit is contained in:
Nate Tessman
2026-02-02 18:24:21 +05:30
committed by Sameer Kankute
parent 726988aed4
commit d7997db912
2 changed files with 72 additions and 0 deletions
@@ -1413,6 +1413,7 @@ class LiteLLMCompletionResponsesConfig:
),
user=getattr(chat_completion_response, "user", None),
)
responses_api_response._hidden_params = getattr(chat_completion_response, "_hidden_params", {})
return responses_api_response
@staticmethod
@@ -468,6 +468,77 @@ class TestLiteLLMCompletionResponsesConfig:
]
assert item.status != "stop"
def test_transform_chat_completion_response_preserves_hidden_params(self):
"""Test that _hidden_params from chat completion response are preserved in responses API response"""
# Setup
chat_completion_response = ModelResponse(
id="test-response-id",
created=1234567890,
model="test-model",
object="chat.completion",
choices=[
Choices(
finish_reason="stop",
index=0,
message=Message(
content="Test response",
role="assistant",
),
)
],
)
# Set hidden params on the chat completion response
chat_completion_response._hidden_params = {
"model_id": "abc123",
"cache_key": "some-cache-key",
"custom_llm_provider": "openai",
}
# Execute
responses_api_response = LiteLLMCompletionResponsesConfig.transform_chat_completion_response_to_responses_api_response(
request_input="Test",
responses_api_request={},
chat_completion_response=chat_completion_response,
)
# Assert
assert hasattr(responses_api_response, "_hidden_params")
assert responses_api_response._hidden_params == {
"model_id": "abc123",
"cache_key": "some-cache-key",
"custom_llm_provider": "openai",
}
def test_transform_chat_completion_response_handles_missing_hidden_params(self):
"""Test that missing _hidden_params defaults to empty dict"""
# Setup - no _hidden_params set
chat_completion_response = ModelResponse(
id="test-response-id",
created=1234567890,
model="test-model",
object="chat.completion",
choices=[
Choices(
finish_reason="stop",
index=0,
message=Message(
content="Test response",
role="assistant",
),
)
],
)
# Execute
responses_api_response = LiteLLMCompletionResponsesConfig.transform_chat_completion_response_to_responses_api_response(
request_input="Test",
responses_api_request={},
chat_completion_response=chat_completion_response,
)
# Assert - should default to empty dict
assert hasattr(responses_api_response, "_hidden_params")
assert responses_api_response._hidden_params == {}
class TestFunctionCallTransformation:
"""Test cases for function_call input transformation"""