Skip to content

Commit 8fdfc01

Browse files
Merge branch 'main' of https://github.com/openai/openai-dotnet into typespec/update-http-client-csharp-1.0.0-alpha.20251022.4
2 parents 42884c1 + 62c6ddb commit 8fdfc01

File tree

180 files changed

+30659
-24829
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

180 files changed

+30659
-24829
lines changed

.github/workflows/codegen-validation.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ on:
77
paths:
88
- 'codegen/**'
99
- 'specification/**'
10+
- 'src/**'
11+
- 'package.json'
12+
- 'global.json'
13+
- 'package-lock.json'
1014
- '.github/workflows/codegen-validation.yml'
1115
- 'scripts/Invoke-CodeGen.ps1'
1216
types: [opened, reopened, synchronize]

api/OpenAI.net8.0.cs

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ public class OpenAIClient {
2020
public virtual ChatClient GetChatClient(string model);
2121
[Experimental("OPENAI001")]
2222
public virtual ContainerClient GetContainerClient();
23+
[Experimental("OPENAI001")]
24+
public virtual ConversationClient GetConversationClient();
2325
public virtual EmbeddingClient GetEmbeddingClient(string model);
2426
[Experimental("OPENAI001")]
2527
public virtual EvaluationClient GetEvaluationClient();
@@ -1403,10 +1405,46 @@ public class BatchClient {
14031405
public virtual Task<CreateBatchOperation> CreateBatchAsync(BinaryContent content, bool waitUntilCompleted, RequestOptions options = null);
14041406
public virtual ClientResult GetBatch(string batchId, RequestOptions options);
14051407
public virtual Task<ClientResult> GetBatchAsync(string batchId, RequestOptions options);
1408+
public virtual CollectionResult<BatchJob> GetBatches(BatchCollectionOptions options = null, CancellationToken cancellationToken = default);
14061409
public virtual CollectionResult GetBatches(string after, int? limit, RequestOptions options);
1410+
public virtual AsyncCollectionResult<BatchJob> GetBatchesAsync(BatchCollectionOptions options = null, CancellationToken cancellationToken = default);
14071411
public virtual AsyncCollectionResult GetBatchesAsync(string after, int? limit, RequestOptions options);
14081412
}
14091413
[Experimental("OPENAI001")]
1414+
public class BatchCollectionOptions : IJsonModel<BatchCollectionOptions>, IPersistableModel<BatchCollectionOptions> {
1415+
public string AfterId { get; set; }
1416+
public int? PageSizeLimit { get; set; }
1417+
protected virtual BatchCollectionOptions JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options);
1418+
protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options);
1419+
protected virtual BatchCollectionOptions PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options);
1420+
protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options);
1421+
}
1422+
[Experimental("OPENAI001")]
1423+
public class BatchJob : IJsonModel<BatchJob>, IPersistableModel<BatchJob> {
1424+
public DateTimeOffset? CancelledAt { get; }
1425+
public DateTimeOffset? CancellingAt { get; }
1426+
public DateTimeOffset? CompletedAt { get; }
1427+
public string CompletionWindow { get; }
1428+
public DateTimeOffset CreatedAt { get; }
1429+
public string Endpoint { get; }
1430+
public string ErrorFileId { get; }
1431+
public DateTimeOffset? ExpiredAt { get; }
1432+
public DateTimeOffset? ExpiresAt { get; }
1433+
public DateTimeOffset? FailedAt { get; }
1434+
public DateTimeOffset? FinalizingAt { get; }
1435+
public string Id { get; }
1436+
public DateTimeOffset? InProgressAt { get; }
1437+
public string InputFileId { get; }
1438+
public IDictionary<string, string> Metadata { get; }
1439+
public string Object { get; }
1440+
public string OutputFileId { get; }
1441+
protected virtual BatchJob JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options);
1442+
protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options);
1443+
public static explicit operator BatchJob(ClientResult result);
1444+
protected virtual BatchJob PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options);
1445+
protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options);
1446+
}
1447+
[Experimental("OPENAI001")]
14101448
public class CreateBatchOperation : OperationResult {
14111449
public string BatchId { get; }
14121450
public override ContinuationToken? RehydrationToken { get; protected set; }
@@ -2560,6 +2598,59 @@ public class DeleteContainerResponse : IJsonModel<DeleteContainerResponse>, IPer
25602598
protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options);
25612599
}
25622600
}
2601+
namespace OpenAI.Conversations {
2602+
[Experimental("OPENAI001")]
2603+
public class ConversationClient {
2604+
protected ConversationClient();
2605+
public ConversationClient(ApiKeyCredential credential, OpenAIClientOptions options);
2606+
public ConversationClient(ApiKeyCredential credential);
2607+
public ConversationClient(AuthenticationPolicy authenticationPolicy, OpenAIClientOptions options);
2608+
public ConversationClient(AuthenticationPolicy authenticationPolicy);
2609+
protected internal ConversationClient(ClientPipeline pipeline, OpenAIClientOptions options);
2610+
public ConversationClient(string apiKey);
2611+
[Experimental("OPENAI001")]
2612+
public Uri Endpoint { get; }
2613+
public ClientPipeline Pipeline { get; }
2614+
public virtual ClientResult CreateConversation(BinaryContent content, RequestOptions options = null);
2615+
public virtual Task<ClientResult> CreateConversationAsync(BinaryContent content, RequestOptions options = null);
2616+
public virtual ClientResult CreateConversationItems(string conversationId, BinaryContent content, IEnumerable<IncludedConversationItemProperty> include = null, RequestOptions options = null);
2617+
public virtual Task<ClientResult> CreateConversationItemsAsync(string conversationId, BinaryContent content, IEnumerable<IncludedConversationItemProperty> include = null, RequestOptions options = null);
2618+
public virtual ClientResult DeleteConversation(string conversationId, RequestOptions options = null);
2619+
public virtual Task<ClientResult> DeleteConversationAsync(string conversationId, RequestOptions options = null);
2620+
public virtual ClientResult DeleteConversationItem(string conversationId, string itemId, RequestOptions options = null);
2621+
public virtual Task<ClientResult> DeleteConversationItemAsync(string conversationId, string itemId, RequestOptions options = null);
2622+
public virtual ClientResult GetConversation(string conversationId, RequestOptions options = null);
2623+
public virtual Task<ClientResult> GetConversationAsync(string conversationId, RequestOptions options = null);
2624+
public virtual ClientResult GetConversationItem(string conversationId, string itemId, IEnumerable<IncludedConversationItemProperty> include = null, RequestOptions options = null);
2625+
public virtual Task<ClientResult> GetConversationItemAsync(string conversationId, string itemId, IEnumerable<IncludedConversationItemProperty> include = null, RequestOptions options = null);
2626+
public virtual CollectionResult GetConversationItems(string conversationId, long? limit = null, string order = null, string after = null, IEnumerable<IncludedConversationItemProperty> include = null, RequestOptions options = null);
2627+
public virtual AsyncCollectionResult GetConversationItemsAsync(string conversationId, long? limit = null, string order = null, string after = null, IEnumerable<IncludedConversationItemProperty> include = null, RequestOptions options = null);
2628+
public virtual ClientResult UpdateConversation(string conversationId, BinaryContent content, RequestOptions options = null);
2629+
public virtual Task<ClientResult> UpdateConversationAsync(string conversationId, BinaryContent content, RequestOptions options = null);
2630+
}
2631+
[Experimental("OPENAI001")]
2632+
public readonly partial struct IncludedConversationItemProperty : IEquatable<IncludedConversationItemProperty> {
2633+
public IncludedConversationItemProperty(string value);
2634+
public static IncludedConversationItemProperty CodeInterpreterCallOutputs { get; }
2635+
public static IncludedConversationItemProperty ComputerCallOutputImageUri { get; }
2636+
public static IncludedConversationItemProperty FileSearchCallResults { get; }
2637+
public static IncludedConversationItemProperty MessageInputImageUri { get; }
2638+
public static IncludedConversationItemProperty MessageOutputTextLogprobs { get; }
2639+
public static IncludedConversationItemProperty ReasoningEncryptedContent { get; }
2640+
public static IncludedConversationItemProperty WebSearchCallActionSources { get; }
2641+
public static IncludedConversationItemProperty WebSearchCallResults { get; }
2642+
public readonly bool Equals(IncludedConversationItemProperty other);
2643+
[EditorBrowsable(EditorBrowsableState.Never)]
2644+
public override readonly bool Equals(object obj);
2645+
[EditorBrowsable(EditorBrowsableState.Never)]
2646+
public override readonly int GetHashCode();
2647+
public static bool operator ==(IncludedConversationItemProperty left, IncludedConversationItemProperty right);
2648+
public static implicit operator IncludedConversationItemProperty(string value);
2649+
public static implicit operator IncludedConversationItemProperty?(string value);
2650+
public static bool operator !=(IncludedConversationItemProperty left, IncludedConversationItemProperty right);
2651+
public override readonly string ToString();
2652+
}
2653+
}
25632654
namespace OpenAI.Embeddings {
25642655
public class EmbeddingClient {
25652656
protected EmbeddingClient();
@@ -5756,6 +5847,7 @@ public class ResponseItem : IJsonModel<ResponseItem>, IPersistableModel<Response
57565847
public static WebSearchCallResponseItem CreateWebSearchCallItem();
57575848
protected virtual ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options);
57585849
protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options);
5850+
public static explicit operator ResponseItem(ClientResult result);
57595851
protected virtual ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options);
57605852
protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options);
57615853
}

api/OpenAI.netstandard2.0.cs

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public class OpenAIClient {
1414
public virtual BatchClient GetBatchClient();
1515
public virtual ChatClient GetChatClient(string model);
1616
public virtual ContainerClient GetContainerClient();
17+
public virtual ConversationClient GetConversationClient();
1718
public virtual EmbeddingClient GetEmbeddingClient(string model);
1819
public virtual EvaluationClient GetEvaluationClient();
1920
public virtual FineTuningClient GetFineTuningClient();
@@ -1262,9 +1263,43 @@ public class BatchClient {
12621263
public virtual Task<CreateBatchOperation> CreateBatchAsync(BinaryContent content, bool waitUntilCompleted, RequestOptions options = null);
12631264
public virtual ClientResult GetBatch(string batchId, RequestOptions options);
12641265
public virtual Task<ClientResult> GetBatchAsync(string batchId, RequestOptions options);
1266+
public virtual CollectionResult<BatchJob> GetBatches(BatchCollectionOptions options = null, CancellationToken cancellationToken = default);
12651267
public virtual CollectionResult GetBatches(string after, int? limit, RequestOptions options);
1268+
public virtual AsyncCollectionResult<BatchJob> GetBatchesAsync(BatchCollectionOptions options = null, CancellationToken cancellationToken = default);
12661269
public virtual AsyncCollectionResult GetBatchesAsync(string after, int? limit, RequestOptions options);
12671270
}
1271+
public class BatchCollectionOptions : IJsonModel<BatchCollectionOptions>, IPersistableModel<BatchCollectionOptions> {
1272+
public string AfterId { get; set; }
1273+
public int? PageSizeLimit { get; set; }
1274+
protected virtual BatchCollectionOptions JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options);
1275+
protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options);
1276+
protected virtual BatchCollectionOptions PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options);
1277+
protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options);
1278+
}
1279+
public class BatchJob : IJsonModel<BatchJob>, IPersistableModel<BatchJob> {
1280+
public DateTimeOffset? CancelledAt { get; }
1281+
public DateTimeOffset? CancellingAt { get; }
1282+
public DateTimeOffset? CompletedAt { get; }
1283+
public string CompletionWindow { get; }
1284+
public DateTimeOffset CreatedAt { get; }
1285+
public string Endpoint { get; }
1286+
public string ErrorFileId { get; }
1287+
public DateTimeOffset? ExpiredAt { get; }
1288+
public DateTimeOffset? ExpiresAt { get; }
1289+
public DateTimeOffset? FailedAt { get; }
1290+
public DateTimeOffset? FinalizingAt { get; }
1291+
public string Id { get; }
1292+
public DateTimeOffset? InProgressAt { get; }
1293+
public string InputFileId { get; }
1294+
public IDictionary<string, string> Metadata { get; }
1295+
public string Object { get; }
1296+
public string OutputFileId { get; }
1297+
protected virtual BatchJob JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options);
1298+
protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options);
1299+
public static explicit operator BatchJob(ClientResult result);
1300+
protected virtual BatchJob PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options);
1301+
protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options);
1302+
}
12681303
public class CreateBatchOperation : OperationResult {
12691304
public string BatchId { get; }
12701305
public override ContinuationToken? RehydrationToken { get; protected set; }
@@ -2199,6 +2234,56 @@ public class DeleteContainerResponse : IJsonModel<DeleteContainerResponse>, IPer
21992234
protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options);
22002235
}
22012236
}
2237+
namespace OpenAI.Conversations {
2238+
public class ConversationClient {
2239+
protected ConversationClient();
2240+
public ConversationClient(ApiKeyCredential credential, OpenAIClientOptions options);
2241+
public ConversationClient(ApiKeyCredential credential);
2242+
public ConversationClient(AuthenticationPolicy authenticationPolicy, OpenAIClientOptions options);
2243+
public ConversationClient(AuthenticationPolicy authenticationPolicy);
2244+
protected internal ConversationClient(ClientPipeline pipeline, OpenAIClientOptions options);
2245+
public ConversationClient(string apiKey);
2246+
public Uri Endpoint { get; }
2247+
public ClientPipeline Pipeline { get; }
2248+
public virtual ClientResult CreateConversation(BinaryContent content, RequestOptions options = null);
2249+
public virtual Task<ClientResult> CreateConversationAsync(BinaryContent content, RequestOptions options = null);
2250+
public virtual ClientResult CreateConversationItems(string conversationId, BinaryContent content, IEnumerable<IncludedConversationItemProperty> include = null, RequestOptions options = null);
2251+
public virtual Task<ClientResult> CreateConversationItemsAsync(string conversationId, BinaryContent content, IEnumerable<IncludedConversationItemProperty> include = null, RequestOptions options = null);
2252+
public virtual ClientResult DeleteConversation(string conversationId, RequestOptions options = null);
2253+
public virtual Task<ClientResult> DeleteConversationAsync(string conversationId, RequestOptions options = null);
2254+
public virtual ClientResult DeleteConversationItem(string conversationId, string itemId, RequestOptions options = null);
2255+
public virtual Task<ClientResult> DeleteConversationItemAsync(string conversationId, string itemId, RequestOptions options = null);
2256+
public virtual ClientResult GetConversation(string conversationId, RequestOptions options = null);
2257+
public virtual Task<ClientResult> GetConversationAsync(string conversationId, RequestOptions options = null);
2258+
public virtual ClientResult GetConversationItem(string conversationId, string itemId, IEnumerable<IncludedConversationItemProperty> include = null, RequestOptions options = null);
2259+
public virtual Task<ClientResult> GetConversationItemAsync(string conversationId, string itemId, IEnumerable<IncludedConversationItemProperty> include = null, RequestOptions options = null);
2260+
public virtual CollectionResult GetConversationItems(string conversationId, long? limit = null, string order = null, string after = null, IEnumerable<IncludedConversationItemProperty> include = null, RequestOptions options = null);
2261+
public virtual AsyncCollectionResult GetConversationItemsAsync(string conversationId, long? limit = null, string order = null, string after = null, IEnumerable<IncludedConversationItemProperty> include = null, RequestOptions options = null);
2262+
public virtual ClientResult UpdateConversation(string conversationId, BinaryContent content, RequestOptions options = null);
2263+
public virtual Task<ClientResult> UpdateConversationAsync(string conversationId, BinaryContent content, RequestOptions options = null);
2264+
}
2265+
public readonly partial struct IncludedConversationItemProperty : IEquatable<IncludedConversationItemProperty> {
2266+
public IncludedConversationItemProperty(string value);
2267+
public static IncludedConversationItemProperty CodeInterpreterCallOutputs { get; }
2268+
public static IncludedConversationItemProperty ComputerCallOutputImageUri { get; }
2269+
public static IncludedConversationItemProperty FileSearchCallResults { get; }
2270+
public static IncludedConversationItemProperty MessageInputImageUri { get; }
2271+
public static IncludedConversationItemProperty MessageOutputTextLogprobs { get; }
2272+
public static IncludedConversationItemProperty ReasoningEncryptedContent { get; }
2273+
public static IncludedConversationItemProperty WebSearchCallActionSources { get; }
2274+
public static IncludedConversationItemProperty WebSearchCallResults { get; }
2275+
public readonly bool Equals(IncludedConversationItemProperty other);
2276+
[EditorBrowsable(EditorBrowsableState.Never)]
2277+
public override readonly bool Equals(object obj);
2278+
[EditorBrowsable(EditorBrowsableState.Never)]
2279+
public override readonly int GetHashCode();
2280+
public static bool operator ==(IncludedConversationItemProperty left, IncludedConversationItemProperty right);
2281+
public static implicit operator IncludedConversationItemProperty(string value);
2282+
public static implicit operator IncludedConversationItemProperty?(string value);
2283+
public static bool operator !=(IncludedConversationItemProperty left, IncludedConversationItemProperty right);
2284+
public override readonly string ToString();
2285+
}
2286+
}
22022287
namespace OpenAI.Embeddings {
22032288
public class EmbeddingClient {
22042289
protected EmbeddingClient();
@@ -5050,6 +5135,7 @@ public class ResponseItem : IJsonModel<ResponseItem>, IPersistableModel<Response
50505135
public static WebSearchCallResponseItem CreateWebSearchCallItem();
50515136
protected virtual ResponseItem JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options);
50525137
protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options);
5138+
public static explicit operator ResponseItem(ClientResult result);
50535139
protected virtual ResponseItem PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options);
50545140
protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options);
50555141
}

0 commit comments

Comments
 (0)