I am getting a json schema error when including an enum of objects - i.e. a fairly minimal version:
class Y(BaseModel):
a : int
b :int
class Z(BaseModel):
q: Literal[Y(a=1,b=2), Y(a=3,b=3)]
# Z.model_json_schema()
#{'properties': {'q': {'enum': [{'a': 1, 'b': 2}, {'a': 3, 'b': 3}],
# 'title': 'Q'}},
# 'required': ['q'],
# 'title': 'Z',
# 'type': 'object'}
text = "In this example, a is 3 and so is b"
completion = client.beta.chat.completions.parse(
model="gpt-4o",
messages=[
{"role": "system", "content": "Extract the data from the text"},
{"role": "user", "content": "<info>{info}</info>".format(info=text)},
],
response_format=Z,
)
# BadRequestError: Error code: 400 - {'error': {'message': "Invalid schema for response_format 'Z'. Please ensure it is a valid JSON Schema.", 'type': 'invalid_request_error', 'param': 'response_format', 'code': None}}
Is this a known limitation (or am I making some mistake)?