Skip to content

Commit

Permalink
Prepare 2.0.0-beta.12 release (Part 1) (#216)
Browse files Browse the repository at this point in the history
### Features Added

- The library now includes support for the new [OpenAI o1](https://openai.com/o1/) model family.
  - `ChatCompletionOptions` will automatically apply its `MaxOutputTokenCount` value (renamed from `MaxTokens`) to the new `max_completion_tokens` request body property
  - `Usage` includes a new `OutputTokenDetails` property with a `ReasoningTokenCount` value that will reflect `o1` model use of this new subcategory of output tokens.
	- Note that `OutputTokenCount` (`completion_tokens`) is the *sum* of displayed tokens generated by the model *and* (when applicable) these new reasoning tokens
- Assistants file search now includes support for `RankingOptions`
  - Use of the `include[]` query string parameter and retrieval of run step detail result content is currently only available via protocol methods
- Added support for the Uploads API in `FileClient`. This `Experimental` feature allows uploading large files in multiple parts.
  - The feature is supported by the `CreateUpload`, `AddUploadPart`, `CompleteUpload`, and `CancelUpload` protocol methods.

### Breaking Changes

- Renamed `ChatMessageContentPart`'s `CreateTextMessageContentPart` factory method to `CreateTextPart`.
- Renamed `ChatMessageContentPart`'s `CreateImageMessageContentPart` factory method to `CreateImagePart`.
- Renamed `ChatMessageContentPart`'s `CreateRefusalMessageContentPart` factory method to `CreateRefusalPart`.
- Renamed `ImageChatMessageContentPartDetail` to `ChatImageDetailLevel`.
- Removed `ChatMessageContentPart`'s `ToString` overload.
- Renamed the `MaxTokens` property in `ChatCompletionOptions` to `MaxOutputTokenCount`
- Renamed properties in `ChatTokenUsage`:
  - `InputTokens` is renamed to `InputTokenCount`
  - `OutputTokens` is renamed to `OutputTokenCount`
  - `TotalTokens` is renamed to `TotalTokenCount`
- Removed the common `ListOrder` enum from the top-level `OpenAI` namespace in favor of individual enums in their corresponding sub-namespace.
- Renamed the `PageSize` property to `PageSizeLimit`.
- Updated deletion methods to return a result object instead of a `bool`. Affected methods:
  - `DeleteAssitant`, `DeleteMessage`, and `DeleteThread` in `AssistantClient`.
  - `DeleteVectorStore` and `RemoveFileFromStore` in `VectorStoreClient`.
  - `DeleteModel` in `ModelClient`.
  - `DeleteFile` in `FileClient`.
- Removed setters from collection properties.
- Renamed `ChatTokenLogProbabilityInfo` to `ChatTokenLogProbabilityDetails`.
- Renamed `ChatTokenTopLogProbabilityInfo` to `ChatTokenTopLogProbabilityDetails`.
- Renamed the `Utf8ByteValues` properties of `ChatTokenLogProbabilityDetails` and `ChatTokenTopLogProbabilityDetails` to `Utf8Bytes` and changed their type from `IReadOnlyList<int>` to `ReadOnlyMemory<byte>?`.
- Renamed the `Start` and `End` properties of `TranscribedSegment` and `TranscribedWord` to `StartTime` and `EndTime`.
- Changed the type of `TranscribedSegment`'s `AverageLogProbability` and `NoSpeechProbability` properties from `double` to `float`.
- Changed the type of `TranscribedSegment`'s `SeekOffset` property from `long` to `int`.
- Changed the type of `TranscribedSegment`'s `TokenIds` property from `IReadOnlyList<long>` to `IReadOnlyList<int>`.
- Updated the `Embedding.Vector` property to the `Embedding.ToFloats()` method.
- Removed the optional parameter from the constructors of `VectorStoreCreationHelper`, `AssistantChatMessage`, and `ChatFunction`.
- Removed the optional `purpose` parameter from `FileClient.GetFilesAsync` and `FileClient.GetFiles` methods, and added overloads where `purpose` is required.
- Renamed `ModerationClient`'s `ClassifyTextInput` methods to `ClassifyText`.
- Removed duplicated `Created` property from `GeneratedImageCollection`.

### Bugs Fixed

- Addressed an issue that caused multi-page queries of fine-tuning jobs, checkpoints, and events to fail.
- `ChatCompletionOptions` can now be serialized via `ModelReaderWriter.Write()` prior to calling `CompleteChat` using the options

### Other Changes

- Added support for `CancellationToken` to `ModelClient` methods.
- Applied the `Obsolete` attribute where appropriate to align with the existing deprecations in the REST API.
  • Loading branch information
joseharriaga authored Sep 20, 2024
1 parent dce79fc commit 2ab1a94
Show file tree
Hide file tree
Showing 393 changed files with 16,877 additions and 7,106 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/live-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
- name: Run live tests
run: dotnet test ./tests/OpenAI.Tests.csproj
--configuration Release
--filter="TestCategory!=Smoke&TestCategory!=Images&TestCategory!=Moderations&TestCategory!=Manual"
--filter="TestCategory!=Smoke&TestCategory!=Images&TestCategory!=Uploads&TestCategory!=Moderations&TestCategory!=Manual"
--logger "trx;LogFilePrefix=live"
--results-directory ${{github.workspace}}/artifacts/test-results
${{ env.version_suffix_args}}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
- name: Run Live Tests
run: dotnet test ./tests/OpenAI.Tests.csproj
--configuration Release
--filter="TestCategory!=Smoke&TestCategory!=Images&TestCategory!=Moderations&TestCategory!=Manual"
--filter="TestCategory!=Smoke&TestCategory!=Images&TestCategory!=Uploads&TestCategory!=Moderations&TestCategory!=Manual"
--logger "trx;LogFilePrefix=live"
--results-directory ${{ github.workspace }}/artifacts/test-results
${{ env.version_suffix_args }}
Expand Down
56 changes: 56 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,61 @@
# Release History

## 2.0.0-beta.12 (Unreleased)

### Features Added

- The library now includes support for the new [OpenAI o1](https://openai.com/o1/) model family.
- `ChatCompletionOptions` will automatically apply its `MaxOutputTokenCount` value (renamed from `MaxTokens`) to the new `max_completion_tokens` request body property
- `Usage` includes a new `OutputTokenDetails` property with a `ReasoningTokenCount` value that will reflect `o1` model use of this new subcategory of output tokens.
- Note that `OutputTokenCount` (`completion_tokens`) is the *sum* of displayed tokens generated by the model *and* (when applicable) these new reasoning tokens
- Assistants file search now includes support for `RankingOptions`
- Use of the `include[]` query string parameter and retrieval of run step detail result content is currently only available via protocol methods
- Added support for the Uploads API in `FileClient`. This `Experimental` feature allows uploading large files in multiple parts.
- The feature is supported by the `CreateUpload`, `AddUploadPart`, `CompleteUpload`, and `CancelUpload` protocol methods.

### Breaking Changes

- Renamed `ChatMessageContentPart`'s `CreateTextMessageContentPart` factory method to `CreateTextPart`. (commit_hash)
- Renamed `ChatMessageContentPart`'s `CreateImageMessageContentPart` factory method to `CreateImagePart`. (commit_hash)
- Renamed `ChatMessageContentPart`'s `CreateRefusalMessageContentPart` factory method to `CreateRefusalPart`. (commit_hash)
- Renamed `ImageChatMessageContentPartDetail` to `ChatImageDetailLevel`.
- Removed `ChatMessageContentPart`'s `ToString` overload. (commit_hash)
- Renamed the `MaxTokens` property in `ChatCompletionOptions` to `MaxOutputTokenCount`
- Renamed properties in `ChatTokenUsage`:
- `InputTokens` is renamed to `InputTokenCount`
- `OutputTokens` is renamed to `OutputTokenCount`
- `TotalTokens` is renamed to `TotalTokenCount`
- Removed the common `ListOrder` enum from the top-level `OpenAI` namespace in favor of individual enums in their corresponding sub-namespace. (commit_hash)
- Renamed the `PageSize` property to `PageSizeLimit`. (commit_hash)
- Updated deletion methods to return a result object instead of a `bool`. Affected methods:
- `DeleteAssitant`, `DeleteMessage`, and `DeleteThread` in `AssistantClient`.
- `DeleteVectorStore` and `RemoveFileFromStore` in `VectorStoreClient`.
- `DeleteModel` in `ModelClient`.
- `DeleteFile` in `FileClient`.
- Removed setters from collection properties. (commit_hash)
- Renamed `ChatTokenLogProbabilityInfo` to `ChatTokenLogProbabilityDetails`. (commit_hash)
- Renamed `ChatTokenTopLogProbabilityInfo` to `ChatTokenTopLogProbabilityDetails`. (commit_hash)
- Renamed the `Utf8ByteValues` properties of `ChatTokenLogProbabilityDetails` and `ChatTokenTopLogProbabilityDetails` to `Utf8Bytes` and changed their type from `IReadOnlyList<int>` to `ReadOnlyMemory<byte>?`. (commit_hash)
- Renamed the `Start` and `End` properties of `TranscribedSegment` and `TranscribedWord` to `StartTime` and `EndTime`. (commit_hash)
- Changed the type of `TranscribedSegment`'s `AverageLogProbability` and `NoSpeechProbability` properties from `double` to `float`. (commit_hash)
- Changed the type of `TranscribedSegment`'s `SeekOffset` property from `long` to `int`. (commit_hash)
- Changed the type of `TranscribedSegment`'s `TokenIds` property from `IReadOnlyList<long>` to `IReadOnlyList<int>`. (commit_hash)
- Updated the `Embedding.Vector` property to the `Embedding.ToFloats()` method. (commit_hash)
- Removed the optional parameter from the constructors of `VectorStoreCreationHelper`, `AssistantChatMessage`, and `ChatFunction`. (commit_hash)
- Removed the optional `purpose` parameter from `FileClient.GetFilesAsync` and `FileClient.GetFiles` methods, and added overloads where `purpose` is required. (commit_hash)
- Renamed `ModerationClient`'s `ClassifyTextInput` methods to `ClassifyText`. (commit_hash)
- Removed duplicated `Created` property from `GeneratedImageCollection`. (commit_hash)

### Bugs Fixed

- Addressed an issue that caused multi-page queries of fine-tuning jobs, checkpoints, and events to fail. (commit_hash)
- `ChatCompletionOptions` can now be serialized via `ModelReaderWriter.Write()` prior to calling `CompleteChat` using the options

### Other Changes

- Added support for `CancellationToken` to `ModelClient` methods. (commit_hash)
- Applied the `Obsolete` attribute where appropriate to align with the existing deprecations in the REST API. (commit_hash)

## 2.0.0-beta.11 (2024-09-03)

### Features Added
Expand Down
4 changes: 2 additions & 2 deletions OpenAI.sln
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenAI", "src\OpenAI.csproj
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenAI.Examples", "examples\OpenAI.Examples.csproj", "{1F1CD1D4-9932-4B73-99D8-C252A67D4B46}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenAI.Tests", "tests\OpenAI.Tests.csproj", "{6F156401-2544-41D7-B204-3148C51C1D09}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenAI.Tests", "tests\OpenAI.Tests.csproj", "{6F156401-2544-41D7-B204-3148C51C1D09}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand All @@ -33,4 +33,4 @@ Global
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {A97F4B90-2591-4689-B1F8-5F21FE6D6CAE}
EndGlobalSection
EndGlobal
EndGlobal
Loading

0 comments on commit 2ab1a94

Please sign in to comment.