fix(models/litellm): allow proxy to bypass supports_response_schema in structured_output #909
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Previously LiteLLMModel.structured_output rejected models that litellm.utils.supports_response_schema reported as unsupported. That caused false failures when the user configured a LiteLLM proxy, because the proxy may support response_format or negotiate support differently.This PR:
Allows client_args["use_litellm_proxy"] (or use_proxy) to bypass the supports_response_schema() check.
Continues to enforce supports_response_schema() for non-proxy usage.
Calls litellm.acompletion(..., response_format=) and parses returned tool_calls content into the Pydantic model.
Adds a unit test verifying the proxy-bypass behavior.
Key Changes
src/strands/models/litellm.py
tests/strands/models/test_litellm.py
Related Issues
Closes #862Documentation PR
N/AType of Change
Bug fix
Testing
How have you tested the change? Verify that the changes do not break functionality or introduce warnings in consuming repositories: agents-docs, agents-tools, agents-cli
hatch run prepare
pytest tests/strands/models/test_litellm.py::test_structured_output → passed
pytest tests/strands/models/test_litellm.py::test_structured_output_with_proxy_bypasses_support_check → passed
Checklist
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.