Skip to content

Latest commit

 

History

History
185 lines (115 loc) · 16.8 KB

CHANGELOG.md

File metadata and controls

185 lines (115 loc) · 16.8 KB

Release History

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

Features Added

  • Added the OpenAIChatModelFactory in the OpenAI.Chat namespace (a static class that can be used to instantiate OpenAI models for mocking in non-live test scenarios). (79014ab)

Breaking Changes

  • Updated fine-tuning pagination methods GetJobs, GetEvents, and GetJobCheckpoints to return IEnumerable<ClientResult> instead of ClientResult. (5773292)
  • Updated the batching pagination method GetBatches to return IEnumerable<ClientResult> instead of ClientResult. (5773292)
  • Changed GeneratedSpeechVoice from an enum to an "extensible enum". (79014ab)
  • Changed GeneratedSpeechFormat from an enum to an "extensible enum". (cc9169a)
  • Renamed SpeechGenerationOptions's Speed property to SpeedRatio. (cc9169a)

Bugs Fixed

  • Corrected an internal deserialization issue that caused recent updates to Assistants file_search to fail when streaming a run. Strongly typed support for ranking_options is not included but will arrive soon. (cc9169a)
  • Mitigated a .NET runtime issue that prevented ChatResponseFormat from serializing correct on targets including Unity. (cc9169a)

Other Changes

  • Reverted the removal of the version path parameter "v1" from the default endpoint URL. (583e9f6)
  • Added the Experimental attribute to the following APIs:
    • All public APIs in the OpenAI.Assistants namespace. (79014ab)
    • All public APIs in the OpenAI.VectorStores namespace. (79014ab)
    • All public APIs in the OpenAI.Batch namespace. (0f5e024)
    • All public APIs in the OpenAI.FineTuning namespace. (0f5e024)
    • The ChatCompletionOptions.Seed property. (0f5e024)

2.0.0-beta.10 (2024-08-26)

Breaking Changes

  • Renamed AudioClient's GenerateSpeechFromText methods to simply GenerateSpeech. (d84bf54)
  • Changed the type of OpenAIFileInfo's SizeInBytes property from long? to int?. (d84bf54)

Bugs Fixed

  • Fixed a newly introduced bug (#185) where providing OpenAIClientOptions to a top-level OpenAIClient did not carry over to scenario clients (e.g. ChatClient) created via that top-level client (d84bf54)

Other Changes

  • Removed the version path parameter "v1" from the default endpoint URL. (d84bf54)

2.0.0-beta.9 (2024-08-23)

Features Added

  • Added support for the new structured outputs response format feature, which enables chat completions, assistants, and tools on each of those clients to provide a specific JSON Schema that generated content should adhere to. (3467b53)
    • To enable top-level structured outputs for response content, use ChatResponseFormat.CreateJsonSchemaFormat() and AssistantResponseFormat.CreateJsonSchemaFormat() as the ResponseFormat in method options like ChatCompletionOptions
    • To enable structured outputs for function tools, set StrictParameterSchemaEnabled to true on the tool definition
    • For more information, please see the new section in readme.md
  • Chat completions: the request message types of AssistantChatMessage, SystemChatMessage, and ToolChatMessage now support array-based content part collections in addition to simple string input. (3467b53)
  • Added the following model factories (static classes that can be used to instantiate OpenAI models for mocking in non-live test scenarios):
    • OpenAIAudioModelFactory in the OpenAI.Audio namespace (3284295)
    • OpenAIEmbeddingsModelFactory in the OpenAI.Embeddings namespace (3284295)
    • OpenAIFilesModelFactory in the OpenAI.Files namespace (b1ce397)
    • OpenAIImagesModelFactory in the OpenAI.Images namespace (3284295)
    • OpenAIModelsModelFactory in the OpenAI.Models namespace (b1ce397)
    • OpenAIModerationsModelFactory in the OpenAI.Moderations namespace (b1ce397)

Breaking Changes

  • Removed client constructors that do not explicitly take an API key parameter or an endpoint via an OpenAIClientOptions parameter, making it clearer how to appropriately instantiate a client. (13a9c68)
  • Removed the endpoint parameter from all client constructors, making it clearer that an alternative endpoint must be specified via the OpenAIClientOptions parameter. (13a9c68)
  • Removed OpenAIClient's Endpoint protected property. (13a9c68)
  • Made OpenAIClient's constructor that takes a ClientPipeline parameter protected internal instead of just protected. (13a9c68)
  • Renamed the User property in applicable Options classes to EndUserId, making its purpose clearer. (13a9c68)

Bugs Fixed

  • The Assistants namespace VectorStoreCreationHelper type now properly includes a ChunkingStrategy property. (3467b53)

Other Changes

  • ChatCompletion.ToString() will no longer throw an exception when no content is present, as is the case for tool calls. Additionally, if a tool call is present with no content, ToString() will return the serialized form of the first available tool call. (3467b53)

2.0.0-beta.8 (2024-07-31)

Breaking Changes

  • Changed name of return types from methods returning streaming collections from ResultCollection to CollectionResult. (7bdecfd)
  • Changed return types from methods returning paginated collections from PageableCollection to PageCollection. (7bdecfd)
  • Users must now call GetAllValues on the collection of pages to enumerate collection items directly. Corresponding protocol methods return IEnumerable<ClientResult> where each collection item represents a single service response holding a page of values. (7bdecfd)
  • Updated VectorStoreFileCounts and VectorStoreFileAssociationError types from readonly struct to class. (58f93c8)

Bugs Fixed

  • (#49) Fixed a bug with extensible enums implementing case-insensitive equality but case-sensitive hash codes. (0c12500)
  • (#57) Fixed a bug with requests URIs with query string parameter potentially containing a malformed double question mark (??) on .NET Framework (net481). (0c12500)
  • Added optional CancellationToken parameters to methods for AssistantClient and VectorStore client, consistent with past changes in 19a65a0. (d77539c)
  • Fixed Assistants FileSearchToolDefinition's MaxResults parameter to appropriately serialize and deserialize the value (d77539c)
  • Added missing [EditorBrowsable(EditorBrowsableState.Never)] attributes to AssistantClient protocol methods, which should improve discoverability of the strongly typed methods. (d77539c)

Other Changes

  • Removed the usage of init and updated properties to use set. (58f93c8)

2.0.0-beta.7 (2024-06-24)

Bugs Fixed

  • (#84) Fixed a NullReferenceException thrown when adding the custom headers policy while OpenAIClientOptions is null (0b97311)

2.0.0-beta.6 (2024-06-21)

Features Added

  • OrganizationId and ProjectId are now present on OpenAIClientOptions. When instantiating a client, providing an instance of OpenAIClientOptions with these properties set will cause the client to add the appropriate request headers for org/project, eliminating the need to manually configure the headers. (9ee7dff)

Bugs Fixed

  • (#72) Fixed filename request encoding in operations using multipart/form-data, including files and audio (2ba8e69)
  • (#79) Fixed hard-coded user role for caller-created Assistants API messages on threads (d665b61)
  • Fixed non-streaming Assistants API run step details not reporting code interpreter logs when present (d665b61)

Breaking Changes

Assistants (beta):

  • AssistantClient.CreateMessage() and the explicit constructor for ThreadInitializationMessage now require a MessageRole parameter. This properly enables the ability to create an Assistant message representing conversation history on a new thread. (d665b61)

2.0.0-beta.5 (2024-06-14)

Features Added

  • API updates, current to openai/openai-openapi@dd73070b (1af6569)
    • This includes MaxResults for Assistants FileSearchToolDefinition, ParallelToolCallsEnabled for function tools in Assistants and Chat, and FileChunkingStrategy for Assistants VectorStores
  • Optional CancellationToken parameters are now directly present on most methods, eliminating the need to use protocol methods (19a65a0)

Bugs Fixed

  • (#30) Mitigated a .NET runtime issue that prevented chat message content and several other types from serializing correct on targets including mono and wasm (896b9e0)
  • Assistants: Fixed an issue that threw an exception when receiving code interpreter run step logs when streaming a run (207d597)
  • Fixed a concurrency condition that could cause multipart/form-data requests to no longer generate random content part boundaries (no direct scenario impact) (7cacdee)

Breaking Changes

Assistants (beta):

Other Changes

  • Added an environment-variable-based test project to the repository with baseline scenario coverage (db6328a)
  • Build/analyzer warnings cleaned up throughout the project (45fc4d7, b1fa082, 22ab606)
  • Proactively aligned library's implementation of server-sent event (SSE) handling with the source of the incoming System.Net.ServerSentEvents namespace (674e0f7)

2.0.0-beta.4 (2024-06-10)

Features Added

  • Added new, built-in helpers to simplify the use of text-only message content (1c40de6)

Bugs Fixed

  • Optimized embedding deserialization and addressed correctness on big endian systems (e28b5a7)
  • Optimized b64_json message parsing via regex (efd76b5)

2.0.0-beta.3 (2024-06-07)

Bugs Fixed

  • Removed a vestigial package reference (5874f53)

2.0.0-beta.2 (2024-06-06)

Bugs Fixed

  • Addressed an assembly properties issue (bf21eb5)
  • Added migration guide to package (f150666)

2.0.0-beta.1 (2024-06-06)

Features Added

This is the official OpenAI client library for C# / .NET. It provides convenient access to the OpenAI REST API from .NET applications and supports all the latest features. It is generated from our OpenAPI specification in collaboration with Microsoft.

Breaking Changes

If you are a user migrating from version 1.11.0 or earlier, we will soon share a migration guide to help you get started.