diff --git a/src/Extensions/ReasoningEffort.cs b/src/Extensions/ReasoningEffort.cs index 09c7cd9..8b7438c 100644 --- a/src/Extensions/ReasoningEffort.cs +++ b/src/Extensions/ReasoningEffort.cs @@ -1,4 +1,6 @@ -namespace Devlooped.Extensions.AI; +using System.ComponentModel; + +namespace Devlooped.Extensions.AI; /// /// Effort a reasoning model should apply when generating a response. @@ -12,7 +14,9 @@ public enum ReasoningEffort None, /// /// Minimal reasoning effort, which may result in faster responses. Support depends on the model. + /// Unsupported as of gpt-5.1+ /// + [EditorBrowsable(EditorBrowsableState.Never)] Minimal, /// /// Low effort reasoning, which may result in faster responses but less detailed or accurate answers. @@ -25,5 +29,9 @@ public enum ReasoningEffort /// /// High effort reasoning, which may take longer but provides more detailed and accurate responses. /// - High + High, + /// + /// New highest reasoning level as of gpt-5.2+. + /// + XHigh } \ No newline at end of file diff --git a/src/Tests/OpenAITests.cs b/src/Tests/OpenAITests.cs index 9fd1880..c7985ac 100644 --- a/src/Tests/OpenAITests.cs +++ b/src/Tests/OpenAITests.cs @@ -121,12 +121,13 @@ public async Task GPT5_ThinksFast() } [SecretsTheory("OPENAI_API_KEY")] + [InlineData(ReasoningEffort.Minimal, "gpt-5")] // Obsolete as of 5.1 [InlineData(ReasoningEffort.None)] - [InlineData(ReasoningEffort.Minimal)] [InlineData(ReasoningEffort.Low)] [InlineData(ReasoningEffort.Medium)] [InlineData(ReasoningEffort.High)] - public async Task GPT5_ThinkingTime(ReasoningEffort effort) + [InlineData(ReasoningEffort.XHigh)] + public async Task GPT5_ThinkingTime(ReasoningEffort effort, string modelId = "gpt-5.2") { var messages = new Chat() { @@ -136,7 +137,7 @@ public async Task GPT5_ThinkingTime(ReasoningEffort effort) var requests = new List(); - var chat = new OpenAIChatClient(Configuration["OPENAI_API_KEY"]!, "gpt-5.2", + var chat = new OpenAIChatClient(Configuration["OPENAI_API_KEY"]!, modelId, OpenAIClientOptions.Observable(requests.Add).WriteTo(output)); var options = new ChatOptions