//
#nullable disable
using System.ClientModel;
using System.ClientModel.Primitives;
using System.Collections.Generic;
using OpenAI;
namespace OpenAI.Responses
{
public partial class ResponsesClient
{
private static PipelineMessageClassifier _pipelineMessageClassifier200;
private static PipelineMessageClassifier PipelineMessageClassifier200 => _pipelineMessageClassifier200 ??= PipelineMessageClassifier.Create(stackalloc ushort[] { 200 });
// Plugin customization: make PipelineMessage creation methods virtual
internal virtual PipelineMessage CreateCreateResponseRequest(BinaryContent content, RequestOptions options)
{
ClientUriBuilder uri = new ClientUriBuilder();
uri.Reset(_endpoint);
uri.AppendPath("/responses", false);
PipelineMessage message = Pipeline.CreateMessage(uri.ToUri(), "POST", PipelineMessageClassifier200);
PipelineRequest request = message.Request;
request.Headers.Set("Accept", "application/json, text/event-stream");
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 CreateGetResponseRequest(string responseId, IEnumerable include, bool? stream, int? startingAfter, bool? includeObfuscation, RequestOptions options)
{
ClientUriBuilder uri = new ClientUriBuilder();
uri.Reset(_endpoint);
uri.AppendPath("/responses/", false);
uri.AppendPath(responseId, true);
if (include != null && !(include is ChangeTrackingList changeTrackingList && changeTrackingList.IsUndefined))
{
foreach (var @param in include)
{
uri.AppendQuery("include[]", @param.ToString(), true);
}
}
if (stream != null)
{
uri.AppendQuery("stream", TypeFormatters.ConvertToString(stream), true);
}
if (startingAfter != null)
{
uri.AppendQuery("starting_after", TypeFormatters.ConvertToString(startingAfter), true);
}
if (includeObfuscation != null)
{
uri.AppendQuery("include_obfuscation", TypeFormatters.ConvertToString(includeObfuscation), true);
}
PipelineMessage message = Pipeline.CreateMessage(uri.ToUri(), "GET", PipelineMessageClassifier200);
PipelineRequest request = message.Request;
request.Headers.Set("Accept", "application/json, text/event-stream");
message.Apply(options);
return message;
}
// Plugin customization: make PipelineMessage creation methods virtual
internal virtual PipelineMessage CreateDeleteResponseRequest(string responseId, RequestOptions options)
{
ClientUriBuilder uri = new ClientUriBuilder();
uri.Reset(_endpoint);
uri.AppendPath("/responses/", false);
uri.AppendPath(responseId, 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 CreateCancelResponseRequest(string responseId, RequestOptions options)
{
ClientUriBuilder uri = new ClientUriBuilder();
uri.Reset(_endpoint);
uri.AppendPath("/responses/", false);
uri.AppendPath(responseId, 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;
}
// Plugin customization: make PipelineMessage creation methods virtual
internal virtual PipelineMessage CreateGetResponseInputItemsRequest(string responseId, int? limit, string order, string after, string before, RequestOptions options)
{
ClientUriBuilder uri = new ClientUriBuilder();
uri.Reset(_endpoint);
uri.AppendPath("/responses/", false);
uri.AppendPath(responseId, true);
uri.AppendPath("/input_items", false);
if (limit != null)
{
uri.AppendQuery("limit", TypeFormatters.ConvertToString(limit), true);
}
if (order != null)
{
uri.AppendQuery("order", order, true);
}
if (after != null)
{
uri.AppendQuery("after", after, true);
}
if (before != null)
{
uri.AppendQuery("before", before, 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 CreateGetInputTokenCountRequest(BinaryContent content, string contentType, RequestOptions options)
{
ClientUriBuilder uri = new ClientUriBuilder();
uri.Reset(_endpoint);
uri.AppendPath("/responses/input_tokens", 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 CreateCompactResponseRequest(BinaryContent content, string contentType, RequestOptions options)
{
ClientUriBuilder uri = new ClientUriBuilder();
uri.Reset(_endpoint);
uri.AppendPath("/responses/compact", 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;
}
}
}