// #nullable disable using System.ClientModel; using System.ClientModel.Primitives; using OpenAI; namespace OpenAI.Batch { public partial class BatchClient { private static PipelineMessageClassifier _pipelineMessageClassifier200; private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 ??= PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); // Plugin customization: make PipelineMessage creation methods virtual internal virtual PipelineMessage CreateCreateBatchRequest(BinaryContent content, RequestOptions options) { ClientUriBuilder uri = new ClientUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/batches", false); PipelineMessage message = Pipeline.CreateMessage(uri.ToUri(), "POST", PipelineMessageClassifier200); PipelineRequest request = message.Request; request.Headers.Set("Accept", "application/json"); request.Headers.Set("Content-Type", "application/json"); request.Content = content; message.Apply(options); return message; } // Plugin customization: make PipelineMessage creation methods virtual internal virtual PipelineMessage CreateGetBatchesRequest(string after, int? limit, RequestOptions options) { ClientUriBuilder uri = new ClientUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/batches", false); if (after != null) { uri.AppendQuery("after", after, true); } if (limit != null) { uri.AppendQuery("limit", TypeFormatters.ConvertToString(limit), true); } PipelineMessage message = Pipeline.CreateMessage(uri.ToUri(), "GET", PipelineMessageClassifier200); PipelineRequest request = message.Request; request.Headers.Set("Accept", "application/json"); message.Apply(options); return message; } // Plugin customization: make PipelineMessage creation methods virtual internal virtual PipelineMessage CreateGetBatchRequest(string batchId, RequestOptions options) { ClientUriBuilder uri = new ClientUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/batches/", false); uri.AppendPath(batchId, true); PipelineMessage message = Pipeline.CreateMessage(uri.ToUri(), "GET", PipelineMessageClassifier200); PipelineRequest request = message.Request; request.Headers.Set("Accept", "application/json"); message.Apply(options); return message; } // Plugin customization: make PipelineMessage creation methods virtual internal virtual PipelineMessage CreateCancelBatchRequest(string batchId, RequestOptions options) { ClientUriBuilder uri = new ClientUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/batches/", false); uri.AppendPath(batchId, true); uri.AppendPath("/cancel", false); PipelineMessage message = Pipeline.CreateMessage(uri.ToUri(), "POST", PipelineMessageClassifier200); PipelineRequest request = message.Request; request.Headers.Set("Accept", "application/json"); message.Apply(options); return message; } } }