Unable to create json schema assistants in async
Confirm this is an issue with the Python library and not an underlying OpenAI API
- [X] This is an issue with the Python library
Describe the bug
When I try to create a json schema assistant, I get this error
"error": "Error code: 400 - {'error': {'message': \"Missing required parameter: 'response_format.json_schema.schema'. You provided 'schema_', did you mean to provide 'schema'?\", 'type': 'invalid_request_error', 'param': 'response_format.json_schema.schema', 'code': 'missing_required_parameter'}}"
When I go into the response_format_json_schema.py file and update JSONSchema.schema_ to JSONSchema.schema, the problem disappears.
To Reproduce
Call openai.AsyncOpenAI().beta.assistants.create with a response_format parameter
Code snippets
await openai.AsyncOpenAI().beta.assistants.create(
model=assistant.model,
description=assistant.description,
instructions=assistant.instructions,
name=assistant.name,
response_format=assistant.response_format,
temperature=assistant.temperature,
tool_resources=assistant.tool_resources,
tools=assistant.tools,
top_p=assistant.top_p,
)
OS
MacOS Sonoma 14.6.1
Python version
Python v3.12.2
Library version
openai v1.54.4
Pydantic Version
2.9.2
To address this issue, you can modify the library's source code to ensure that schema_ is correctly serialized as schema in the API request. This involves updating the serialization logic within the response_format_json_schema.py file. By changing the attribute from schema_ to schema, the API will recognize the parameter, resolving the error.
Hi @Dhruv-net, thank you for your response but I have already mentioned that fix in my description above and I do not wish to fork the repo for my deployments!
Thanks for the report, are you using pydantic v1?
Hi Robert! Thanks for your question, I'm using pydantic version 2.9.2. Ill add it to the ticket for visibility as well.
Would you be able to provide a minimally reproducible example snippet? Unfortunately I can't reproduce this.
I encountered the same error and fixed it by importing another library with the same name.
- Before:
from openai.types import ResponseFormatJSONSchema - After:
from openai.types.shared_params import ResponseFormatJSONSchema
Hope this will help you.
Closing as I can't reproduce. Please re-open if you have more context.