mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-10 03:28:53 +00:00
fix: handle string input in Azure guardrails for Responses API
Address Greptile review — the Responses API allows input as either:
- A list of message objects: [{"role": "user", "content": "..."}]
- A plain string: "What is the capital of France?"
The previous fix passed data["input"] directly to get_user_prompt(),
which would crash with AttributeError when input is a string (iterating
over characters instead of message dicts).
Now uses isinstance checks to handle both formats: wrap strings into
a message object, pass lists directly.
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
487117042c
commit
e411f202fd
2 changed files with 16 additions and 2 deletions
|
|
@ -134,7 +134,14 @@ class AzureContentSafetyPromptShieldGuardrail(AzureGuardrailBase, CustomGuardrai
|
|||
"Azure Prompt Shield: Running pre-call prompt scan, on call_type: %s",
|
||||
call_type,
|
||||
)
|
||||
new_messages: Optional[List[AllMessageValues]] = data.get("messages") or data.get("input")
|
||||
new_messages: Optional[List[AllMessageValues]] = data.get("messages")
|
||||
if new_messages is None:
|
||||
# Responses API uses "input" instead of "messages"
|
||||
input_data = data.get("input")
|
||||
if isinstance(input_data, str):
|
||||
new_messages = [{"role": "user", "content": input_data}]
|
||||
elif isinstance(input_data, list):
|
||||
new_messages = input_data
|
||||
if new_messages is None:
|
||||
verbose_proxy_logger.warning(
|
||||
"Azure Prompt Shield: not running guardrail. No messages in data"
|
||||
|
|
|
|||
|
|
@ -227,7 +227,14 @@ class AzureContentSafetyTextModerationGuardrail(AzureGuardrailBase, CustomGuardr
|
|||
"Azure Text Moderation: Running pre-call prompt scan, on call_type: %s",
|
||||
call_type,
|
||||
)
|
||||
new_messages: Optional[List[AllMessageValues]] = data.get("messages") or data.get("input")
|
||||
new_messages: Optional[List[AllMessageValues]] = data.get("messages")
|
||||
if new_messages is None:
|
||||
# Responses API uses "input" instead of "messages"
|
||||
input_data = data.get("input")
|
||||
if isinstance(input_data, str):
|
||||
new_messages = [{"role": "user", "content": input_data}]
|
||||
elif isinstance(input_data, list):
|
||||
new_messages = input_data
|
||||
if new_messages is None:
|
||||
verbose_proxy_logger.warning(
|
||||
"Azure Text Moderation: not running guardrail. No messages in data"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue