Skip to content

Commit 92dffc2

Browse files
authored
Fix ReasoningResponseItem's Status property not generating correctly (#567)
The `Status` property of `ReasoningResponseItem` was missing in the specification and consequently it was not being generated correctly.
1 parent 3907f7b commit 92dffc2

File tree

13 files changed

+85
-12
lines changed

13 files changed

+85
-12
lines changed

api/OpenAI.net8.0.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,6 +1056,7 @@ public class AudioClient {
10561056
public AudioClient(string model, ApiKeyCredential credential, OpenAIClientOptions options);
10571057
public AudioClient(string model, ApiKeyCredential credential);
10581058
public AudioClient(string model, string apiKey);
1059+
[Experimental("OPENAI001")]
10591060
public string Model { get; }
10601061
public ClientPipeline Pipeline { get; }
10611062
public virtual ClientResult GenerateSpeech(BinaryContent content, RequestOptions options = null);
@@ -1404,6 +1405,7 @@ public class ChatClient {
14041405
public ChatClient(string model, ApiKeyCredential credential, OpenAIClientOptions options);
14051406
public ChatClient(string model, ApiKeyCredential credential);
14061407
public ChatClient(string model, string apiKey);
1408+
[Experimental("OPENAI001")]
14071409
public string Model { get; }
14081410
public ClientPipeline Pipeline { get; }
14091411
public virtual ClientResult<ChatCompletion> CompleteChat(params ChatMessage[] messages);
@@ -2279,6 +2281,7 @@ public class EmbeddingClient {
22792281
public EmbeddingClient(string model, ApiKeyCredential credential, OpenAIClientOptions options);
22802282
public EmbeddingClient(string model, ApiKeyCredential credential);
22812283
public EmbeddingClient(string model, string apiKey);
2284+
[Experimental("OPENAI001")]
22822285
public string Model { get; }
22832286
public ClientPipeline Pipeline { get; }
22842287
public virtual ClientResult<OpenAIEmbedding> GenerateEmbedding(string input, EmbeddingGenerationOptions options = null, CancellationToken cancellationToken = default);
@@ -3242,6 +3245,7 @@ public class ImageClient {
32423245
public ImageClient(string model, ApiKeyCredential credential, OpenAIClientOptions options);
32433246
public ImageClient(string model, ApiKeyCredential credential);
32443247
public ImageClient(string model, string apiKey);
3248+
[Experimental("OPENAI001")]
32453249
public string Model { get; }
32463250
public ClientPipeline Pipeline { get; }
32473251
public virtual ClientResult<GeneratedImage> GenerateImage(string prompt, ImageGenerationOptions options = null, CancellationToken cancellationToken = default);
@@ -3429,6 +3433,7 @@ public class ModerationClient {
34293433
public ModerationClient(string model, ApiKeyCredential credential, OpenAIClientOptions options);
34303434
public ModerationClient(string model, ApiKeyCredential credential);
34313435
public ModerationClient(string model, string apiKey);
3436+
[Experimental("OPENAI001")]
34323437
public string Model { get; }
34333438
public ClientPipeline Pipeline { get; }
34343439
public virtual ClientResult ClassifyText(BinaryContent content, RequestOptions options = null);
@@ -4610,6 +4615,7 @@ public class OpenAIResponseClient {
46104615
public virtual CollectionResult<StreamingResponseUpdate> GetResponseStreaming(string responseId, int? startingAfter = null, CancellationToken cancellationToken = default);
46114616
public virtual AsyncCollectionResult<StreamingResponseUpdate> GetResponseStreamingAsync(string responseId, int? startingAfter = null, CancellationToken cancellationToken = default);
46124617
}
4618+
[Experimental("OPENAI001")]
46134619
public static class OpenAIResponsesModelFactory {
46144620
public static MessageResponseItem MessageResponseItem(string id = null, MessageRole role = MessageRole.Assistant, MessageStatus? status = null);
46154621
public static OpenAIResponse OpenAIResponse(string id = null, DateTimeOffset createdAt = default, ResponseStatus? status = null, ResponseError error = null, ResponseTokenUsage usage = null, string endUserId = null, ResponseReasoningOptions reasoningOptions = null, int? maxOutputTokenCount = null, ResponseTextOptions textOptions = null, ResponseTruncationMode? truncationMode = null, ResponseIncompleteStatusDetails incompleteStatusDetails = null, IEnumerable<ResponseItem> outputItems = null, bool parallelToolCallsEnabled = false, ResponseToolChoice toolChoice = null, string model = null, IDictionary<string, string> metadata = null, float? temperature = null, float? topP = null, string previousResponseId = null, bool? background = null, string instructions = null, IEnumerable<ResponseTool> tools = null);

codegen/generator/src/OpenAILibraryVisitor.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public class OpenAILibraryVisitor : ScmLibraryVisitor
4343
["FunctionCallResponseItem"] = [_readonlyStatusReplacementInfo],
4444
["FunctionCallOutputResponseItem"] = [_readonlyStatusReplacementInfo],
4545
["MessageResponseItem"] = [_readonlyStatusReplacementInfo],
46+
["ReasoningResponseItem"] = [_readonlyStatusReplacementInfo],
4647
["WebSearchCallResponseItem"] = [_readonlyStatusReplacementInfo],
4748
};
4849

src/Custom/Audio/AudioClient.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ protected internal AudioClient(ClientPipeline pipeline, string model, OpenAIClie
9191
/// <summary>
9292
/// Gets the name of the model used in requests sent to the service.
9393
/// </summary>
94+
[Experimental("OPENAI001")]
9495
public string Model => _model;
9596

9697
#region GenerateSpeech

src/Custom/Chat/ChatClient.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ protected internal ChatClient(ClientPipeline pipeline, string model, OpenAIClien
103103
/// <summary>
104104
/// Gets the name of the model used in requests sent to the service.
105105
/// </summary>
106+
[Experimental("OPENAI001")]
106107
public string Model => _model;
107108

108109
/// <summary> Generates a completion for the given chat. </summary>

src/Custom/Embeddings/EmbeddingClient.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.ClientModel;
33
using System.ClientModel.Primitives;
44
using System.Collections.Generic;
5+
using System.Diagnostics.CodeAnalysis;
56
using System.IO;
67
using System.Linq;
78
using System.Text.Json;
@@ -92,6 +93,7 @@ protected internal EmbeddingClient(ClientPipeline pipeline, string model, OpenAI
9293
/// <summary>
9394
/// Gets the name of the model used in requests sent to the service.
9495
/// </summary>
96+
[Experimental("OPENAI001")]
9597
public string Model => _model;
9698

9799
// CUSTOM: Added to simplify generating a single embedding from a string input.

src/Custom/Images/ImageClient.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.ClientModel;
33
using System.ClientModel.Primitives;
4+
using System.Diagnostics.CodeAnalysis;
45
using System.IO;
56
using System.Linq;
67
using System.Threading;
@@ -86,10 +87,11 @@ protected internal ImageClient(ClientPipeline pipeline, string model, OpenAIClie
8687
Pipeline = pipeline;
8788
_endpoint = OpenAIClient.GetEndpoint(options);
8889
}
89-
90+
9091
/// <summary>
9192
/// Gets the name of the model used in requests sent to the service.
9293
/// </summary>
94+
[Experimental("OPENAI001")]
9395
public string Model => _model;
9496

9597
#region GenerateImages

src/Custom/Moderations/ModerationClient.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.ClientModel;
33
using System.ClientModel.Primitives;
44
using System.Collections.Generic;
5+
using System.Diagnostics.CodeAnalysis;
56
using System.IO;
67
using System.Linq;
78
using System.Text.Json;
@@ -92,6 +93,7 @@ protected internal ModerationClient(ClientPipeline pipeline, string model, OpenA
9293
/// <summary>
9394
/// Gets the name of the model used in requests sent to the service.
9495
/// </summary>
96+
[Experimental("OPENAI001")]
9597
public string Model => _model;
9698

9799
/// <summary> Classifies if the text input is potentially harmful across several categories. </summary>

src/Custom/Responses/Items/ReasoningResponseItem.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,23 @@ public partial class ReasoningResponseItem
1111
{
1212
// CUSTOM: Retain optionality of OpenAPI read-only property value
1313
[CodeGenMember("Status")]
14-
public ReasoningStatus? Status { get; internal set; }
14+
public ReasoningStatus? Status { get; }
1515

1616
// CUSTOM: Rename for collection clarity
1717
[CodeGenMember("Summary")]
1818
public IReadOnlyList<ReasoningSummaryPart> SummaryParts { get; }
1919

2020
// CUSTOM: Enable reuse as an input model
2121
public ReasoningResponseItem(IEnumerable<ReasoningSummaryPart> summaryParts)
22-
: this(id: null, summaryParts)
23-
{ }
22+
: this(id: null, status: null, summaryParts)
23+
{
24+
}
2425

2526
// CUSTOM: Facilitate typical single-item summary text input model use
2627
public ReasoningResponseItem(string summaryText)
2728
: this(summaryParts: [new ReasoningSummaryTextPart(summaryText)])
28-
{ }
29+
{
30+
}
2931

3032
// CUSTOM: Provide convenience for typical single-item or text-concatenation scenario
3133
public string GetSummaryText()

src/Custom/Responses/Items/ReasoningStatus.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace OpenAI.Responses;
66
// - Added Experimental attribute.
77
// - Renamed.
88
[Experimental("OPENAI001")]
9-
[CodeGenType("ReasoningItemStatus")]
9+
[CodeGenType("ReasoningItemResourceStatus")]
1010
public enum ReasoningStatus
1111
{
1212
InProgress,

src/Custom/Responses/OpenAIResponsesModelFactory.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,9 @@ public static ReasoningResponseItem ReasoningResponseItem(
102102
id: id,
103103
additionalBinaryDataProperties: null,
104104
encryptedContent: encryptedContent,
105+
status: status,
105106
summaryParts: summaryParts.ToList());
106107

107-
item.Status = status;
108108
return item;
109109
}
110110

@@ -129,9 +129,9 @@ public static ReasoningResponseItem ReasoningResponseItem(
129129
id: id,
130130
additionalBinaryDataProperties: null,
131131
encryptedContent: encryptedContent,
132+
status: status,
132133
summaryParts: summaryParts);
133134

134-
item.Status = status;
135135
return item;
136136
}
137137

0 commit comments

Comments
 (0)