mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-16 23:41:43 +00:00
* fix(responses): decode JSON-string tool schemas before sending to the provider A caller that hands a tool schema over already JSON-encoded reached the Responses API with a string `parameters`, and the provider rejected the request with a 400 naming the routed model instead of the offending tool. Decode it at the one place every Responses request converges, and refuse anything that is neither an object nor a string encoding one. Collapses the duplicated input/tool sanitization block shared by the request and compact-request builders into a single owner, so the decode cannot be wired into one path and not the other. * test(responses): pin null tool schemas as accepted, and type the parametrized cases The Responses API serves `parameters: null` and an omitted schema alike, so neither may raise. Pin both against a future tightening, annotate the parametrized inputs, and trim the docstrings back to what the code does not already say. |
||
|---|---|---|
| .. | ||
| chat | ||
| completion | ||
| embeddings/guardrail_translation | ||
| evals | ||
| image_generation | ||
| realtime | ||
| responses | ||
| speech | ||
| transcriptions | ||
| vector_store_files | ||
| vector_stores | ||
| videos | ||
| test_cost_calculation.py | ||
| test_data_residency.py | ||
| test_gpt5_transformation.py | ||
| test_is_model_gpt_5_model.py | ||
| test_o_series_transformation.py | ||
| test_openai.py | ||
| test_openai_common_utils.py | ||
| test_openai_empty_response.py | ||
| test_openai_file_content_streaming.py | ||
| test_openai_image_edit_transformation.py | ||
| test_openai_workload_identity.py | ||
| test_use_chat_completions_api_no_leak.py | ||