Fix rec_strict_json_schema to handle numeric constraint keywords #302
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.
Summary
rec_strict_json_schemafunction to handleintandfloatvalues as terminal typesmin_length,max_length,minItems,maxItems,minimum,maximum, andmultipleOfwould cause aValueErrorProblem
When using
response_format_from_pydantic_model()with Pydantic models that have constraint keywords (likeField(min_length=1)), therec_strict_json_schema()function was raising aValueErrorbecause it only consideredstrandboolas valid terminal types, but JSON Schema constraint keywords have numeric values (intorfloat).Example that failed:
Solution
Added
intandfloatto the type check inrec_strict_json_schema():Test plan
rec_strict_json_schemawith numeric constraints (minItems,maxItems,minLength,maxLength,minimum,maximum,multipleOf)response_format_from_pydantic_modelwith constrained Pydantic modelsValueErrorFixes #300
🤖 Generated with Claude Code