src/Custom/LegacyCompletions/Internal/LegacyCompletionClient.cs (34 lines of code) (raw):

using System; using System.ClientModel.Primitives; using System.ClientModel; namespace OpenAI.LegacyCompletions; // CUSTOM: // - Renamed. // - Suppressed constructor that takes endpoint parameter; endpoint is now a property in the options class. // - Suppressed methods that only take the options parameter. /// <summary> The service client for OpenAI legacy completion operations. </summary> [CodeGenType("Completions")] [CodeGenSuppress("LegacyCompletionClient", typeof(ClientPipeline), typeof(Uri))] internal partial class LegacyCompletionClient { private readonly string _model; // CUSTOM: Added as a convenience. /// <summary> Initializes a new instance of <see cref="LegacyCompletionClient"/>. </summary> /// <param name="model"> The name of the model to use in requests sent to the service. To learn more about the available models, see <see href="https://platform.openai.com/docs/models"/>. </param> /// <param name="apiKey"> The API key to authenticate with the service. </param> /// <exception cref="ArgumentNullException"> <paramref name="model"/> or <paramref name="apiKey"/> is null. </exception> /// <exception cref="ArgumentException"> <paramref name="model"/> is an empty string, and was expected to be non-empty. </exception> public LegacyCompletionClient(string model, string apiKey) : this(model, new ApiKeyCredential(apiKey), new OpenAIClientOptions()) { } // CUSTOM: // - Added `model` parameter. // - Used a custom pipeline. // - Demoted the endpoint parameter to be a property in the options class. /// <summary> Initializes a new instance of <see cref="LegacyCompletionClient"/>. </summary> /// <param name="model"> The name of the model to use in requests sent to the service. To learn more about the available models, see <see href="https://platform.openai.com/docs/models"/>. </param> /// <param name="credential"> The API key to authenticate with the service. </param> /// <exception cref="ArgumentNullException"> <paramref name="model"/> or <paramref name="credential"/> is null. </exception> /// <exception cref="ArgumentException"> <paramref name="model"/> is an empty string, and was expected to be non-empty. </exception> public LegacyCompletionClient(string model, ApiKeyCredential credential) : this(model, credential, new OpenAIClientOptions()) { } // CUSTOM: // - Added `model` parameter. // - Used a custom pipeline. // - Demoted the endpoint parameter to be a property in the options class. /// <summary> Initializes a new instance of <see cref="LegacyCompletionClient"/>. </summary> /// <param name="model"> The name of the model to use in requests sent to the service. To learn more about the available models, see <see href="https://platform.openai.com/docs/models"/>. </param> /// <param name="credential"> The API key to authenticate with the service. </param> /// <param name="options"> The options to configure the client. </param> /// <exception cref="ArgumentNullException"> <paramref name="model"/> or <paramref name="credential"/> is null. </exception> /// <exception cref="ArgumentException"> <paramref name="model"/> is an empty string, and was expected to be non-empty. </exception> public LegacyCompletionClient(string model, ApiKeyCredential credential, OpenAIClientOptions options) { Argument.AssertNotNullOrEmpty(model, nameof(model)); Argument.AssertNotNull(credential, nameof(credential)); options ??= new OpenAIClientOptions(); _model = model; Pipeline = OpenAIClient.CreatePipeline(credential, options); _endpoint = OpenAIClient.GetEndpoint(options); } // CUSTOM: // - Added `model` parameter. // - Used a custom pipeline. // - Demoted the endpoint parameter to be a property in the options class. // - Made protected. /// <summary> Initializes a new instance of <see cref="LegacyCompletionClient"/>. </summary> /// <param name="pipeline"> The HTTP pipeline to send and receive REST requests and responses. </param> /// <param name="model"> The name of the model to use in requests sent to the service. To learn more about the available models, see <see href="https://platform.openai.com/docs/models"/>. </param> /// <param name="options"> The options to configure the client. </param> /// <exception cref="ArgumentNullException"> <paramref name="pipeline"/> or <paramref name="model"/> is null. </exception> /// <exception cref="ArgumentException"> <paramref name="model"/> is an empty string, and was expected to be non-empty. </exception> protected internal LegacyCompletionClient(ClientPipeline pipeline, string model, OpenAIClientOptions options) { Argument.AssertNotNull(pipeline, nameof(pipeline)); Argument.AssertNotNullOrEmpty(model, nameof(model)); options ??= new OpenAIClientOptions(); _model = model; Pipeline = pipeline; _endpoint = OpenAIClient.GetEndpoint(options); } }