Skip to content

Commit c2a15ae

Browse files
authored
Prepare 2.4.0 release (#660)
1 parent 57c7164 commit c2a15ae

File tree

4 files changed

+131
-6
lines changed

4 files changed

+131
-6
lines changed

CHANGELOG.md

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,130 @@
11
# Release History
22

3+
## 2.4.0 (2025-09-05)
4+
5+
### Features Added
6+
7+
- OpenAI.Audio:
8+
- Added the `Endpoint` property to `AudioClient`.
9+
- OpenAI.Batch:
10+
- Added the `Endpoint` property to `BatchClient`.
11+
- OpenAI.Chat:
12+
- Added the `Endpoint` property to `ChatClient`.
13+
- Added the `ServiceTier` property to `ChatCompletionOptions`, `ChatCompletion`, and `StreamingChatCompletionUpdate` to configure the policy that the server will use to process the request in terms of pricing, performance, etc.
14+
- Added an explicit conversion operator to `ChatCompletion` and `ChatCompletionDeletionResult` to convert from `ClientResult`.
15+
- OpenAI.Containers:
16+
- Added the `Endpoint` property to `ContainerClient`.
17+
- Added convenience counterparts to the protocol methods of `ContainerClient` that use the strongly-typed model classes.
18+
- Added automatic pagination support to the following methods of `ContainerClient`:
19+
- `GetContainers` and `GetContainersAsync`
20+
- `GetContainerFiles` and `GetContainerFilesAsync`
21+
- Added an explicit conversion operator to `ContainerResource`, `ContainerFileResource`, `DeleteContainerResponse`, and `DeleteContainerFileResponse` to convert from `ClientResult`.
22+
- OpenAI.Embeddings:
23+
- Added the `Endpoint` property to `EmbeddingsClient`.
24+
- Added an explicit conversion operator to `OpenAIEmbeddingCollection` to convert from `ClientResult`.
25+
- OpenAI.Evals:
26+
- Added the `Endpoint` property to `EvaluationClient`.
27+
- OpenAI.Files:
28+
- Added the `Endpoint` property to `OpenAIFileClient`.
29+
- Added an explicit conversion operator to `OpenAIFile`, `OpenAIFileCollection`, and `FileDeletionResult` to convert from `ClientResult`.
30+
- OpenAI.FineTuning:
31+
- Added the `Endpoint` property to `FineTuningClient`.
32+
- OpenAI.Graders:
33+
- Added the `Endpoint` property to `GraderClient`.
34+
- Added an explicit conversion operator to `RunGraderResponse` and `ValidateGraderResponse` to convert from `ClientResult`.
35+
- OpenAI.Images:
36+
- Added the `Endpoint` property to `ImageClient`.
37+
- Added an explicit conversion operator to `GeneratedImageCollection` to convert from `ClientResult`.
38+
- Added the `Background` property to `ImageEditOptions` to set transparency for the background of the generated image(s).
39+
- Added the `Quality` property to `ImageEditOptions` to set the quality of the generated image(s).
40+
- OpenAI.Images:
41+
- Added the `Endpoint` property to `ImageClient`.
42+
- Added an explicit conversion operator to `GeneratedImageCollection` to convert from `ClientResult`.
43+
- Added the `Background` property to `ImageEditOptions` to set transparency for the background of the generated image(s).
44+
- Added the `Quality` property to `ImageEditOptions` to set the quality of the generated image(s).
45+
- OpenAI.Models:
46+
- Added the `Endpoint` property to `OpenAIModelClient`.
47+
- Added an explicit conversion operator to `OpenAIModel`, `OpenAIModelCollection`, and `ModelDeletionResult` to convert from `ClientResult`.
48+
- OpenAI.Moderations:
49+
- Added the `Endpoint` property to `ModerationClient`.
50+
- Added an explicit conversion operator to `ModerationResultCollection` to convert from `ClientResult`.
51+
- OpenAI.Realtime:
52+
- Added a constructor that can take a string API key to `RealtimeClient`.
53+
- Added constructors that can take a custom `AuthenticationPolicy` to `RealtimeClient`.
54+
- Added the `Endpoint` property to `RealtimeClient`.
55+
- Replaced the `RequestOptions` parameter of the following methods of `RealtimeClient` for a new `RealtimeSessionOptions` parameter and a `CancellationToken` parameter:
56+
- `StartConversationSession` and `StartConversationSessionAsync`
57+
- `StartTranscriptionSession` and `StartTranscriptionSessionAsync`
58+
- `StartSession` and `StartSessionAsync`
59+
- OpenAI.Responses:
60+
- Added the `Endpoint` property to `OpenAIResponseClient`.
61+
- Added an explicit conversion operator to `OpenAIResponse` to convert from `ClientResult`.
62+
- Added new classes derived from `ResponseTool` to facilitate certain scenarios:
63+
- `FunctionTool`
64+
- `FileSearchTool`
65+
- `WebSearchTool`
66+
- `ComputerTool`
67+
- Added initial support for integrating with remote MCP servers via the Responses API in streaming and non-streaming scenarios.
68+
- Users can add the new `McpTool` to the `Tools` property of their `ResponseCreationOptions` and configure it.
69+
- Use the `AllowedTools` property to limit which of the server tools can be called by the model.
70+
- Use the `ToolCallApprovalPolicy` property to specify which tools require an explicit approval before being called by the model.
71+
- Support for selecting the `McpTool` via the `ToolChoice` property is coming soon.
72+
- Support for configuring the `McpTool` with an access token that can be used to authenticate with the remote MCP server is coming soon.
73+
- Support for connectors is coming soon.
74+
- Added new classes derived from `ResponseMessageAnnotation` to facilitate certain scenarios:
75+
- `FileCitationMessageAnnotation`
76+
- `FilePathMessageAnnotation`
77+
- `UriCitationMessageAnnotation`
78+
- Added the `ServiceTier` property to `ResponseCreationOptions`, `OpenAIResponse`, and `StreamingChatCompletionUpdate` to configure the policy that the server will use to process the request in terms of pricing, performance, etc.
79+
- OpenAI.VectorStores:
80+
- Added the `Endpoint` property to `OpenAIResponseClient`.
81+
- Added an explicit conversion operator to `VectorStore`, `VectorStoreFile`, `VectorStoreFileBatch`, `VectorStoreDeletionResult`, and `FileFromStoreRemovalResult` to convert from `ClientResult`.
82+
83+
### Bug Fixed
84+
85+
- OpenAI.Realtime:
86+
- Fixed an issue with the classes derived from `ResponseItem` (such as `ReasoningResponseItem`) missing some constructors or property setters, which made it difficult to use them as inputs.
87+
- Fixed an issue with the HTTP pipeline of the `RealtimeClient` that was preventing the following methods from working correctly:
88+
- `CreateEphemeralToken` and `CreateEphemeralTokenAsync`
89+
- `CreateEphemeralTranscriptionToken` and `CreateEphemeralTranscriptionTokenAsync`
90+
91+
### Breaking Changes in Preview APIs
92+
93+
- OpenAI.Chat:
94+
- Changed the type of the `options` parameter of the `GetChatCompletionMessages` method of the `ChatClient` from `ChatCompletionCollectionOptions` to `ChatCompletionMessageCollectionOptions`.
95+
- OpenAI.Realtime:
96+
- Replaced the `RequestOptions` parameter for a new `RealtimeSessionOptions` parameter and a `CancellationToken` parameter.
97+
- OpenAI.Responses:
98+
- Renamed the `Background` property to `BackgroundModeEnabled` for clarity.
99+
- Renamed the `ComputerOutput` class to `ComputerCallOutput`.
100+
- Changed the type of the `Delta` property of `StreamingResponseFunctionCallArgumentsDeltaUpdate` from `string` to `BinaryData`.
101+
- Changed the type of the `Arguments` property of `StreamingResponseFunctionCallArgumentsDoneUpdate` from `string` to `BinaryData` and renamed it to `FunctionArguments`.
102+
- Renamed the `WebSearchContextSize` class to `WebSearchToolContextSize`.
103+
- Renamed the `WebSearchUserLocation` class to `WebSearchToolLocation`.
104+
- Refactored the factory methods of `ResponseItem`.
105+
- Refactored the factory methods of `ResponseTool`.
106+
- Removed the properties of `ResponseMessageAnnotation` except for the `Kind` property and moved them to the new derived types.
107+
- OpenAI.VectorStores:
108+
- Removed the `OperationResult` pattern along with the `CreateVectorStoreOperation` `AddFileToVectorStoreOperation`, and `CreateBatchFileJobOperation` classes.
109+
- Renamed the `VectorStoreBatchFileJob` class to `VectorStoreFileBatch`
110+
- Renamed the `VectorStoreFileAssociation` class to `VectorStoreFile`
111+
- Renamed the `VectorStoreFileAssociationError` class to `VectorStoreFileError`
112+
- Renamed the `VectorStoreFileAssociationStatus` class to `VectorStoreFileStatus`
113+
- Renamed the `VectorStoreFileAssociationErrorCode` class to `VectorStoreFileErrorCode`
114+
- Renamed the `VectorStoreFileAssociationCollectionOptions` class to `VectorStoreFileCollectionOptions`
115+
- Renamed the `VectorStoreFileAssociationCollectionOrder` class to `VectorStoreFileCollectionOrder`
116+
- Renamed the `CancelBatchFileJob` and `CancelBatchFileJobAsync` methods of `VectorStoreClient` to `CancelVectorStoreFileBatch` and `CancelVectorStoreFileBatchAsync`
117+
- Renamed the `CreateBatchFileJob` and `CreateBatchFileJobAsync` methods of `VectorStoreClient` to `AddFileBatchToVectorStore` and `AddFileBatchToVectorStoreAsync`
118+
- Renamed the `GetBatchFileJob` and `GetBatchFileJobAsync` methods of `VectorStoreClient` to `GetVectorStoreFileBatch` and `GetVectorStoreFileBatchAsync`
119+
- Renamed the `GetFileAssociation` and `GetFileAssociationAsync` methods of `VectorStoreClient` to `GetVectorStoreFile` and `GetVectorStoreFileAsync`
120+
- Renamed the `GetFileAssociations` and `GetFileAssociationsAsync` methods of `VectorStoreClient` to `GetVectorStoreFiles` and `GetVectorStoreFilesAsync`
121+
- Renamed the `GetFileAssociationsInBatch` and `GetFileAssociationsInBatchAsync` methods of `VectorStoreClient` to `GetVectorStoreFilesInBatch` and `GetVectorStoreFilesInBatchAsync`
122+
- Renamed the `RemoveFileFromStore` and `RemoveFileFromStoreAsync` methods of `VectorStoreClient` to `RemoveFileFromVectorStore` and `RemoveFileFromVectorStoreAsync`
123+
124+
### Other Changes
125+
126+
- Updated the `System.ClientModel` dependency to version 1.6.1.
127+
3128
## 2.3.0 (2025-08-01)
4129

5130
### Features Added

scripts/Export-Api.ps1

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ function Invoke-GenAPI {
107107
Write-Output ""
108108

109109
# System.ClientModel
110-
$systemClientModelPath = Join-Path $nugetPackagesPath "system.clientmodel\1.4.2"
110+
$systemClientModelPath = Join-Path $nugetPackagesPath "system.clientmodel\1.6.1"
111111
$systemClientModelRef = $null
112112
if (Test-Path $systemClientModelPath) {
113113
$systemClientModelRef = Get-ChildItem `
@@ -152,7 +152,7 @@ function Invoke-GenAPI {
152152
Write-Output ""
153153

154154
# System.Memory.Data
155-
$systemMemoryDataPath = Join-Path $nugetPackagesPath "system.memory.data\6.0.1"
155+
$systemMemoryDataPath = Join-Path $nugetPackagesPath "system.memory.data\8.0.1"
156156
$systemMemoryDataRef = $null
157157
if (Test-Path $systemMemoryDataPath) {
158158
$systemMemoryDataRef = Get-ChildItem `
@@ -168,7 +168,7 @@ function Invoke-GenAPI {
168168

169169
if ($TargetFramework -eq "netstandard2.0") {
170170
# System.Diagnostics.DiagnosticSource
171-
$systemDiagnosticsDiagnosticSourcePath = Join-Path $nugetPackagesPath "system.diagnostics.diagnosticsource\6.0.1"
171+
$systemDiagnosticsDiagnosticSourcePath = Join-Path $nugetPackagesPath "system.diagnostics.diagnosticsource\8.0.1"
172172
$systemDiagnosticsDiagnosticSourceRef = $null
173173
if (Test-Path $systemDiagnosticsDiagnosticSourcePath) {
174174
$systemDiagnosticsDiagnosticSourceRef = Get-ChildItem `
@@ -183,7 +183,7 @@ function Invoke-GenAPI {
183183
Write-Output ""
184184

185185
# Microsoft.Bcl.AsyncInterfaces
186-
$microsoftBclAsyncInterfacesPath = Join-Path $nugetPackagesPath "microsoft.bcl.asyncinterfaces\1.1.0"
186+
$microsoftBclAsyncInterfacesPath = Join-Path $nugetPackagesPath "microsoft.bcl.asyncinterfaces\8.0.0"
187187
$microsoftBclAsyncInterfacesRef = $null
188188
if (Test-Path $microsoftBclAsyncInterfacesPath) {
189189
$microsoftBclAsyncInterfacesRef = Get-ChildItem `

scripts/Test-ApiCompatibility.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,5 +177,5 @@ $experimentalNamespaces = @(
177177
Invoke-APICompat -ProjectPath $projectPath `
178178
-ReleasePath $releasePath `
179179
-PackageName "OpenAI" `
180-
-BaselineVersion "2.2.0" `
180+
-BaselineVersion "2.3.0" `
181181
-IgnoredNamespaces $experimentalNamespaces

src/OpenAI.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<PackageLicenseExpression>MIT</PackageLicenseExpression>
99
<Copyright>Copyright (c) 2024 OpenAI (https://openai.com)</Copyright>
1010

11-
<VersionPrefix>2.3.0</VersionPrefix>
11+
<VersionPrefix>2.4.0</VersionPrefix>
1212
<VersionSuffix></VersionSuffix>
1313

1414
<TargetFrameworks>net8.0;netstandard2.0</TargetFrameworks>

0 commit comments

Comments
 (0)