[Fix] Require JSON booleans for response_format json_schema.strict (#34777)

Co-authored-by: James Liu <jamesl@modal.com>
This commit is contained in:
gilfordting
2026-08-14 16:46:27 -07:00
committed by GitHub
co-authored by James Liu
parent a1844709f1
commit 6f005e4da1
2 changed files with 41 additions and 1 deletions
@@ -53,6 +53,7 @@ from pydantic import (
BaseModel,
ConfigDict,
Field,
StrictBool,
field_serializer,
field_validator,
model_serializer,
@@ -219,7 +220,10 @@ class JsonSchemaResponseFormat(BaseModel):
description: Optional[str] = None
# use alias to workaround pydantic conflict
schema_: Optional[Dict[str, object]] = Field(alias="schema", default=None)
strict: Optional[bool] = None
# The OpenAI wire contract accepts JSON booleans only; StrictBool rejects
# the values lax pydantic would coerce ("yes", "on", 0, 1, ...), matching
# OpenAI's 422 behavior. Omitted (None) keeps its meaning.
strict: Optional[StrictBool] = None
class ResponseFormat(BaseModel):