Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 60 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,83 @@
# Release History

## 2.6.0-beta.1 (Unreleased)
## 2.6.0 (2025-10-31)

### Acknowledgments

Thank you to our developer community members who helped to make the OpenAI client library better with their contributions to this release:

- Maksim Kurnakov _([GitHub](https://github.com/kurnakovv))_
- Benjamin Pinter _([GitHub](https://github.com/BenjaminDavidPinter))_

### Features Added

- OpenAI.Chat:
- Added the `Minimal` property to `ChatReasoningEffortLevel`_(A community contribution, courtesy of [kurnakovv](https://github.com/kurnakovv))_
- Added the `Minimal` property to `ChatReasoningEffortLevel`. _(A community contribution, courtesy of [kurnakovv](https://github.com/kurnakovv))_
- Added support for System.Client.Model's `JsonPatch`, which enables users to get and set additional JSON properties in response and request payloads.
- See the following examples for more information:
- [AdditionalProperties](https://github.com/openai/openai-dotnet/blob/main/examples/Chat/Example10_AdditionalProperties.cs)
- [AdditionalPropertiesAsync](https://github.com/openai/openai-dotnet/blob/main/examples/Chat/Example10_AdditionalPropertiesAsync.cs)
- Go to the OpenAI.Responses section in this changelog for more examples that can be extrapolated to Chat.
- OpenAI.Conversations:
- Introduced the new `ConversationClient` to support the Conversations API with protocol methods for the following operations:
- `CreateConversation` and `CreateConversationAsync`
- `GetConversation` and `GetConversationAsync`
- `UpdateConversation` and `UpdateConversationAsync`
- `DeleteConversation` and `DeleteConversationAsync`
- `CreateConversationItems` and `CreateConversationItemsAsync`
- `GetConversationItems` and `GetConversationItemsAsync`
- `DeleteConversationItem` and `DeleteConversationItemAsync`
- OpenAI.Embeddings:
- Added support for System.Client.Model's `JsonPatch`, which enables users to get and set additional JSON properties in response and request payloads.
- Go to the OpenAI.Chat and OpenAI.Responses section in this changelog for examples that can be extrapolated to Embeddings.
- OpenAI.Responses:
- Added the `Minimal` property to `ResponseReasoningEffortLevel`. _(A community contribution, courtesy of [kurnakovv](https://github.com/kurnakovv))_
- Added the `ContainerFileCitationMessageAnnotation` class which is derived from `ResponseMessageAnnotation` and is used to cite files in the container of the Code Interpreter tool.
- Enabled support for the Image Generation tool, which can be used to generate images using models like `gpt-image-1`.
- Users can add the new `ImageGenerationTool` to the `Tools` property of their `ResponseCreationOptions` and configure it using properties such as `Background`, `Quality`, `Size`, and more.
- Added support for System.Client.Model's `JsonPatch`, which enables users to get and set additional JSON properties in response and request payloads.
- See the following examples for more information:
- [InputAdditionalProperties](https://github.com/openai/openai-dotnet/blob/main/examples/Responses/Example07_InputAdditionalProperties.cs)
- [InputAdditionalPropertiesAsync](https://github.com/openai/openai-dotnet/blob/main/examples/Responses/Example07_InputAdditionalPropertiesAsync.cs)
- [OutputAdditionalProperties](https://github.com/openai/openai-dotnet/blob/main/examples/Responses/Example08_OutputAdditionalProperties.cs)
- [OutputAdditionalPropertiesAsync](https://github.com/openai/openai-dotnet/blob/main/examples/Responses/Example08_OutputAdditionalPropertiesAsync.cs)
- [ModelOverridePerRequest](https://github.com/openai/openai-dotnet/blob/main/examples/Responses/Example09_ModelOverridePerRequest.cs)
- [ModelOverridePerRequestAsync](https://github.com/openai/openai-dotnet/blob/main/examples/Responses/Example09_ModelOverridePerRequestAsync.cs)
- Go to the OpenAI.Chat section for more examples that can be extrapolated to Responses.
- OpenAI.Videos:
- Introduced the new `VideoClient` to support the Videos API with protocol methods for the following operations:
- `CreateVideo` and `CreateVideoAsync`
- `GetVideo` and `GetVideoAsync`
- `DeleteVideo` and `DeleteVideoAsync`
- `DownloadVideo` and `DownloadVideoAsync`
- `GetVideos` and `GetVideosAsync`
- `CreateVideoRemix` and `GetVideoRemixAsync`

### Bugs Fixed

- OpenAI.Audio:
- Added the explicit conversion operators from `ClientResult` that were missing in the `AudioTranscription` and `AudioTranslation` classes.
- OpenAI.Chat:
- Added the `ContentParts` property that was missing in the `ChatCompletionMessageListDatum` class.

### Breaking Changes in Preview APIs

- OpenAI.Containers:
- Renamed the `GetContainerFileContent` and `GetContainerFileContentAsync` methods of `ContainerClient` to `DownloadContainerFile` and `DownloadContainerFileAsync`.
- OpenAI.Responses:
- Added the `Minimal` property to `ResponseReasoningEffortLevel` _(A community contribution, courtesy of [kurnakovv](https://github.com/kurnakovv))_
- Added the `Model` property to `OpenAIResponseClient` _(A community contribution, courtesy of [BenjaminDavidPinter](https://github.com/BenjaminDavidPinter))_
- Removed the duplicated `GetInputItems` and `GetInputItemsAsync` methods of the `OpenAIResponseClient` in favor of the existing `GetResponseInputItems` and `GetResponseInputItemsAsync` methods.

## 2.5.0 (2025-09-23)

### Acknowledgments

Thank you to our developer community members who helped to make the OpenAI client library better with their contributions to this release:

- Benjamin Pinter _([GitHub](https://github.com/BenjaminDavidPinter))_

### Features Added

- OpenAI.Responses:
- Added the `Model` property to `OpenAIResponseClient`.
- Added the `Model` property to `OpenAIResponseClient`. _(A community contribution, courtesy of [BenjaminDavidPinter](https://github.com/BenjaminDavidPinter))_
- Added the `ServiceDescription` property to `McpTool`.
- Enabled support for connectors, which are OpenAI-maintained MCP wrappers for popular services like Microsoft Outlook or Dropbox.
- Added the `ConnectorId` property to `McpTool`.
Expand Down
2 changes: 1 addition & 1 deletion scripts/Test-ApiCompatibility.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -177,5 +177,5 @@ $experimentalNamespaces = @(
Invoke-APICompat -ProjectPath $projectPath `
-ReleasePath $releasePath `
-PackageName "OpenAI" `
-BaselineVersion "2.4.0" `
-BaselineVersion "2.5.0" `
-IgnoredNamespaces $experimentalNamespaces
2 changes: 1 addition & 1 deletion src/OpenAI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<Copyright>Copyright (c) 2024 OpenAI (https://openai.com)</Copyright>

<VersionPrefix>2.5.0</VersionPrefix>
<VersionPrefix>2.6.0</VersionPrefix>
<VersionSuffix></VersionSuffix>

<TargetFrameworks>net8.0;netstandard2.0</TargetFrameworks>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,53 +6,53 @@
"RequestHeaders": {
"Accept": "application/json",
"Authorization": "Sanitized",
"Content-Length": "659",
"Content-Type": "multipart/form-data; boundary=\"gAmiSrhc65BG6KcHEhVjbuV5zTonsC__zDrx1FxRAon9ZjTn4yhejLcEfpMIIFirptWP9z\"",
"User-Agent": "OpenAI/2.5.0 (.NET 9.0.10; Darwin 25.0.0 Darwin Kernel Version 25.0.0: Wed Sep 17 21:42:08 PDT 2025; root:xnu-12377.1.9~141/RELEASE_ARM64_T8132)"
"Content-Length": "660",
"Content-Type": "multipart/form-data; boundary=\"VdHogfBtMIGdWFtSYwyAATn6gopNHVpn76W4smhRQcLIvOtEbXj1BVwvVvnQA6iX1JCx8o\"",
"User-Agent": "OpenAI/2.6.0 (.NET 9.0.10; Microsoft Windows 10.0.26200)"
},
"RequestBody": [
"--gAmiSrhc65BG6KcHEhVjbuV5zTonsC__zDrx1FxRAon9ZjTn4yhejLcEfpMIIFirptWP9z\r\n",
"--VdHogfBtMIGdWFtSYwyAATn6gopNHVpn76W4smhRQcLIvOtEbXj1BVwvVvnQA6iX1JCx8o\r\n",
"Content-Disposition: form-data; name=file; filename=test-batch-file; filename*=utf-8''test-batch-file\r\n",
"\r\n",
"b64:eyJjdXN0b21faWQiOiAicmVxdWVzdC0xIiwgIm1ldGhvZCI6ICJQT1NUIiwgInVybCI6ICIvdjEvY2hhdC9jb21wbGV0aW9ucyIsICJib2R5IjogeyJtb2RlbCI6ICJncHQtNG8tbWluaSIsICJtZXNzYWdlcyI6IFt7InJvbGUiOiAic3lzdGVtIiwgImNvbnRlbnQiOiAiWW91IGFyZSBhIGhlbHBmdWwgYXNzaXN0YW50LiJ9LCB7InJvbGUiOiAidXNlciIsICJjb250ZW50IjogIldoYXQgaXMgMisyPyJ9XX19Cg==",
"b64:eyJjdXN0b21faWQiOiAicmVxdWVzdC0xIiwgIm1ldGhvZCI6ICJQT1NUIiwgInVybCI6ICIvdjEvY2hhdC9jb21wbGV0aW9ucyIsICJib2R5IjogeyJtb2RlbCI6ICJncHQtNG8tbWluaSIsICJtZXNzYWdlcyI6IFt7InJvbGUiOiAic3lzdGVtIiwgImNvbnRlbnQiOiAiWW91IGFyZSBhIGhlbHBmdWwgYXNzaXN0YW50LiJ9LCB7InJvbGUiOiAidXNlciIsICJjb250ZW50IjogIldoYXQgaXMgMisyPyJ9XX19DQo=",
"\r\n",
"--gAmiSrhc65BG6KcHEhVjbuV5zTonsC__zDrx1FxRAon9ZjTn4yhejLcEfpMIIFirptWP9z\r\n",
"--VdHogfBtMIGdWFtSYwyAATn6gopNHVpn76W4smhRQcLIvOtEbXj1BVwvVvnQA6iX1JCx8o\r\n",
"Content-Type: text/plain; charset=utf-8\r\n",
"Content-Disposition: form-data; name=purpose\r\n",
"\r\n",
"batch",
"\r\n",
"--gAmiSrhc65BG6KcHEhVjbuV5zTonsC__zDrx1FxRAon9ZjTn4yhejLcEfpMIIFirptWP9z--\r\n"
"--VdHogfBtMIGdWFtSYwyAATn6gopNHVpn76W4smhRQcLIvOtEbXj1BVwvVvnQA6iX1JCx8o--\r\n"
],
"StatusCode": 200,
"ResponseHeaders": {
"Access-Control-Allow-Origin": "*",
"Alt-Svc": "h3=\":443\"",
"cf-cache-status": "DYNAMIC",
"CF-RAY": "995487ac9c896bdd-DFW",
"CF-RAY": "99717bb70a310933-SEA",
"Connection": "keep-alive",
"Content-Length": "240",
"Content-Type": "application/json",
"Date": "Mon, 27 Oct 2025 19:16:49 GMT",
"Date": "Fri, 31 Oct 2025 07:36:46 GMT",
"openai-organization": "Sanitized",
"openai-processing-ms": "315",
"openai-processing-ms": "359",
"openai-project": "Sanitized",
"openai-version": "2020-10-01",
"Server": "cloudflare",
"Strict-Transport-Security": "max-age=31536000; includeSubDomains; preload",
"X-Content-Type-Options": "nosniff",
"x-envoy-upstream-service-time": "327",
"x-envoy-upstream-service-time": "373",
"x-openai-proxy-wasm": "v0.1",
"X-Request-ID": "Sanitized"
},
"ResponseBody": {
"object": "file",
"id": "file-NUKUTbm5g2HzBc6eztYyHh",
"id": "file-VexCdh2zzKqH8ZcpoqRXPD",
"purpose": "batch",
"filename": "test-batch-file",
"bytes": 232,
"created_at": 1761592608,
"expires_at": 1764184608,
"bytes": 233,
"created_at": 1761896206,
"expires_at": 1764488206,
"status": "processed",
"status_details": null
}
Expand All @@ -65,10 +65,10 @@
"Authorization": "Sanitized",
"Content-Length": "160",
"Content-Type": "application/json",
"User-Agent": "OpenAI/2.5.0 (.NET 9.0.10; Darwin 25.0.0 Darwin Kernel Version 25.0.0: Wed Sep 17 21:42:08 PDT 2025; root:xnu-12377.1.9~141/RELEASE_ARM64_T8132)"
"User-Agent": "OpenAI/2.6.0 (.NET 9.0.10; Microsoft Windows 10.0.26200)"
},
"RequestBody": {
"input_file_id": "file-NUKUTbm5g2HzBc6eztYyHh",
"input_file_id": "file-VexCdh2zzKqH8ZcpoqRXPD",
"endpoint": "/v1/chat/completions",
"completion_window": "24h",
"metadata": {
Expand All @@ -79,36 +79,36 @@
"ResponseHeaders": {
"Alt-Svc": "h3=\":443\"",
"cf-cache-status": "DYNAMIC",
"CF-RAY": "995487af1f376bdd-DFW",
"CF-RAY": "99717bbabc620933-SEA",
"Connection": "keep-alive",
"Content-Length": "886",
"Content-Type": "application/json",
"Date": "Mon, 27 Oct 2025 19:16:49 GMT",
"Date": "Fri, 31 Oct 2025 07:36:47 GMT",
"openai-organization": "Sanitized",
"openai-processing-ms": "218",
"openai-processing-ms": "592",
"openai-project": "Sanitized",
"openai-version": "2020-10-01",
"Server": "cloudflare",
"Strict-Transport-Security": "max-age=31536000; includeSubDomains; preload",
"X-Content-Type-Options": "nosniff",
"x-envoy-upstream-service-time": "222",
"x-envoy-upstream-service-time": "595",
"x-openai-proxy-wasm": "v0.1",
"X-Request-ID": "Sanitized"
},
"ResponseBody": {
"id": "batch_68ffc52151448190afaff0bd92164896",
"id": "batch_6904670e9638819082caf7bd85838f00",
"object": "batch",
"endpoint": "/v1/chat/completions",
"model": null,
"errors": null,
"input_file_id": "file-NUKUTbm5g2HzBc6eztYyHh",
"input_file_id": "file-VexCdh2zzKqH8ZcpoqRXPD",
"completion_window": "24h",
"status": "validating",
"output_file_id": null,
"error_file_id": null,
"created_at": 1761592609,
"created_at": 1761896206,
"in_progress_at": null,
"expires_at": 1761679009,
"expires_at": 1761982606,
"finalizing_at": null,
"completed_at": null,
"failed_at": null,
Expand Down Expand Up @@ -137,48 +137,48 @@
}
},
{
"RequestUri": "https://api.openai.com/v1/batches/batch_68ffc52151448190afaff0bd92164896",
"RequestUri": "https://api.openai.com/v1/batches/batch_6904670e9638819082caf7bd85838f00",
"RequestMethod": "GET",
"RequestHeaders": {
"Accept": "application/json",
"Authorization": "Sanitized",
"User-Agent": "OpenAI/2.5.0 (.NET 9.0.10; Darwin 25.0.0 Darwin Kernel Version 25.0.0: Wed Sep 17 21:42:08 PDT 2025; root:xnu-12377.1.9~141/RELEASE_ARM64_T8132)"
"User-Agent": "OpenAI/2.6.0 (.NET 9.0.10; Microsoft Windows 10.0.26200)"
},
"RequestBody": null,
"StatusCode": 200,
"ResponseHeaders": {
"Alt-Svc": "h3=\":443\"",
"cf-cache-status": "DYNAMIC",
"CF-RAY": "995487b1999e6bdd-DFW",
"CF-RAY": "99717bbf3f340933-SEA",
"Connection": "keep-alive",
"Content-Length": "886",
"Content-Type": "application/json",
"Date": "Mon, 27 Oct 2025 19:16:49 GMT",
"Date": "Fri, 31 Oct 2025 07:36:47 GMT",
"openai-organization": "Sanitized",
"openai-processing-ms": "28",
"openai-processing-ms": "82",
"openai-project": "Sanitized",
"openai-version": "2020-10-01",
"Server": "cloudflare",
"Strict-Transport-Security": "max-age=31536000; includeSubDomains; preload",
"X-Content-Type-Options": "nosniff",
"x-envoy-upstream-service-time": "31",
"x-envoy-upstream-service-time": "91",
"x-openai-proxy-wasm": "v0.1",
"X-Request-ID": "Sanitized"
},
"ResponseBody": {
"id": "batch_68ffc52151448190afaff0bd92164896",
"id": "batch_6904670e9638819082caf7bd85838f00",
"object": "batch",
"endpoint": "/v1/chat/completions",
"model": null,
"errors": null,
"input_file_id": "file-NUKUTbm5g2HzBc6eztYyHh",
"input_file_id": "file-VexCdh2zzKqH8ZcpoqRXPD",
"completion_window": "24h",
"status": "validating",
"output_file_id": null,
"error_file_id": null,
"created_at": 1761592609,
"created_at": 1761896206,
"in_progress_at": null,
"expires_at": 1761679009,
"expires_at": 1761982606,
"finalizing_at": null,
"completed_at": null,
"failed_at": null,
Expand Down
Loading
Loading