This commit is contained in:
Ivana Dunisijevic 2026-10-17 19:52:21 -04:00 • committed by GitHub
commit 99c5affa9c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 27 additions and 0 deletions

View file

@ -662,6 +662,12 @@ class OpenAIResponsesHandler(BaseTranslation):
data["instructions"] = written_back.instructions # rebind-ok: data is an out-param
else:
await self._apply_guardrailed_texts(data, input_data, extracted, guardrail_to_apply, guardrailed_inputs)
if litellm_logging_obj is not None:
sanitized_input: Final = data.get("input")
sanitized_messages: Final = self.get_structured_messages(data) or []
litellm_logging_obj.messages = sanitized_messages
litellm_logging_obj.model_call_details["messages"] = sanitized_messages
litellm_logging_obj.model_call_details["input"] = sanitized_input
verbose_proxy_logger.debug("OpenAI Responses API: Processed input messages: %s", data.get("input"))
return data

View file

@ -265,6 +265,27 @@ class TestOpenAIResponsesHandlerInputProcessing:
assert result["input"] == "Hello world [GUARDRAILED]"
assert result["model"] == "gpt-4"
@pytest.mark.asyncio
async def test_rewritten_input_refreshes_logging_snapshot(self):
handler = OpenAIResponsesHandler()
guardrail = MockGuardrail(guardrail_name="test")
logging_obj = MagicMock()
original_messages = [{"role": "user", "content": "sensitive-value"}]
logging_obj.messages = original_messages
logging_obj.model_call_details = {
"messages": original_messages,
"input": "sensitive-value",
}
data = {"input": "sensitive-value", "model": "gpt-4"}
result = await handler.process_input_messages(data, guardrail, logging_obj)
assert result["input"] == "sensitive-value [GUARDRAILED]"
sanitized_messages = [{"role": "user", "content": result["input"]}]
assert logging_obj.messages == sanitized_messages
assert logging_obj.model_call_details["messages"] == sanitized_messages
assert logging_obj.model_call_details["input"] == result["input"]
@pytest.mark.asyncio
async def test_process_input_none(self):
"""Test processing when input is None"""