- Added the following model factories (static classes that can be used to instantiate OpenAI models for mocking in non-live test scenarios):
OpenAIAudioModelFactory
in theOpenAI.Audio
namespaceOpenAIEmbeddingsModelFactory
in theOpenAI.Embeddings
namespaceOpenAIFilesModelFactory
in theOpenAI.Files
namespaceOpenAIImagesModelFactory
in theOpenAI.Images
namespaceOpenAIModelsModelFactory
in theOpenAI.Models
namespaceOpenAIModerationsModelFactory
in theOpenAI.Moderations
namespace
- Changed name of return types from methods returning streaming collections from
ResultCollection
toCollectionResult
. (7bdecfd) - Changed return types from methods returning paginated collections from
PageableCollection
toPageCollection
. (7bdecfd) - Users must now call
GetAllValues
on the collection of pages to enumerate collection items directly. Corresponding protocol methods returnIEnumerable<ClientResult>
where each collection item represents a single service response holding a page of values. (7bdecfd) - Updated
VectorStoreFileCounts
andVectorStoreFileAssociationError
types fromreadonly struct
toclass
. (58f93c8)
- (#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 forAssistantClient
andVectorStore
client, consistent with past changes in 19a65a0. (d77539c) - Fixed Assistants
FileSearchToolDefinition
'sMaxResults
parameter to appropriately serialize and deserialize the value (d77539c) - Added missing
[EditorBrowsable(EditorBrowsableState.Never)]
attributes toAssistantClient
protocol methods, which should improve discoverability of the strongly typed methods. (d77539c)
- Removed the usage of
init
and updated properties to useset
. (58f93c8)
- (#84) Fixed a
NullReferenceException
thrown when adding the custom headers policy whileOpenAIClientOptions
is null (0b97311)
OrganizationId
andProjectId
are now present onOpenAIClientOptions
. When instantiating a client, providing an instance ofOpenAIClientOptions
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)
- (#72) Fixed
filename
request encoding in operations usingmultipart/form-data
, includingfiles
andaudio
(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)
Assistants (beta):
AssistantClient.CreateMessage()
and the explicit constructor forThreadInitializationMessage
now require aMessageRole
parameter. This properly enables the ability to create an Assistant message representing conversation history on a new thread. (d665b61)
- API updates, current to openai/openai-openapi@dd73070b (1af6569)
- This includes
MaxResults
for AssistantsFileSearchToolDefinition
,ParallelToolCallsEnabled
for function tools in Assistants and Chat, andFileChunkingStrategy
for Assistants VectorStores
- This includes
- Optional
CancellationToken
parameters are now directly present on most methods, eliminating the need to use protocol methods (19a65a0)
- (#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)
Assistants (beta):
InputQuote
is removed from AssistantsTextAnnotation
andTextAnnotationUpdate
, per openai/openai-openapi@dd73070b (1af6569)
- 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)
- Added new, built-in helpers to simplify the use of text-only message content (1c40de6)
- Optimized embedding deserialization and addressed correctness on big endian systems (e28b5a7)
- Optimized b64_json message parsing via regex (efd76b5)
- Removed a vestigial package reference (5874f53)
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.
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.
- Addendum: the migration guide is now available.