// #nullable disable using System.ClientModel; using System.ClientModel.Primitives; using OpenAI; namespace OpenAI.Audio { public partial class AudioClient { private static PipelineMessageClassifier _pipelineMessageClassifier200; private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 ??= PipelineMessageClassifier.Create(stackalloc ushort[] { 200 }); // Plugin customization: make PipelineMessage creation methods virtual internal virtual PipelineMessage CreateGenerateSpeechRequest(BinaryContent content, RequestOptions options) { ClientUriBuilder uri = new ClientUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/audio/speech", false); PipelineMessage message = Pipeline.CreateMessage(uri.ToUri(), "POST", PipelineMessageClassifier200); PipelineRequest request = message.Request; request.Headers.Set("Content-Type", "application/json"); request.Headers.Set("Accept", "application/octet-stream, text/event-stream"); request.Content = content; message.Apply(options); return message; } // Plugin customization: make PipelineMessage creation methods virtual internal virtual PipelineMessage CreateTranscribeAudioRequest(BinaryContent content, string contentType, RequestOptions options) { ClientUriBuilder uri = new ClientUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/audio/transcriptions", false); PipelineMessage message = Pipeline.CreateMessage(uri.ToUri(), "POST", PipelineMessageClassifier200); PipelineRequest request = message.Request; request.Headers.Set("Content-Type", contentType); request.Headers.Set("Accept", "application/json, text/event-stream"); request.Content = content; message.Apply(options); return message; } // Plugin customization: make PipelineMessage creation methods virtual internal virtual PipelineMessage CreateTranslateAudioRequest(BinaryContent content, string contentType, RequestOptions options) { ClientUriBuilder uri = new ClientUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/audio/translations", false); PipelineMessage message = Pipeline.CreateMessage(uri.ToUri(), "POST", PipelineMessageClassifier200); PipelineRequest request = message.Request; request.Headers.Set("Content-Type", contentType); request.Headers.Set("Accept", "application/json"); request.Content = content; message.Apply(options); return message; } // Plugin customization: make PipelineMessage creation methods virtual internal virtual PipelineMessage CreateGetVoiceConsentsRequest(string after, int? limit, RequestOptions options) { ClientUriBuilder uri = new ClientUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/audio/voice_consents", 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 CreateCreateVoiceConsentRequest(BinaryContent content, string contentType, RequestOptions options) { ClientUriBuilder uri = new ClientUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/audio/voice_consents", false); PipelineMessage message = Pipeline.CreateMessage(uri.ToUri(), "POST", PipelineMessageClassifier200); PipelineRequest request = message.Request; request.Headers.Set("Content-Type", contentType); request.Headers.Set("Accept", "application/json"); request.Content = content; message.Apply(options); return message; } // Plugin customization: make PipelineMessage creation methods virtual internal virtual PipelineMessage CreateDeleteVoiceConsentRequest(string consentId, RequestOptions options) { ClientUriBuilder uri = new ClientUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/audio/voice_consents/", false); uri.AppendPath(consentId, true); PipelineMessage message = Pipeline.CreateMessage(uri.ToUri(), "DELETE", 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 CreateGetVoiceConsentRequest(string consentId, RequestOptions options) { ClientUriBuilder uri = new ClientUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/audio/voice_consents/", false); uri.AppendPath(consentId, 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 CreateUpdateVoiceConsentRequest(string consentId, BinaryContent content, RequestOptions options) { ClientUriBuilder uri = new ClientUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/audio/voice_consents/", false); uri.AppendPath(consentId, true); PipelineMessage message = Pipeline.CreateMessage(uri.ToUri(), "POST", PipelineMessageClassifier200); PipelineRequest request = message.Request; request.Headers.Set("Content-Type", "application/json"); request.Headers.Set("Accept", "application/json"); request.Content = content; message.Apply(options); return message; } // Plugin customization: make PipelineMessage creation methods virtual internal virtual PipelineMessage CreateCreateVoiceRequest(BinaryContent content, string contentType, RequestOptions options) { ClientUriBuilder uri = new ClientUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/audio/voices", false); PipelineMessage message = Pipeline.CreateMessage(uri.ToUri(), "POST", PipelineMessageClassifier200); PipelineRequest request = message.Request; request.Headers.Set("Content-Type", contentType); request.Headers.Set("Accept", "application/json"); request.Content = content; message.Apply(options); return message; } } }