openai / openai-dotnet

The official .NET library for the OpenAI API
https://www.nuget.org/packages/OpenAI
MIT License
1.53k stars 156 forks source link

Getting response_format 'json_schema' not supported error when using assistant with GPT-4o #276

Open dmeyeroc opened 3 weeks ago

dmeyeroc commented 3 weeks ago

Service

OpenAI

Describe the bug

I am attempting to generate a structured output response using response_format = json_schema with an Assistant run using GPT-4o. When I attempt to execute the run, I get the following error:

Parameter: response_format

Invalid parameter: 'response_format' of type 'json_schema' is not supported with model version `gpt-4o`.

It's my understanding via this documentation that GPT-4o (which currently points to gpt-4o-2024-08-06) that this should be supported.

Additionally when attempting a simple chat completion specifying json_schema as the response_format via Postman, it works correctly.

This makes me think this could be a bug in the .NET library itself.

Steps to reproduce

Call CreateThreadAndRunAsync() using GPT-4o, with response format configured to return a specific schema. Error is returned

Code snippets

// Most relevant snippets of code exemplifying the problem

var runCreationOptions = new RunCreationOptions()
{
    ResponseFormat = AssistantResponseFormat.CreateJsonSchemaFormat(Name, MySchema, Description, true),
    ModelOverride = "GPT-4o"
};

...

await _openAIAssistantsClient.CreateThreadAndRunAsync(_assistantId, threadCreationOptions, runCreationOptions);

// error

OS

Windows Server 2016 Standard

.NET version

.NET Core 2.2

Library version

2.0.0

WillsB3 commented 3 weeks ago

FWIW I'm getting the same error using the JS SDK.

goswamishashwatpuri commented 3 weeks ago

Same error in JS SDK

gregzo commented 3 weeks ago

Same here when configuring an assistant in the UI. Setting the response type to JSON_SCHEMA displays the following error on save:

Invalid parameter: 'response_format' of type 'json_schema' is not supported with model version 'gpt-4o'.

Todorcevic commented 2 weeks ago

The error arises from a limitation in model compatibility with response_format: json_schema. Although some recent models support this setting (gpt-4o-mini, gpt-4o-mini-2024-07-18, and gpt-4o-2024-08-06), this does not guarantee that every GPT-4o variant is covered.

Suggestions Try explicitly specifying a compatible model, such as gpt-4o-2024-08-06, instead of GPT-4o to ensure compatibility.

harish-coeff commented 2 weeks ago

Yes, faced the same issue. @Todorcevic is correct.

Somehow using gpt-4o it is not pointing to gpt-4o-2024-08-06 which it should according to the documentation. In any case, explicitly using gpt-4o-2024-08-06 worked for me.