Skip to content

Commit 75eded5

Browse files
ShivangiRejaShivangiReja
andauthored
Remove the virtual keyword from the Pipeline property across all clients (#227)
Co-authored-by: ShivangiReja <[email protected]>
1 parent 19ceae4 commit 75eded5

Some content is hidden

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

53 files changed

+240
-135
lines changed

CHANGELOG.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,16 @@
66

77
### Breaking Changes
88

9-
- Refactored `ModerationResult` by merging `ModerationCategories` and `ModerationCategoryScores` into individual `ModerationCategory` properties, each with `Flagged` and `Score` properties. (commit_hash)
9+
- Refactored `ModerationResult` by merging `ModerationCategories` and `ModerationCategoryScores` into individual `ModerationCategory` properties, each with `Flagged` and `Score` properties. (commit_id)
1010
- Renamed type `OpenAIFileInfo` to `OpenAIFile` and `OpenAIFileInfoCollection` to `OpenAIFileCollection`. (commit_id)
1111
- Renamed type `OpenAIModelInfo` to `OpenAIModel` and `OpenAIModelInfoCollection` to `OpenAIModelCollection`. (commit_id)
1212
- Renamed type `Embedding` to `OpenAIEmbedding` and `EmbeddingCollection` to `OpenAIEmbeddingCollection`. (commit_id)
13-
- Renamed property `ImageUrl` to `ImageUri` and method `FromImageUrl` to `FromImageUri` in `MessageContent`. (commit_id)
14-
- Renamed property `ParallelToolCallsEnabled` to `AllowParallelToolCalls` in `RunCreationOptions`, `ThreadRun`, and `ChatCompletionOptions` types. (commit_id)
15-
- Renamed property `PromptTokens` to `InputTokenCount`, `CompletionTokens` to `OutputTokenCount`, and `TotalTokens` to `TotalTokenCount` in `RunTokenUsage`. (commit_id)
16-
- Renamed property `InputTokens` to `InputTokenCount` and `TotalTokens` to `TotalTokenCount` in `EmbeddingTokenUsage`. (commit_id)
13+
- Renamed property `ImageUrl` to `ImageUri` and method `FromImageUrl` to `FromImageUri` in the `MessageContent` type. (commit_id)
14+
- Renamed property `ParallelToolCallsEnabled` to `AllowParallelToolCalls` in the `RunCreationOptions`, `ThreadRun`, and `ChatCompletionOptions` types. (commit_id)
15+
- Renamed properties `PromptTokens` to `InputTokenCount`, `CompletionTokens` to `OutputTokenCount`, and `TotalTokens` to `TotalTokenCount` in the `RunTokenUsage` and `RunStepTokenUsage` types. (commit_id)
16+
- Renamed properties `InputTokens` to `InputTokenCount` and `TotalTokens` to `TotalTokenCount` in the `EmbeddingTokenUsage` type. (commit_id)
17+
- Renamed properties `MaxPromptTokens` to `MaxInputTokenCount` and `MaxCompletionTokens` to `MaxOutputTokenCount` in the `ThreadRun`, `RunCreationOptions`, and `RunIncompleteReason` types. (commit_id)
18+
- Removed the `virtual` keyword from the `Pipeline` property across all clients. (commit_id)
1719

1820
### Bugs Fixed
1921

api/OpenAI.netstandard2.0.cs

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ public class OpenAIClient {
66
protected internal OpenAIClient(ClientPipeline pipeline, OpenAIClientOptions options);
77
public OpenAIClient(string apiKey, OpenAIClientOptions options);
88
public OpenAIClient(string apiKey);
9-
public virtual ClientPipeline Pipeline { get; }
9+
public ClientPipeline Pipeline { get; }
1010
public virtual AssistantClient GetAssistantClient();
1111
public virtual AudioClient GetAudioClient(string model);
1212
public virtual BatchClient GetBatchClient();
@@ -53,7 +53,7 @@ public class AssistantClient {
5353
protected internal AssistantClient(ClientPipeline pipeline, OpenAIClientOptions options);
5454
public AssistantClient(string apiKey, OpenAIClientOptions options);
5555
public AssistantClient(string apiKey);
56-
public virtual ClientPipeline Pipeline { get; }
56+
public ClientPipeline Pipeline { get; }
5757
public virtual ClientResult<ThreadRun> CancelRun(ThreadRun run);
5858
[EditorBrowsable(EditorBrowsableState.Never)]
5959
public virtual ClientResult CancelRun(string threadId, string runId, RequestOptions options);
@@ -600,8 +600,8 @@ public class RunCreationOptions : IJsonModel<RunCreationOptions>, IPersistableMo
600600
public IList<ThreadInitializationMessage> AdditionalMessages { get; }
601601
public bool? AllowParallelToolCalls { get; set; }
602602
public string InstructionsOverride { get; set; }
603-
public int? MaxCompletionTokens { get; set; }
604-
public int? MaxPromptTokens { get; set; }
603+
public int? MaxInputTokenCount { get; set; }
604+
public int? MaxOutputTokenCount { get; set; }
605605
public IDictionary<string, string> Metadata { get; }
606606
public string ModelOverride { get; set; }
607607
public float? NucleusSamplingFactor { get; set; }
@@ -654,8 +654,8 @@ public class RunIncompleteDetails : IJsonModel<RunIncompleteDetails>, IPersistab
654654
private readonly object _dummy;
655655
private readonly int _dummyPrimitive;
656656
public RunIncompleteReason(string value);
657-
public static RunIncompleteReason MaxCompletionTokens { get; }
658-
public static RunIncompleteReason MaxPromptTokens { get; }
657+
public static RunIncompleteReason MaxInputTokenCount { get; }
658+
public static RunIncompleteReason MaxOutputTokenCount { get; }
659659
public readonly bool Equals(RunIncompleteReason other);
660660
[EditorBrowsable(EditorBrowsableState.Never)]
661661
public override readonly bool Equals(object obj);
@@ -826,9 +826,9 @@ public class RunStepFileSearchResult : IJsonModel<RunStepFileSearchResult>, IPer
826826
public override readonly string ToString();
827827
}
828828
public class RunStepTokenUsage : IJsonModel<RunStepTokenUsage>, IPersistableModel<RunStepTokenUsage> {
829-
public int CompletionTokens { get; }
830-
public int PromptTokens { get; }
831-
public int TotalTokens { get; }
829+
public int InputTokenCount { get; }
830+
public int OutputTokenCount { get; }
831+
public int TotalTokenCount { get; }
832832
RunStepTokenUsage IJsonModel<RunStepTokenUsage>.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options);
833833
void IJsonModel<RunStepTokenUsage>.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options);
834834
RunStepTokenUsage IPersistableModel<RunStepTokenUsage>.Create(BinaryData data, ModelReaderWriterOptions options);
@@ -1022,8 +1022,8 @@ public class ThreadRun : IJsonModel<ThreadRun>, IPersistableModel<ThreadRun> {
10221022
public RunIncompleteDetails IncompleteDetails { get; }
10231023
public string Instructions { get; }
10241024
public RunError LastError { get; }
1025-
public int? MaxCompletionTokens { get; }
1026-
public int? MaxPromptTokens { get; }
1025+
public int? MaxInputTokenCount { get; }
1026+
public int? MaxOutputTokenCount { get; }
10271027
public IReadOnlyDictionary<string, string> Metadata { get; }
10281028
public string Model { get; }
10291029
public float? NucleusSamplingFactor { get; }
@@ -1114,7 +1114,7 @@ public class AudioClient {
11141114
public AudioClient(string model, ApiKeyCredential credential);
11151115
public AudioClient(string model, string apiKey, OpenAIClientOptions options);
11161116
public AudioClient(string model, string apiKey);
1117-
public virtual ClientPipeline Pipeline { get; }
1117+
public ClientPipeline Pipeline { get; }
11181118
[EditorBrowsable(EditorBrowsableState.Never)]
11191119
public virtual ClientResult GenerateSpeech(BinaryContent content, RequestOptions options = null);
11201120
public virtual ClientResult<BinaryData> GenerateSpeech(string text, GeneratedSpeechVoice voice, SpeechGenerationOptions options = null, CancellationToken cancellationToken = default);
@@ -1306,7 +1306,7 @@ public class BatchClient {
13061306
protected internal BatchClient(ClientPipeline pipeline, OpenAIClientOptions options);
13071307
public BatchClient(string apiKey, OpenAIClientOptions options);
13081308
public BatchClient(string apiKey);
1309-
public virtual ClientPipeline Pipeline { get; }
1309+
public ClientPipeline Pipeline { get; }
13101310
public virtual ClientResult CancelBatch(string batchId, RequestOptions options);
13111311
public virtual Task<ClientResult> CancelBatchAsync(string batchId, RequestOptions options);
13121312
public virtual ClientResult CreateBatch(BinaryContent content, RequestOptions options = null);
@@ -1343,7 +1343,7 @@ public class ChatClient {
13431343
public ChatClient(string model, ApiKeyCredential credential);
13441344
public ChatClient(string model, string apiKey, OpenAIClientOptions options);
13451345
public ChatClient(string model, string apiKey);
1346-
public virtual ClientPipeline Pipeline { get; }
1346+
public ClientPipeline Pipeline { get; }
13471347
public virtual ClientResult<ChatCompletion> CompleteChat(params ChatMessage[] messages);
13481348
[EditorBrowsable(EditorBrowsableState.Never)]
13491349
public virtual ClientResult CompleteChat(BinaryContent content, RequestOptions options = null);
@@ -1660,10 +1660,10 @@ public class FunctionChatMessage : ChatMessage, IJsonModel<FunctionChatMessage>,
16601660
}
16611661
public static class OpenAIChatModelFactory {
16621662
public static ChatCompletion ChatCompletion(string id = null, ChatFinishReason finishReason = ChatFinishReason.Stop, IEnumerable<ChatMessageContentPart> content = null, string refusal = null, IEnumerable<ChatToolCall> toolCalls = null, ChatMessageRole role = ChatMessageRole.System, ChatFunctionCall functionCall = null, IEnumerable<ChatTokenLogProbabilityDetails> contentTokenLogProbabilities = null, IEnumerable<ChatTokenLogProbabilityDetails> refusalTokenLogProbabilities = null, DateTimeOffset createdAt = default, string model = null, string systemFingerprint = null, ChatTokenUsage usage = null);
1663-
public static ChatOutputTokenUsageDetails ChatOutputTokenUsageDetails(int reasoningTokens = 0);
1663+
public static ChatOutputTokenUsageDetails ChatOutputTokenUsageDetails(int reasoningTokenCount = 0);
16641664
public static ChatTokenLogProbabilityDetails ChatTokenLogProbabilityDetails(string token = null, float logProbability = 0, ReadOnlyMemory<byte>? utf8Bytes = null, IEnumerable<ChatTokenTopLogProbabilityDetails> topLogProbabilities = null);
16651665
public static ChatTokenTopLogProbabilityDetails ChatTokenTopLogProbabilityDetails(string token = null, float logProbability = 0, ReadOnlyMemory<byte>? utf8Bytes = null);
1666-
public static ChatTokenUsage ChatTokenUsage(int outputTokens = 0, int inputTokens = 0, int totalTokens = 0, ChatOutputTokenUsageDetails outputTokenDetails = null);
1666+
public static ChatTokenUsage ChatTokenUsage(int outputTokenCount = 0, int inputTokenCount = 0, int totalTokenCount = 0, ChatOutputTokenUsageDetails outputTokenDetails = null);
16671667
public static StreamingChatCompletionUpdate StreamingChatCompletionUpdate(string id = null, IEnumerable<ChatMessageContentPart> contentUpdate = null, StreamingChatFunctionCallUpdate functionCallUpdate = null, IEnumerable<StreamingChatToolCallUpdate> toolCallUpdates = null, ChatMessageRole? role = null, string refusalUpdate = null, IEnumerable<ChatTokenLogProbabilityDetails> contentTokenLogProbabilities = null, IEnumerable<ChatTokenLogProbabilityDetails> refusalTokenLogProbabilities = null, ChatFinishReason? finishReason = null, DateTimeOffset createdAt = default, string model = null, string systemFingerprint = null, ChatTokenUsage usage = null);
16681668
[Obsolete("This class is obsolete. Please use StreamingChatToolCallUpdate instead.")]
16691669
public static StreamingChatFunctionCallUpdate StreamingChatFunctionCallUpdate(string functionArgumentsUpdate = null, string functionName = null);
@@ -1754,7 +1754,7 @@ public class EmbeddingClient {
17541754
public EmbeddingClient(string model, ApiKeyCredential credential);
17551755
public EmbeddingClient(string model, string apiKey, OpenAIClientOptions options);
17561756
public EmbeddingClient(string model, string apiKey);
1757-
public virtual ClientPipeline Pipeline { get; }
1757+
public ClientPipeline Pipeline { get; }
17581758
public virtual ClientResult<OpenAIEmbedding> GenerateEmbedding(string input, EmbeddingGenerationOptions options = null, CancellationToken cancellationToken = default);
17591759
public virtual Task<ClientResult<OpenAIEmbedding>> GenerateEmbeddingAsync(string input, EmbeddingGenerationOptions options = null, CancellationToken cancellationToken = default);
17601760
[EditorBrowsable(EditorBrowsableState.Never)]
@@ -1803,7 +1803,7 @@ public class OpenAIEmbeddingCollection : ObjectModel.ReadOnlyCollection<OpenAIEm
18031803
BinaryData IPersistableModel<OpenAIEmbeddingCollection>.Write(ModelReaderWriterOptions options);
18041804
}
18051805
public static class OpenAIEmbeddingsModelFactory {
1806-
public static EmbeddingTokenUsage EmbeddingTokenUsage(int inputTokens = 0, int totalTokens = 0);
1806+
public static EmbeddingTokenUsage EmbeddingTokenUsage(int inputTokenCount = 0, int totalTokenCount = 0);
18071807
public static OpenAIEmbedding OpenAIEmbedding(int index = 0, IEnumerable<float> vector = null);
18081808
public static OpenAIEmbeddingCollection OpenAIEmbeddingCollection(IEnumerable<OpenAIEmbedding> items = null, string model = null, EmbeddingTokenUsage usage = null);
18091809
}
@@ -1816,7 +1816,7 @@ public class FileClient {
18161816
protected internal FileClient(ClientPipeline pipeline, OpenAIClientOptions options);
18171817
public FileClient(string apiKey, OpenAIClientOptions options);
18181818
public FileClient(string apiKey);
1819-
public virtual ClientPipeline Pipeline { get; }
1819+
public ClientPipeline Pipeline { get; }
18201820
public virtual ClientResult AddUploadPart(string uploadId, BinaryContent content, string contentType, RequestOptions options = null);
18211821
public virtual Task<ClientResult> AddUploadPartAsync(string uploadId, BinaryContent content, string contentType, RequestOptions options = null);
18221822
public virtual ClientResult CancelUpload(string uploadId, RequestOptions options = null);
@@ -1965,7 +1965,7 @@ public class FineTuningClient {
19651965
protected internal FineTuningClient(ClientPipeline pipeline, OpenAIClientOptions options);
19661966
public FineTuningClient(string apiKey, OpenAIClientOptions options);
19671967
public FineTuningClient(string apiKey);
1968-
public virtual ClientPipeline Pipeline { get; }
1968+
public ClientPipeline Pipeline { get; }
19691969
public virtual ClientResult CancelJob(string jobId, RequestOptions options);
19701970
public virtual Task<ClientResult> CancelJobAsync(string jobId, RequestOptions options);
19711971
public virtual ClientResult CreateJob(BinaryContent content, RequestOptions options = null);
@@ -2036,7 +2036,7 @@ public class ImageClient {
20362036
public ImageClient(string model, ApiKeyCredential credential);
20372037
public ImageClient(string model, string apiKey, OpenAIClientOptions options);
20382038
public ImageClient(string model, string apiKey);
2039-
public virtual ClientPipeline Pipeline { get; }
2039+
public ClientPipeline Pipeline { get; }
20402040
public virtual ClientResult<GeneratedImage> GenerateImage(string prompt, ImageGenerationOptions options = null, CancellationToken cancellationToken = default);
20412041
public virtual Task<ClientResult<GeneratedImage>> GenerateImageAsync(string prompt, ImageGenerationOptions options = null, CancellationToken cancellationToken = default);
20422042
public virtual ClientResult<GeneratedImage> GenerateImageEdit(Stream image, string imageFilename, string prompt, ImageEditOptions options = null, CancellationToken cancellationToken = default);
@@ -2123,7 +2123,7 @@ public class ModelClient {
21232123
protected internal ModelClient(ClientPipeline pipeline, OpenAIClientOptions options);
21242124
public ModelClient(string apiKey, OpenAIClientOptions options);
21252125
public ModelClient(string apiKey);
2126-
public virtual ClientPipeline Pipeline { get; }
2126+
public ClientPipeline Pipeline { get; }
21272127
[EditorBrowsable(EditorBrowsableState.Never)]
21282128
public virtual ClientResult DeleteModel(string model, RequestOptions options);
21292129
public virtual ClientResult<ModelDeletionResult> DeleteModel(string model, CancellationToken cancellationToken = default);
@@ -2187,7 +2187,7 @@ public class ModerationClient {
21872187
public ModerationClient(string model, ApiKeyCredential credential);
21882188
public ModerationClient(string model, string apiKey, OpenAIClientOptions options);
21892189
public ModerationClient(string model, string apiKey);
2190-
public virtual ClientPipeline Pipeline { get; }
2190+
public ClientPipeline Pipeline { get; }
21912191
[EditorBrowsable(EditorBrowsableState.Never)]
21922192
public virtual ClientResult ClassifyText(BinaryContent content, RequestOptions options = null);
21932193
public virtual ClientResult<ModerationResultCollection> ClassifyText(IEnumerable<string> inputs, CancellationToken cancellationToken = default);
@@ -2315,7 +2315,7 @@ public class VectorStoreClient {
23152315
protected internal VectorStoreClient(ClientPipeline pipeline, OpenAIClientOptions options);
23162316
public VectorStoreClient(string apiKey, OpenAIClientOptions options);
23172317
public VectorStoreClient(string apiKey);
2318-
public virtual ClientPipeline Pipeline { get; }
2318+
public ClientPipeline Pipeline { get; }
23192319
public virtual ClientResult<VectorStoreFileAssociation> AddFileToVectorStore(VectorStore vectorStore, OpenAIFile file);
23202320
[EditorBrowsable(EditorBrowsableState.Never)]
23212321
public virtual ClientResult AddFileToVectorStore(string vectorStoreId, BinaryContent content, RequestOptions options = null);

src/Custom/Assistants/AssistantClient.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ public partial class AssistantClient
3030
private readonly InternalAssistantRunClient _runSubClient;
3131
private readonly InternalAssistantThreadClient _threadSubClient;
3232

33+
// CUSTOM: Remove virtual keyword.
34+
/// <summary>
35+
/// The HTTP pipeline for sending and receiving REST requests and responses.
36+
/// </summary>
37+
public ClientPipeline Pipeline => _pipeline;
38+
3339
// CUSTOM: Added as a convenience.
3440
/// <summary> Initializes a new instance of <see cref="AssistantClient">. </summary>
3541
/// <param name="apiKey"> The API key to authenticate with the service. </param>
@@ -1263,8 +1269,8 @@ private static BinaryContent CreateThreadAndRunProtocolContent(
12631269
runOptions.Temperature,
12641270
runOptions.NucleusSamplingFactor,
12651271
runOptions.Stream,
1266-
runOptions.MaxPromptTokens,
1267-
runOptions.MaxCompletionTokens,
1272+
runOptions.MaxInputTokenCount,
1273+
runOptions.MaxOutputTokenCount,
12681274
runOptions.TruncationStrategy,
12691275
runOptions.ToolConstraint,
12701276
runOptions.AllowParallelToolCalls,

src/Custom/Assistants/GeneratorStubs.cs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,6 @@ public readonly partial struct RunErrorCode { }
3434
[CodeGenModel("RunObjectIncompleteDetails")]
3535
public partial class RunIncompleteDetails { }
3636

37-
[Experimental("OPENAI001")]
38-
[CodeGenModel("RunObjectIncompleteDetailsReason")]
39-
public readonly partial struct RunIncompleteReason { }
40-
4137
[Experimental("OPENAI001")]
4238
[CodeGenModel("RunStepObjectType")]
4339
public readonly partial struct RunStepType { }
@@ -54,10 +50,6 @@ public partial class RunStepError { }
5450
[CodeGenModel("RunStepObjectLastErrorCode")]
5551
public readonly partial struct RunStepErrorCode { }
5652

57-
[Experimental("OPENAI001")]
58-
[CodeGenModel("RunStepCompletionUsage")]
59-
public partial class RunStepTokenUsage { }
60-
6153
[Experimental("OPENAI001")]
6254
[CodeGenModel("RunStepDetailsToolCallsCodeObjectCodeInterpreterOutputsObject")]
6355
public partial class RunStepCodeInterpreterOutput { }

src/Custom/Assistants/Internal/InternalAssistantMessageClient.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ namespace OpenAI.Assistants;
1818
[CodeGenSuppress("DeleteMessage", typeof(string), typeof(string))]
1919
internal partial class InternalAssistantMessageClient
2020
{
21+
// CUSTOM: Remove virtual keyword.
22+
/// <summary>
23+
/// The HTTP pipeline for sending and receiving REST requests and responses.
24+
/// </summary>
25+
public ClientPipeline Pipeline => _pipeline;
26+
2127
// CUSTOM:
2228
// - Used a custom pipeline.
2329
// - Demoted the endpoint parameter to be a property in the options class.

src/Custom/Assistants/Internal/InternalAssistantRunClient.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ namespace OpenAI.Assistants;
2626
[CodeGenSuppress("GetRunStep", typeof(string), typeof(string), typeof(string))]
2727
internal partial class InternalAssistantRunClient
2828
{
29+
// CUSTOM: Remove virtual keyword.
30+
/// <summary>
31+
/// The HTTP pipeline for sending and receiving REST requests and responses.
32+
/// </summary>
33+
public ClientPipeline Pipeline => _pipeline;
34+
2935
// CUSTOM:
3036
// - Used a custom pipeline.
3137
// - Demoted the endpoint parameter to be a property in the options class.

0 commit comments

Comments
 (0)