|
1 | 1 | # Release History |
2 | 2 |
|
3 | | -## 2.3.0-beta.1 (Unreleased) |
| 3 | +## 2.3.0 (2025-08-01) |
4 | 4 |
|
5 | | -### Other changes |
| 5 | +### Features Added |
| 6 | + |
| 7 | +- OpenAI.Audio: |
| 8 | + - Added the `Model` property to `AudioClient`. |
| 9 | + - Added constructors that can take a custom `AuthenticationPolicy` to `AudioClient`. |
| 10 | +- OpenAI.Batch: |
| 11 | + - Added new methods to `BatchClient`: |
| 12 | + - `GetBatch` and `GetBatchAsync` |
| 13 | + - Added constructors that can take a custom `AuthenticationPolicy` to `BatchClient`. |
| 14 | +- OpenAI.Chat: |
| 15 | + - Added new methods to `ChatClient`: |
| 16 | + - `UpdateChatCompletion` and `UpdateChatCompletionAsync` |
| 17 | + - `GetChatCompletions` and `GetChatCompletionsAsync` |
| 18 | + - `GetChatCompletionMessages` and `GetChatCompletionMessagesAsync` |
| 19 | + - Added the `Model` property to `ChatClient`. |
| 20 | + - Added constructors that can take a custom `AuthenticationPolicy` to `ChatClient`. |
| 21 | +- OpenAI.Containers: |
| 22 | + - Introduced the new `ContainersClient` to support the Containers API with protocol methods for the following operations: |
| 23 | + - `CreateContainer` and `CreateContainerAsync` |
| 24 | + - `GetContainers` and `GetContainersAsync` |
| 25 | + - `GetContainer` and `GetContainerAsync` |
| 26 | + - `DeleteContainer` and `DeleteContainerAsync` |
| 27 | + - `CreateContainerFile` and `CreateContainerFileAsync` |
| 28 | + - `GetContainerFiles` and `GetContainerFilesAsync` |
| 29 | + - `GetContainerFile` and `GetContainerFileAsync` |
| 30 | + - `GetContainerFileContent` and `GetContainerFileContentAsync` |
| 31 | + - `DeleteContainerFile` and `DeleteContainerFileAsync` |
| 32 | +- OpenAI.Embeddings: |
| 33 | + - Added the `Model` property to `EmbeddingClient`. |
| 34 | + - Added constructors that can take a custom `AuthenticationPolicy` to `EmbeddingClient`. |
| 35 | +- OpenAI.Evals: |
| 36 | + - Added constructors that can take a custom `AuthenticationPolicy` to `EvaluationClient`. |
| 37 | +- OpenAI.Files: |
| 38 | + - Added constructors that can take a custom `AuthenticationPolicy` to `OpenAIFileClient`. |
| 39 | +- OpenAI.FineTuning: |
| 40 | + - Added constructors that can take a custom `AuthenticationPolicy` to `FineTuningClient`. |
| 41 | +- OpenAI.Graders: |
| 42 | + - Introduced the new `GraderClient` to support the Graders API with protocol methods for the following operations: |
| 43 | + - `RunGrader` and `RunGraderAsync` |
| 44 | + - `ValidateGrader` and `ValidateGraderAsync` |
| 45 | +- OpenAI.Images: |
| 46 | + - Added the `Model` property to `ImageClient`. |
| 47 | + - Added constructors that can take a custom `AuthenticationPolicy` to `ImageClient`. |
| 48 | +- OpenAI.Models: |
| 49 | + - Added constructors that can take a custom `AuthenticationPolicy` to `OpenAIModelClient`. |
| 50 | +- OpenAI.Moderations: |
| 51 | + - Added the `Model` property to `ModerationClient`. |
| 52 | + - Added constructors that can take a custom `AuthenticationPolicy` to `ModerationClient`. |
| 53 | +- OpenAI.Realtime: |
| 54 | + - Enabled support for semantic voice activity detection (VAD) via the new `CreateSemanticVoiceActivityTurnDetectionOptions` method of `TurnDetectionOptions`. |
| 55 | +- OpenAI.Responses: |
| 56 | + - Added a model factory. |
| 57 | + - Added constructors that can take a custom `AuthenticationPolicy` to `OpenAIResponseClient`. |
| 58 | +- OpenAI.VectorStores: |
| 59 | + - Added constructors that can take a custom `AuthenticationPolicy` to `VectorStoreClient`. |
| 60 | + |
| 61 | +### Bug Fixed |
| 62 | + |
| 63 | +- OpenAI.Assistants: |
| 64 | + - Fixed an issue causing the `ImageDetail` property of `MessageContent` to not be serialized correctly. |
| 65 | +- OpenAI.Audio: |
| 66 | + - Added a check to all overloads of `TranscribeAudioStreaming` and `TranscribeAudioStreamingAsync` in the `AudioClient` to prevent using the `whisper-1` model, which does not support streaming and simply ignores the `stream` parameter. |
| 67 | +- OpenAI.Realtime: |
| 68 | + - Improved the disposal logic in `AsyncWebsocketMessageResultEnumerator` to prevent multiple disposals. |
| 69 | +- OpenAI.Responses: |
| 70 | + - Fixed an issue in code generation that caused the `StreamingResponseTextAnnotationAddedUpdate` class to not be generated correctly as part of the set of possible handles when streaming. |
| 71 | + - Fixed an issue in code generation that caused the `Status` property of `ReasoningResponseItem` and the `ReasoningStatus` enum to not be generated correctly and lead to incorrect behavior. |
| 72 | + |
| 73 | +### Other Changes |
6 | 74 |
|
7 | | -- Updated to `System.ClientModel` 1.5.1, which contains a fix for a concurrency bug which could cause some applications running on the legacy .NET Framework to experience an infinite loop while deserializing service responses. |
8 | | -- Removed explicit `net6.0` target framework, as this version reached end-of-life in November, 2024 and is no longer maintained nor supported by Microsoft. This does not prevent using the OpenAI library on .NET 6, as the runtime will fallback to the `netstandard2.0` target. |
9 | | -- The NuGet package now contains signed binaries. |
| 75 | +- The `OpenAI` NuGet package now contains signed binaries. |
| 76 | +- Updated the `System.ClientModel` dependency to version 1.5.1, which contains a fix for a concurrency bug which could cause some applications running on the legacy .NET Framework to experience an infinite loop while deserializing service responses. |
| 77 | +- Removed the explicit `net6.0` target framework, as this version reached end-of-life in November 2024 and is no longer maintained nor supported by Microsoft. This does not prevent using the OpenAI library on .NET 6, as the runtime will fallback to the `netstandard2.0` target. |
10 | 78 |
|
11 | 79 | ## 2.2.0 (2025-07-02) |
12 | 80 |
|
|
0 commit comments