litellm/type-discipline-budget.json
yucheng-berri bcce83a17e
fix(guardrails): scan model output on the /openai/v1/responses alias (#35818)
The proxy serves POST /openai/v1/responses alongside /responses and
/v1/responses, but only the latter two were in API_ROUTE_TO_CALL_TYPES.
UnifiedLLMGuardrails.async_post_call_success_hook resolves the call type
from request_route, so on the alias it resolved to None and returned the
response unscanned; model output reached the client with post-call
guardrails never running. The key and team tool allowlist was unenforced
on the same alias for the same reason.

Register the alias family in API_ROUTE_TO_CALL_TYPES and in
LiteLLMRoutes.openai_routes, mirroring how the /openai/v1/realtime
aliases are registered, and log a warning at the two points where the
unified guardrail skips post-call scanning so a future unmapped route is
visible instead of silent.

The Responses block of API_ROUTE_TO_CALL_TYPES moves from list to tuple
literals because the LIT002 budget rejects net-new mutable-collection
construction; the map is read-only, so it is now typed as a Mapping of
Sequence and the budgets ratchet down accordingly.
2026-08-04 16:46:45 -07:00

35 lines
404 B
JSON

{
"LIT001": {
"limit": 23348
},
"LIT002": {
"limit": 27227
},
"LIT003": {
"limit": 292
},
"LIT004": {
"limit": 44
},
"LIT005": {
"limit": 0
},
"LIT006": {
"limit": 1103
},
"LIT007": {
"limit": 0
},
"LIT008": {
"limit": 1004
},
"LIT009": {
"limit": 2460
},
"LIT010": {
"limit": 25327
},
"LIT011": {
"limit": 8406
}
}