From d77539ca04467c166f848953eb866012a265555c Mon Sep 17 00:00:00 2001 From: Travis Wilson <35748617+trrwilson@users.noreply.github.com> Date: Tue, 23 Jul 2024 08:33:09 -0700 Subject: [PATCH] refresh (#70) --- CHANGELOG.md | 5 +- api/api.md | 277 +++++++++--------- .../Assistants/AssistantClient.Protocol.cs | 49 ++++ src/Custom/Assistants/AssistantClient.cs | 67 +++++ .../FileSearchToolDefinition.Serialization.cs | 8 + .../Assistants/FileSearchToolDefinition.cs | 2 +- src/Custom/VectorStores/VectorStoreClient.cs | 68 +++++ src/Generated/AssistantClient.cs | 36 --- src/Generated/VectorStoreClient.cs | 36 --- src/OpenAI.csproj | 1 + 10 files changed, 342 insertions(+), 207 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f744949b..13dbd375 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,8 +10,9 @@ - ([#49](https://github.com/openai/openai-dotnet/issues/49)) Fixed a bug with extensible enums implementing case-insensitive equality but case-sensitive hash codes. (commit_hash) - ([#57](https://github.com/openai/openai-dotnet/issues/57)) Fixed a bug with requests URIs with query string parameter potentially containing a malformed double question mark (`??`) on .NET Framework (net481). (commit_hash) - -### Other Changes +- Added optional `CancellationToken` parameters to methods for `AssistantClient` and `VectorStore` client, consistent with past changes in [19a65a0](https://github.com/openai/openai-dotnet/commit/19a65a0a943fa3bef1ec8504708aaa526a1ee03a) (commit_link_) +- Fixed Assistants `FileSearchToolDefinition`'s `MaxResults` parameter to appropriately serialize and deserialize the value (commit_link) +- Added missing `[EditorBrowsable(EditorBrowsableState.Never)]` attributes to `AssistantClient` protocol methods, which should improve discoverability of the strongly typed methods (commit_link) ## 2.0.0-beta.7 (2024-06-24) diff --git a/api/api.md b/api/api.md index 3cf12f0d..de4ad415 100644 --- a/api/api.md +++ b/api/api.md @@ -42,147 +42,148 @@ namespace OpenAI { namespace OpenAI.Assistants { internal [Experimental("OPENAI001")] public class AssistantClient { - public AssistantClient(ApiKeyCredential credential, OpenAIClientOptions options = null); + protected AssistantClient(); public AssistantClient(OpenAIClientOptions options = null); + public AssistantClient(ApiKeyCredential credential, OpenAIClientOptions options = null); protected AssistantClient(ClientPipeline pipeline, Uri endpoint, OpenAIClientOptions options); - protected AssistantClient(); - public virtual ClientPipeline Pipeline { get; } public virtual ClientResult CancelRun(ThreadRun run); - public virtual ClientResult CancelRun(string threadId, string runId); public virtual ClientResult CancelRun(string threadId, string runId, RequestOptions options); + public virtual ClientResult CancelRun(string threadId, string runId, CancellationToken cancellationToken = default); public virtual Task> CancelRunAsync(ThreadRun run); - public virtual Task> CancelRunAsync(string threadId, string runId); public virtual Task CancelRunAsync(string threadId, string runId, RequestOptions options); - public virtual ClientResult CreateAssistant(string model, AssistantCreationOptions options = null); + public virtual Task> CancelRunAsync(string threadId, string runId, CancellationToken cancellationToken = default); + public virtual ClientResult CreateAssistant(string model, AssistantCreationOptions options = null, CancellationToken cancellationToken = default); public virtual ClientResult CreateAssistant(BinaryContent content, RequestOptions options = null); - public virtual Task> CreateAssistantAsync(string model, AssistantCreationOptions options = null); + public virtual Task> CreateAssistantAsync(string model, AssistantCreationOptions options = null, CancellationToken cancellationToken = default); public virtual Task CreateAssistantAsync(BinaryContent content, RequestOptions options = null); - public virtual ClientResult CreateMessage(AssistantThread thread, IEnumerable content, MessageCreationOptions options = null); - public virtual ClientResult CreateMessage(string threadId, IEnumerable content, MessageCreationOptions options = null); + public virtual ClientResult CreateMessage(AssistantThread thread, MessageRole role, IEnumerable content, MessageCreationOptions options = null); + public virtual ClientResult CreateMessage(string threadId, MessageRole role, IEnumerable content, MessageCreationOptions options = null, CancellationToken cancellationToken = default); public virtual ClientResult CreateMessage(string threadId, BinaryContent content, RequestOptions options = null); - public virtual Task> CreateMessageAsync(AssistantThread thread, IEnumerable content, MessageCreationOptions options = null); - public virtual Task> CreateMessageAsync(string threadId, IEnumerable content, MessageCreationOptions options = null); + public virtual Task> CreateMessageAsync(AssistantThread thread, MessageRole role, IEnumerable content, MessageCreationOptions options = null); + public virtual Task> CreateMessageAsync(string threadId, MessageRole role, IEnumerable content, MessageCreationOptions options = null, CancellationToken cancellationToken = default); public virtual Task CreateMessageAsync(string threadId, BinaryContent content, RequestOptions options = null); public virtual ClientResult CreateRun(AssistantThread thread, Assistant assistant, RunCreationOptions options = null); - public virtual ClientResult CreateRun(string threadId, string assistantId, RunCreationOptions options = null); + public virtual ClientResult CreateRun(string threadId, string assistantId, RunCreationOptions options = null, CancellationToken cancellationToken = default); public virtual ClientResult CreateRun(string threadId, BinaryContent content, RequestOptions options = null); public virtual Task> CreateRunAsync(AssistantThread thread, Assistant assistant, RunCreationOptions options = null); - public virtual Task> CreateRunAsync(string threadId, string assistantId, RunCreationOptions options = null); + public virtual Task> CreateRunAsync(string threadId, string assistantId, RunCreationOptions options = null, CancellationToken cancellationToken = default); public virtual Task CreateRunAsync(string threadId, BinaryContent content, RequestOptions options = null); public virtual ResultCollection CreateRunStreaming(AssistantThread thread, Assistant assistant, RunCreationOptions options = null); - public virtual ResultCollection CreateRunStreaming(string threadId, string assistantId, RunCreationOptions options = null); + public virtual ResultCollection CreateRunStreaming(string threadId, string assistantId, RunCreationOptions options = null, CancellationToken cancellationToken = default); public virtual AsyncResultCollection CreateRunStreamingAsync(AssistantThread thread, Assistant assistant, RunCreationOptions options = null); - public virtual AsyncResultCollection CreateRunStreamingAsync(string threadId, string assistantId, RunCreationOptions options = null); - public virtual ClientResult CreateThread(ThreadCreationOptions options = null); + public virtual AsyncResultCollection CreateRunStreamingAsync(string threadId, string assistantId, RunCreationOptions options = null, CancellationToken cancellationToken = default); + public virtual ClientResult CreateThread(ThreadCreationOptions options = null, CancellationToken cancellationToken = default); public virtual ClientResult CreateThread(BinaryContent content, RequestOptions options = null); public virtual ClientResult CreateThreadAndRun(Assistant assistant, ThreadCreationOptions threadOptions = null, RunCreationOptions runOptions = null); - public virtual ClientResult CreateThreadAndRun(string assistantId, ThreadCreationOptions threadOptions = null, RunCreationOptions runOptions = null); + public virtual ClientResult CreateThreadAndRun(string assistantId, ThreadCreationOptions threadOptions = null, RunCreationOptions runOptions = null, CancellationToken cancellationToken = default); public virtual ClientResult CreateThreadAndRun(BinaryContent content, RequestOptions options = null); public virtual Task> CreateThreadAndRunAsync(Assistant assistant, ThreadCreationOptions threadOptions = null, RunCreationOptions runOptions = null); - public virtual Task> CreateThreadAndRunAsync(string assistantId, ThreadCreationOptions threadOptions = null, RunCreationOptions runOptions = null); + public virtual Task> CreateThreadAndRunAsync(string assistantId, ThreadCreationOptions threadOptions = null, RunCreationOptions runOptions = null, CancellationToken cancellationToken = default); public virtual Task CreateThreadAndRunAsync(BinaryContent content, RequestOptions options = null); public virtual ResultCollection CreateThreadAndRunStreaming(Assistant assistant, ThreadCreationOptions threadOptions = null, RunCreationOptions runOptions = null); - public virtual ResultCollection CreateThreadAndRunStreaming(string assistantId, ThreadCreationOptions threadOptions = null, RunCreationOptions runOptions = null); + public virtual ResultCollection CreateThreadAndRunStreaming(string assistantId, ThreadCreationOptions threadOptions = null, RunCreationOptions runOptions = null, CancellationToken cancellationToken = default); public virtual AsyncResultCollection CreateThreadAndRunStreamingAsync(Assistant assistant, ThreadCreationOptions threadOptions = null, RunCreationOptions runOptions = null); - public virtual AsyncResultCollection CreateThreadAndRunStreamingAsync(string assistantId, ThreadCreationOptions threadOptions = null, RunCreationOptions runOptions = null); - public virtual Task> CreateThreadAsync(ThreadCreationOptions options = null); + public virtual AsyncResultCollection CreateThreadAndRunStreamingAsync(string assistantId, ThreadCreationOptions threadOptions = null, RunCreationOptions runOptions = null, CancellationToken cancellationToken = default); + public virtual Task> CreateThreadAsync(ThreadCreationOptions options = null, CancellationToken cancellationToken = default); public virtual Task CreateThreadAsync(BinaryContent content, RequestOptions options = null); public virtual ClientResult DeleteAssistant(Assistant assistant); - public virtual ClientResult DeleteAssistant(string assistantId); public virtual ClientResult DeleteAssistant(string assistantId, RequestOptions options); + public virtual ClientResult DeleteAssistant(string assistantId, CancellationToken cancellationToken = default); public virtual Task> DeleteAssistantAsync(Assistant assistant); - public virtual Task> DeleteAssistantAsync(string assistantId); public virtual Task DeleteAssistantAsync(string assistantId, RequestOptions options); + public virtual Task> DeleteAssistantAsync(string assistantId, CancellationToken cancellationToken = default); + public virtual ClientResult DeleteMessage(ThreadMessage message); - public virtual ClientResult DeleteMessage(string threadId, string messageId); public virtual ClientResult DeleteMessage(string threadId, string messageId, RequestOptions options); + public virtual ClientResult DeleteMessage(string threadId, string messageId, CancellationToken cancellationToken = default); public virtual Task> DeleteMessageAsync(ThreadMessage message); - public virtual Task> DeleteMessageAsync(string threadId, string messageId); public virtual Task DeleteMessageAsync(string threadId, string messageId, RequestOptions options); + public virtual Task> DeleteMessageAsync(string threadId, string messageId, CancellationToken cancellationToken = default); public virtual ClientResult DeleteThread(AssistantThread thread); - public virtual ClientResult DeleteThread(string threadId); public virtual ClientResult DeleteThread(string threadId, RequestOptions options); + public virtual ClientResult DeleteThread(string threadId, CancellationToken cancellationToken = default); public virtual Task> DeleteThreadAsync(AssistantThread thread); - public virtual Task> DeleteThreadAsync(string threadId); public virtual Task DeleteThreadAsync(string threadId, RequestOptions options); + public virtual Task> DeleteThreadAsync(string threadId, CancellationToken cancellationToken = default); public virtual ClientResult GetAssistant(string assistantId, RequestOptions options); - public virtual ClientResult GetAssistant(string assistantId); + public virtual ClientResult GetAssistant(string assistantId, CancellationToken cancellationToken = default); public virtual Task GetAssistantAsync(string assistantId, RequestOptions options); - public virtual Task> GetAssistantAsync(string assistantId); - public virtual PageableCollection GetAssistants(ListOrder? resultOrder = null); + public virtual Task> GetAssistantAsync(string assistantId, CancellationToken cancellationToken = default); public virtual ClientResult GetAssistants(int? limit, string order, string after, string before, RequestOptions options); - public virtual AsyncPageableCollection GetAssistantsAsync(ListOrder? resultOrder = null); + public virtual PageableCollection GetAssistants(ListOrder? resultOrder = null, CancellationToken cancellationToken = default); public virtual Task GetAssistantsAsync(int? limit, string order, string after, string before, RequestOptions options); + public virtual AsyncPageableCollection GetAssistantsAsync(ListOrder? resultOrder = null, CancellationToken cancellationToken = default); public virtual ClientResult GetMessage(ThreadMessage message); - public virtual ClientResult GetMessage(string threadId, string messageId); public virtual ClientResult GetMessage(string threadId, string messageId, RequestOptions options); + public virtual ClientResult GetMessage(string threadId, string messageId, CancellationToken cancellationToken = default); public virtual Task> GetMessageAsync(ThreadMessage message); - public virtual Task> GetMessageAsync(string threadId, string messageId); public virtual Task GetMessageAsync(string threadId, string messageId, RequestOptions options); + public virtual Task> GetMessageAsync(string threadId, string messageId, CancellationToken cancellationToken = default); public virtual PageableCollection GetMessages(AssistantThread thread, ListOrder? resultOrder = null); - public virtual PageableCollection GetMessages(string threadId, ListOrder? resultOrder = null); public virtual ClientResult GetMessages(string threadId, int? limit, string order, string after, string before, RequestOptions options); + public virtual PageableCollection GetMessages(string threadId, ListOrder? resultOrder = null, CancellationToken cancellationToken = default); public virtual AsyncPageableCollection GetMessagesAsync(AssistantThread thread, ListOrder? resultOrder = null); - public virtual AsyncPageableCollection GetMessagesAsync(string threadId, ListOrder? resultOrder = null); public virtual Task GetMessagesAsync(string threadId, int? limit, string order, string after, string before, RequestOptions options); + public virtual AsyncPageableCollection GetMessagesAsync(string threadId, ListOrder? resultOrder = null, CancellationToken cancellationToken = default); public virtual ClientResult GetRun(ThreadRun run); - public virtual ClientResult GetRun(string threadId, string runId); public virtual ClientResult GetRun(string threadId, string runId, RequestOptions options); + public virtual ClientResult GetRun(string threadId, string runId, CancellationToken cancellationToken = default); public virtual Task> GetRunAsync(ThreadRun run); - public virtual Task> GetRunAsync(string threadId, string runId); public virtual Task GetRunAsync(string threadId, string runId, RequestOptions options); + public virtual Task> GetRunAsync(string threadId, string runId, CancellationToken cancellationToken = default); public virtual PageableCollection GetRuns(AssistantThread thread, ListOrder? resultOrder = null); - public virtual PageableCollection GetRuns(string threadId, ListOrder? resultOrder = null); public virtual ClientResult GetRuns(string threadId, int? limit, string order, string after, string before, RequestOptions options); + public virtual PageableCollection GetRuns(string threadId, ListOrder? resultOrder = null, CancellationToken cancellationToken = default); public virtual AsyncPageableCollection GetRunsAsync(AssistantThread thread, ListOrder? resultOrder = null); - public virtual AsyncPageableCollection GetRunsAsync(string threadId, ListOrder? resultOrder = null); public virtual Task GetRunsAsync(string threadId, int? limit, string order, string after, string before, RequestOptions options); - public virtual ClientResult GetRunStep(string threadId, string runId, string stepId); + public virtual AsyncPageableCollection GetRunsAsync(string threadId, ListOrder? resultOrder = null, CancellationToken cancellationToken = default); public virtual ClientResult GetRunStep(string threadId, string runId, string stepId, RequestOptions options); - public virtual Task> GetRunStepAsync(string threadId, string runId, string stepId); + public virtual ClientResult GetRunStep(string threadId, string runId, string stepId, CancellationToken cancellationToken = default); public virtual Task GetRunStepAsync(string threadId, string runId, string stepId, RequestOptions options); + public virtual Task> GetRunStepAsync(string threadId, string runId, string stepId, CancellationToken cancellationToken = default); public virtual PageableCollection GetRunSteps(ThreadRun run, ListOrder? resultOrder = null); - public virtual PageableCollection GetRunSteps(string threadId, string runId, ListOrder? resultOrder = null); public virtual ClientResult GetRunSteps(string threadId, string runId, int? limit, string order, string after, string before, RequestOptions options); + public virtual PageableCollection GetRunSteps(string threadId, string runId, ListOrder? resultOrder = null, CancellationToken cancellationToken = default); public virtual AsyncPageableCollection GetRunStepsAsync(ThreadRun run, ListOrder? resultOrder = null); - public virtual AsyncPageableCollection GetRunStepsAsync(string threadId, string runId, ListOrder? resultOrder = null); public virtual Task GetRunStepsAsync(string threadId, string runId, int? limit, string order, string after, string before, RequestOptions options); + public virtual AsyncPageableCollection GetRunStepsAsync(string threadId, string runId, ListOrder? resultOrder = null, CancellationToken cancellationToken = default); public virtual ClientResult GetThread(AssistantThread thread); - public virtual ClientResult GetThread(string threadId); public virtual ClientResult GetThread(string threadId, RequestOptions options); + public virtual ClientResult GetThread(string threadId, CancellationToken cancellationToken = default); public virtual Task> GetThreadAsync(AssistantThread thread); - public virtual Task> GetThreadAsync(string threadId); public virtual Task GetThreadAsync(string threadId, RequestOptions options); + public virtual Task> GetThreadAsync(string threadId, CancellationToken cancellationToken = default); public virtual ClientResult ModifyAssistant(Assistant assistant, AssistantModificationOptions options); + public virtual ClientResult ModifyAssistant(string assistantId, AssistantModificationOptions options, CancellationToken cancellationToken = default); public virtual ClientResult ModifyAssistant(string assistantId, BinaryContent content, RequestOptions options = null); - public virtual ClientResult ModifyAssistant(string assistantId, AssistantModificationOptions assistant); public virtual Task> ModifyAssistantAsync(Assistant assistant, AssistantModificationOptions options); + public virtual Task> ModifyAssistantAsync(string assistantId, AssistantModificationOptions options, CancellationToken cancellationToken = default); public virtual Task ModifyAssistantAsync(string assistantId, BinaryContent content, RequestOptions options = null); - public virtual Task> ModifyAssistantAsync(string assistantId, AssistantModificationOptions assistant); public virtual ClientResult ModifyMessage(ThreadMessage message, MessageModificationOptions options); - public virtual ClientResult ModifyMessage(string threadId, string messageId, MessageModificationOptions options); + public virtual ClientResult ModifyMessage(string threadId, string messageId, MessageModificationOptions options, CancellationToken cancellationToken = default); public virtual ClientResult ModifyMessage(string threadId, string messageId, BinaryContent content, RequestOptions options = null); public virtual Task> ModifyMessageAsync(ThreadMessage message, MessageModificationOptions options); - public virtual Task> ModifyMessageAsync(string threadId, string messageId, MessageModificationOptions options); + public virtual Task> ModifyMessageAsync(string threadId, string messageId, MessageModificationOptions options, CancellationToken cancellationToken = default); public virtual Task ModifyMessageAsync(string threadId, string messageId, BinaryContent content, RequestOptions options = null); public virtual ClientResult ModifyRun(string threadId, string runId, BinaryContent content, RequestOptions options = null); public virtual Task ModifyRunAsync(string threadId, string runId, BinaryContent content, RequestOptions options = null); public virtual ClientResult ModifyThread(AssistantThread thread, ThreadModificationOptions options); - public virtual ClientResult ModifyThread(string threadId, ThreadModificationOptions options); + public virtual ClientResult ModifyThread(string threadId, ThreadModificationOptions options, CancellationToken cancellationToken = default); public virtual ClientResult ModifyThread(string threadId, BinaryContent content, RequestOptions options = null); public virtual Task> ModifyThreadAsync(AssistantThread thread, ThreadModificationOptions options); - public virtual Task> ModifyThreadAsync(string threadId, ThreadModificationOptions options); + public virtual Task> ModifyThreadAsync(string threadId, ThreadModificationOptions options, CancellationToken cancellationToken = default); public virtual Task ModifyThreadAsync(string threadId, BinaryContent content, RequestOptions options = null); + public virtual ClientPipeline Pipeline { get; } public virtual ClientResult SubmitToolOutputsToRun(ThreadRun run, IEnumerable toolOutputs); - public virtual ClientResult SubmitToolOutputsToRun(string threadId, string runId, IEnumerable toolOutputs); public virtual ClientResult SubmitToolOutputsToRun(string threadId, string runId, BinaryContent content, RequestOptions options = null); + public virtual ClientResult SubmitToolOutputsToRun(string threadId, string runId, IEnumerable toolOutputs, CancellationToken cancellationToken = default); public virtual Task> SubmitToolOutputsToRunAsync(ThreadRun run, IEnumerable toolOutputs); - public virtual Task> SubmitToolOutputsToRunAsync(string threadId, string runId, IEnumerable toolOutputs); public virtual Task SubmitToolOutputsToRunAsync(string threadId, string runId, BinaryContent content, RequestOptions options = null); + public virtual Task> SubmitToolOutputsToRunAsync(string threadId, string runId, IEnumerable toolOutputs, CancellationToken cancellationToken = default); public virtual ResultCollection SubmitToolOutputsToRunStreaming(ThreadRun run, IEnumerable toolOutputs); - public virtual ResultCollection SubmitToolOutputsToRunStreaming(string threadId, string runId, IEnumerable toolOutputs); + public virtual ResultCollection SubmitToolOutputsToRunStreaming(string threadId, string runId, IEnumerable toolOutputs, CancellationToken cancellationToken = default); public virtual AsyncResultCollection SubmitToolOutputsToRunStreamingAsync(ThreadRun run, IEnumerable toolOutputs); - public virtual AsyncResultCollection SubmitToolOutputsToRunStreamingAsync(string threadId, string runId, IEnumerable toolOutputs); + public virtual AsyncResultCollection SubmitToolOutputsToRunStreamingAsync(string threadId, string runId, IEnumerable toolOutputs, CancellationToken cancellationToken = default); } public class AssistantCreationOptions { public AssistantCreationOptions(); @@ -286,6 +287,7 @@ namespace OpenAI.Assistants { } public class CodeInterpreterToolDefinition : ToolDefinition { public CodeInterpreterToolDefinition(); + protected override void WriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); } public class CodeInterpreterToolResources { public CodeInterpreterToolResources(); @@ -294,6 +296,7 @@ namespace OpenAI.Assistants { public class FileSearchToolDefinition : ToolDefinition { public FileSearchToolDefinition(); public int? MaxResults { get; init; } + protected override void WriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); } public class FileSearchToolResources { public FileSearchToolResources(); @@ -307,6 +310,7 @@ namespace OpenAI.Assistants { public string Description { get; init; } public required string FunctionName { get; init; } public BinaryData Parameters { get; init; } + protected override void WriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); } public abstract class MessageContent { protected MessageContent(); @@ -319,6 +323,7 @@ namespace OpenAI.Assistants { public static MessageContent FromImageUrl(Uri imageUri, MessageImageDetail? detail = null); public static MessageContent FromText(string text); public static implicit operator MessageContent(string value); + protected abstract void WriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); } public class MessageContentUpdate : StreamingUpdate { public MessageImageDetail? ImageDetail { get; } @@ -641,6 +646,7 @@ namespace OpenAI.Assistants { public static CodeInterpreterToolDefinition CreateCodeInterpreter(); public static FileSearchToolDefinition CreateFileSearch(int? maxResults = null); public static FunctionToolDefinition CreateFunction(string name, string description = null, BinaryData parameters = null); + protected abstract void WriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); } public class ToolOutput { public ToolOutput(string toolCallId, string output); @@ -711,20 +717,20 @@ namespace OpenAI.Audio { protected AudioClient(ClientPipeline pipeline, string model, Uri endpoint, OpenAIClientOptions options); protected AudioClient(); public virtual ClientPipeline Pipeline { get; } - public virtual ClientResult GenerateSpeechFromText(string text, GeneratedSpeechVoice voice, SpeechGenerationOptions options = null); + public virtual ClientResult GenerateSpeechFromText(string text, GeneratedSpeechVoice voice, SpeechGenerationOptions options = null, CancellationToken cancellationToken = default); public virtual ClientResult GenerateSpeechFromText(BinaryContent content, RequestOptions options = null); - public virtual Task> GenerateSpeechFromTextAsync(string text, GeneratedSpeechVoice voice, SpeechGenerationOptions options = null); + public virtual Task> GenerateSpeechFromTextAsync(string text, GeneratedSpeechVoice voice, SpeechGenerationOptions options = null, CancellationToken cancellationToken = default); public virtual Task GenerateSpeechFromTextAsync(BinaryContent content, RequestOptions options = null); - public virtual ClientResult TranscribeAudio(Stream audio, string audioFilename, AudioTranscriptionOptions options = null); + public virtual ClientResult TranscribeAudio(Stream audio, string audioFilename, AudioTranscriptionOptions options = null, CancellationToken cancellationToken = default); public virtual ClientResult TranscribeAudio(string audioFilePath, AudioTranscriptionOptions options = null); public virtual ClientResult TranscribeAudio(BinaryContent content, string contentType, RequestOptions options = null); - public virtual Task> TranscribeAudioAsync(Stream audio, string audioFilename, AudioTranscriptionOptions options = null); + public virtual Task> TranscribeAudioAsync(Stream audio, string audioFilename, AudioTranscriptionOptions options = null, CancellationToken cancellationToken = default); public virtual Task> TranscribeAudioAsync(string audioFilePath, AudioTranscriptionOptions options = null); public virtual Task TranscribeAudioAsync(BinaryContent content, string contentType, RequestOptions options = null); - public virtual ClientResult TranslateAudio(Stream audio, string audioFilename, AudioTranslationOptions options = null); + public virtual ClientResult TranslateAudio(Stream audio, string audioFilename, AudioTranslationOptions options = null, CancellationToken cancellationToken = default); public virtual ClientResult TranslateAudio(string audioFilePath, AudioTranslationOptions options = null); public virtual ClientResult TranslateAudio(BinaryContent content, string contentType, RequestOptions options = null); - public virtual Task> TranslateAudioAsync(Stream audio, string audioFilename, AudioTranslationOptions options = null); + public virtual Task> TranslateAudioAsync(Stream audio, string audioFilename, AudioTranslationOptions options = null, CancellationToken cancellationToken = default); public virtual Task> TranslateAudioAsync(string audioFilePath, AudioTranslationOptions options = null); public virtual Task TranslateAudioAsync(BinaryContent content, string contentType, RequestOptions options = null); } @@ -840,15 +846,15 @@ namespace OpenAI.Chat { protected ChatClient(ClientPipeline pipeline, string model, Uri endpoint, OpenAIClientOptions options); protected ChatClient(); public virtual ClientPipeline Pipeline { get; } - public virtual ClientResult CompleteChat(IEnumerable messages, ChatCompletionOptions options = null); + public virtual ClientResult CompleteChat(IEnumerable messages, ChatCompletionOptions options = null, CancellationToken cancellationToken = default); public virtual ClientResult CompleteChat(params ChatMessage[] messages); public virtual ClientResult CompleteChat(BinaryContent content, RequestOptions options = null); - public virtual Task> CompleteChatAsync(IEnumerable messages, ChatCompletionOptions options = null); + public virtual Task> CompleteChatAsync(IEnumerable messages, ChatCompletionOptions options = null, CancellationToken cancellationToken = default); public virtual Task> CompleteChatAsync(params ChatMessage[] messages); public virtual Task CompleteChatAsync(BinaryContent content, RequestOptions options = null); - public virtual ResultCollection CompleteChatStreaming(IEnumerable messages, ChatCompletionOptions options = null); + public virtual ResultCollection CompleteChatStreaming(IEnumerable messages, ChatCompletionOptions options = null, CancellationToken cancellationToken = default); public virtual ResultCollection CompleteChatStreaming(params ChatMessage[] messages); - public virtual AsyncResultCollection CompleteChatStreamingAsync(IEnumerable messages, ChatCompletionOptions options = null); + public virtual AsyncResultCollection CompleteChatStreamingAsync(IEnumerable messages, ChatCompletionOptions options = null, CancellationToken cancellationToken = default); public virtual AsyncResultCollection CompleteChatStreamingAsync(params ChatMessage[] messages); } public class ChatCompletionOptions { @@ -879,6 +885,7 @@ namespace OpenAI.Chat { public ChatFunctionCall FunctionCall { get; init; } public string ParticipantName { get; init; } public IList ToolCalls { get; } + protected override void WriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); } public class ChatCompletion { public IReadOnlyList Content { get; } @@ -925,6 +932,7 @@ namespace OpenAI.Chat { public static UserChatMessage CreateUserMessage(IEnumerable contentParts); public static UserChatMessage CreateUserMessage(params ChatMessageContentPart[] contentParts); public static implicit operator ChatMessage(string userMessage); + protected abstract void WriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); } public class ChatMessageContentPart { public BinaryData ImageBytes { get; } @@ -1017,6 +1025,7 @@ namespace OpenAI.Chat { public class FunctionChatMessage : ChatMessage { public FunctionChatMessage(string functionName, string content = null); public string FunctionName { get; } + protected override void WriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); } public readonly struct ImageChatMessageContentPartDetail : IEquatable { public ImageChatMessageContentPartDetail(string value); @@ -1058,16 +1067,19 @@ namespace OpenAI.Chat { public class SystemChatMessage : ChatMessage { public SystemChatMessage(string content); public string ParticipantName { get; init; } + protected override void WriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); } public class ToolChatMessage : ChatMessage { public ToolChatMessage(string toolCallId, string content); public string ToolCallId { get; } + protected override void WriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); } public class UserChatMessage : ChatMessage { public UserChatMessage(string content); public UserChatMessage(IEnumerable content); public UserChatMessage(params ChatMessageContentPart[] content); public string ParticipantName { get; init; } + protected override void WriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options); } public enum ChatFinishReason { Stop = 0, @@ -1091,13 +1103,13 @@ namespace OpenAI.Embeddings { protected EmbeddingClient(ClientPipeline pipeline, string model, Uri endpoint, OpenAIClientOptions options); protected EmbeddingClient(); public virtual ClientPipeline Pipeline { get; } - public virtual ClientResult GenerateEmbedding(string input, EmbeddingGenerationOptions options = null); - public virtual Task> GenerateEmbeddingAsync(string input, EmbeddingGenerationOptions options = null); - public virtual ClientResult GenerateEmbeddings(IEnumerable inputs, EmbeddingGenerationOptions options = null); - public virtual ClientResult GenerateEmbeddings(IEnumerable> inputs, EmbeddingGenerationOptions options = null); + public virtual ClientResult GenerateEmbedding(string input, EmbeddingGenerationOptions options = null, CancellationToken cancellationToken = default); + public virtual Task> GenerateEmbeddingAsync(string input, EmbeddingGenerationOptions options = null, CancellationToken cancellationToken = default); + public virtual ClientResult GenerateEmbeddings(IEnumerable inputs, EmbeddingGenerationOptions options = null, CancellationToken cancellationToken = default); + public virtual ClientResult GenerateEmbeddings(IEnumerable> inputs, EmbeddingGenerationOptions options = null, CancellationToken cancellationToken = default); public virtual ClientResult GenerateEmbeddings(BinaryContent content, RequestOptions options = null); - public virtual Task> GenerateEmbeddingsAsync(IEnumerable inputs, EmbeddingGenerationOptions options = null); - public virtual Task> GenerateEmbeddingsAsync(IEnumerable> inputs, EmbeddingGenerationOptions options = null); + public virtual Task> GenerateEmbeddingsAsync(IEnumerable inputs, EmbeddingGenerationOptions options = null, CancellationToken cancellationToken = default); + public virtual Task> GenerateEmbeddingsAsync(IEnumerable> inputs, EmbeddingGenerationOptions options = null, CancellationToken cancellationToken = default); public virtual Task GenerateEmbeddingsAsync(BinaryContent content, RequestOptions options = null); } public class EmbeddingGenerationOptions { @@ -1125,31 +1137,31 @@ namespace OpenAI.Files { protected FileClient(ClientPipeline pipeline, Uri endpoint, OpenAIClientOptions options); protected FileClient(); public virtual ClientPipeline Pipeline { get; } - public virtual ClientResult DeleteFile(string fileId); + public virtual ClientResult DeleteFile(string fileId, CancellationToken cancellationToken = default); public virtual ClientResult DeleteFile(OpenAIFileInfo file); public virtual ClientResult DeleteFile(string fileId, RequestOptions options); - public virtual Task> DeleteFileAsync(string fileId); + public virtual Task> DeleteFileAsync(string fileId, CancellationToken cancellationToken = default); public virtual Task> DeleteFileAsync(OpenAIFileInfo file); public virtual Task DeleteFileAsync(string fileId, RequestOptions options); - public virtual ClientResult DownloadFile(string fileId); + public virtual ClientResult DownloadFile(string fileId, CancellationToken cancellationToken = default); public virtual ClientResult DownloadFile(OpenAIFileInfo file); public virtual ClientResult DownloadFile(string fileId, RequestOptions options); - public virtual Task> DownloadFileAsync(string fileId); + public virtual Task> DownloadFileAsync(string fileId, CancellationToken cancellationToken = default); public virtual Task> DownloadFileAsync(OpenAIFileInfo file); public virtual Task DownloadFileAsync(string fileId, RequestOptions options); - public virtual ClientResult GetFile(string fileId); + public virtual ClientResult GetFile(string fileId, CancellationToken cancellationToken = default); public virtual ClientResult GetFile(string fileId, RequestOptions options); - public virtual Task> GetFileAsync(string fileId); + public virtual Task> GetFileAsync(string fileId, CancellationToken cancellationToken = default); public virtual Task GetFileAsync(string fileId, RequestOptions options); - public virtual ClientResult GetFiles(OpenAIFilePurpose? purpose = null); + public virtual ClientResult GetFiles(OpenAIFilePurpose? purpose = null, CancellationToken cancellationToken = default); public virtual ClientResult GetFiles(string purpose, RequestOptions options); - public virtual Task> GetFilesAsync(OpenAIFilePurpose? purpose = null); + public virtual Task> GetFilesAsync(OpenAIFilePurpose? purpose = null, CancellationToken cancellationToken = default); public virtual Task GetFilesAsync(string purpose, RequestOptions options); - public virtual ClientResult UploadFile(Stream file, string filename, FileUploadPurpose purpose); + public virtual ClientResult UploadFile(Stream file, string filename, FileUploadPurpose purpose, CancellationToken cancellationToken = default); public virtual ClientResult UploadFile(BinaryData file, string filename, FileUploadPurpose purpose); public virtual ClientResult UploadFile(string filePath, FileUploadPurpose purpose); public virtual ClientResult UploadFile(BinaryContent content, string contentType, RequestOptions options = null); - public virtual Task> UploadFileAsync(Stream file, string filename, FileUploadPurpose purpose); + public virtual Task> UploadFileAsync(Stream file, string filename, FileUploadPurpose purpose, CancellationToken cancellationToken = default); public virtual Task> UploadFileAsync(BinaryData file, string filename, FileUploadPurpose purpose); public virtual Task> UploadFileAsync(string filePath, FileUploadPurpose purpose); public virtual Task UploadFileAsync(BinaryContent content, string contentType, RequestOptions options = null); @@ -1238,38 +1250,38 @@ namespace OpenAI.Images { protected ImageClient(ClientPipeline pipeline, string model, Uri endpoint, OpenAIClientOptions options); protected ImageClient(); public virtual ClientPipeline Pipeline { get; } - public virtual ClientResult GenerateImage(string prompt, ImageGenerationOptions options = null); - public virtual Task> GenerateImageAsync(string prompt, ImageGenerationOptions options = null); - public virtual ClientResult GenerateImageEdit(Stream image, string imageFilename, string prompt, ImageEditOptions options = null); + public virtual ClientResult GenerateImage(string prompt, ImageGenerationOptions options = null, CancellationToken cancellationToken = default); + public virtual Task> GenerateImageAsync(string prompt, ImageGenerationOptions options = null, CancellationToken cancellationToken = default); + public virtual ClientResult GenerateImageEdit(Stream image, string imageFilename, string prompt, ImageEditOptions options = null, CancellationToken cancellationToken = default); public virtual ClientResult GenerateImageEdit(string imageFilePath, string prompt, ImageEditOptions options = null); - public virtual ClientResult GenerateImageEdit(Stream image, string imageFilename, string prompt, Stream mask, string maskFilename, ImageEditOptions options = null); + public virtual ClientResult GenerateImageEdit(Stream image, string imageFilename, string prompt, Stream mask, string maskFilename, ImageEditOptions options = null, CancellationToken cancellationToken = default); public virtual ClientResult GenerateImageEdit(string imageFilePath, string prompt, string maskFilePath, ImageEditOptions options = null); - public virtual Task> GenerateImageEditAsync(Stream image, string imageFilename, string prompt, ImageEditOptions options = null); + public virtual Task> GenerateImageEditAsync(Stream image, string imageFilename, string prompt, ImageEditOptions options = null, CancellationToken cancellationToken = default); public virtual Task> GenerateImageEditAsync(string imageFilePath, string prompt, ImageEditOptions options = null); - public virtual Task> GenerateImageEditAsync(Stream image, string imageFilename, string prompt, Stream mask, string maskFilename, ImageEditOptions options = null); + public virtual Task> GenerateImageEditAsync(Stream image, string imageFilename, string prompt, Stream mask, string maskFilename, ImageEditOptions options = null, CancellationToken cancellationToken = default); public virtual Task> GenerateImageEditAsync(string imageFilePath, string prompt, string maskFilePath, ImageEditOptions options = null); - public virtual ClientResult GenerateImageEdits(Stream image, string imageFilename, string prompt, int imageCount, ImageEditOptions options = null); + public virtual ClientResult GenerateImageEdits(Stream image, string imageFilename, string prompt, int imageCount, ImageEditOptions options = null, CancellationToken cancellationToken = default); public virtual ClientResult GenerateImageEdits(string imageFilePath, string prompt, int imageCount, ImageEditOptions options = null); - public virtual ClientResult GenerateImageEdits(Stream image, string imageFilename, string prompt, Stream mask, string maskFilename, int imageCount, ImageEditOptions options = null); + public virtual ClientResult GenerateImageEdits(Stream image, string imageFilename, string prompt, Stream mask, string maskFilename, int imageCount, ImageEditOptions options = null, CancellationToken cancellationToken = default); public virtual ClientResult GenerateImageEdits(string imageFilePath, string prompt, string maskFilePath, int imageCount, ImageEditOptions options = null); public virtual ClientResult GenerateImageEdits(BinaryContent content, string contentType, RequestOptions options = null); - public virtual Task> GenerateImageEditsAsync(Stream image, string imageFilename, string prompt, int imageCount, ImageEditOptions options = null); + public virtual Task> GenerateImageEditsAsync(Stream image, string imageFilename, string prompt, int imageCount, ImageEditOptions options = null, CancellationToken cancellationToken = default); public virtual Task> GenerateImageEditsAsync(string imageFilePath, string prompt, int imageCount, ImageEditOptions options = null); - public virtual Task> GenerateImageEditsAsync(Stream image, string imageFilename, string prompt, Stream mask, string maskFilename, int imageCount, ImageEditOptions options = null); + public virtual Task> GenerateImageEditsAsync(Stream image, string imageFilename, string prompt, Stream mask, string maskFilename, int imageCount, ImageEditOptions options = null, CancellationToken cancellationToken = default); public virtual Task> GenerateImageEditsAsync(string imageFilePath, string prompt, string maskFilePath, int imageCount, ImageEditOptions options = null); public virtual Task GenerateImageEditsAsync(BinaryContent content, string contentType, RequestOptions options = null); - public virtual ClientResult GenerateImages(string prompt, int imageCount, ImageGenerationOptions options = null); + public virtual ClientResult GenerateImages(string prompt, int imageCount, ImageGenerationOptions options = null, CancellationToken cancellationToken = default); public virtual ClientResult GenerateImages(BinaryContent content, RequestOptions options = null); - public virtual Task> GenerateImagesAsync(string prompt, int imageCount, ImageGenerationOptions options = null); + public virtual Task> GenerateImagesAsync(string prompt, int imageCount, ImageGenerationOptions options = null, CancellationToken cancellationToken = default); public virtual Task GenerateImagesAsync(BinaryContent content, RequestOptions options = null); - public virtual ClientResult GenerateImageVariation(Stream image, string imageFilename, ImageVariationOptions options = null); + public virtual ClientResult GenerateImageVariation(Stream image, string imageFilename, ImageVariationOptions options = null, CancellationToken cancellationToken = default); public virtual ClientResult GenerateImageVariation(string imageFilePath, ImageVariationOptions options = null); - public virtual Task> GenerateImageVariationAsync(Stream image, string imageFilename, ImageVariationOptions options = null); + public virtual Task> GenerateImageVariationAsync(Stream image, string imageFilename, ImageVariationOptions options = null, CancellationToken cancellationToken = default); public virtual Task> GenerateImageVariationAsync(string imageFilePath, ImageVariationOptions options = null); - public virtual ClientResult GenerateImageVariations(Stream image, string imageFilename, int imageCount, ImageVariationOptions options = null); + public virtual ClientResult GenerateImageVariations(Stream image, string imageFilename, int imageCount, ImageVariationOptions options = null, CancellationToken cancellationToken = default); public virtual ClientResult GenerateImageVariations(string imageFilePath, int imageCount, ImageVariationOptions options = null); public virtual ClientResult GenerateImageVariations(BinaryContent content, string contentType, RequestOptions options = null); - public virtual Task> GenerateImageVariationsAsync(Stream image, string imageFilename, int imageCount, ImageVariationOptions options = null); + public virtual Task> GenerateImageVariationsAsync(Stream image, string imageFilename, int imageCount, ImageVariationOptions options = null, CancellationToken cancellationToken = default); public virtual Task> GenerateImageVariationsAsync(string imageFilePath, int imageCount, ImageVariationOptions options = null); public virtual Task GenerateImageVariationsAsync(BinaryContent content, string contentType, RequestOptions options = null); } @@ -1364,11 +1376,11 @@ namespace OpenAI.Moderations { protected ModerationClient(ClientPipeline pipeline, string model, Uri endpoint, OpenAIClientOptions options); protected ModerationClient(); public virtual ClientPipeline Pipeline { get; } - public virtual ClientResult ClassifyTextInput(string input); - public virtual Task> ClassifyTextInputAsync(string input); - public virtual ClientResult ClassifyTextInputs(IEnumerable inputs); + public virtual ClientResult ClassifyTextInput(string input, CancellationToken cancellationToken = default); + public virtual Task> ClassifyTextInputAsync(string input, CancellationToken cancellationToken = default); + public virtual ClientResult ClassifyTextInputs(IEnumerable inputs, CancellationToken cancellationToken = default); public virtual ClientResult ClassifyTextInputs(BinaryContent content, RequestOptions options = null); - public virtual Task> ClassifyTextInputsAsync(IEnumerable inputs); + public virtual Task> ClassifyTextInputsAsync(IEnumerable inputs, CancellationToken cancellationToken = default); public virtual Task ClassifyTextInputsAsync(BinaryContent content, RequestOptions options = null); } public class ModerationCategories { @@ -1410,85 +1422,86 @@ namespace OpenAI.Moderations { namespace OpenAI.VectorStores { internal [Experimental("OPENAI001")] public class VectorStoreClient { - public VectorStoreClient(ApiKeyCredential credential, OpenAIClientOptions options = null); - public VectorStoreClient(OpenAIClientOptions options = null); - protected VectorStoreClient(ClientPipeline pipeline, Uri endpoint, OpenAIClientOptions options); - protected VectorStoreClient(); - public virtual ClientPipeline Pipeline { get; } public virtual ClientResult AddFileToVectorStore(VectorStore vectorStore, OpenAIFileInfo file); - public virtual ClientResult AddFileToVectorStore(string vectorStoreId, string fileId); + public virtual ClientResult AddFileToVectorStore(string vectorStoreId, string fileId, CancellationToken cancellationToken = default); public virtual ClientResult AddFileToVectorStore(string vectorStoreId, BinaryContent content, RequestOptions options = null); public virtual Task> AddFileToVectorStoreAsync(VectorStore vectorStore, OpenAIFileInfo file); - public virtual Task> AddFileToVectorStoreAsync(string vectorStoreId, string fileId); + public virtual Task> AddFileToVectorStoreAsync(string vectorStoreId, string fileId, CancellationToken cancellationToken = default); public virtual Task AddFileToVectorStoreAsync(string vectorStoreId, BinaryContent content, RequestOptions options = null); public virtual ClientResult CancelBatchFileJob(VectorStoreBatchFileJob batchJob); - public virtual ClientResult CancelBatchFileJob(string vectorStoreId, string batchJobId); public virtual ClientResult CancelBatchFileJob(string vectorStoreId, string batchId, RequestOptions options); + public virtual ClientResult CancelBatchFileJob(string vectorStoreId, string batchJobId, CancellationToken cancellationToken = default); public virtual Task> CancelBatchFileJobAsync(VectorStoreBatchFileJob batchJob); - public virtual Task> CancelBatchFileJobAsync(string vectorStoreId, string batchJobId); public virtual Task CancelBatchFileJobAsync(string vectorStoreId, string batchId, RequestOptions options); + public virtual Task> CancelBatchFileJobAsync(string vectorStoreId, string batchJobId, CancellationToken cancellationToken = default); public virtual ClientResult CreateBatchFileJob(VectorStore vectorStore, IEnumerable files); - public virtual ClientResult CreateBatchFileJob(string vectorStoreId, IEnumerable fileIds); public virtual ClientResult CreateBatchFileJob(string vectorStoreId, BinaryContent content, RequestOptions options = null); + public virtual ClientResult CreateBatchFileJob(string vectorStoreId, IEnumerable fileIds, CancellationToken cancellationToken = default); public virtual Task> CreateBatchFileJobAsync(VectorStore vectorStore, IEnumerable files); - public virtual Task> CreateBatchFileJobAsync(string vectorStoreId, IEnumerable fileIds); public virtual Task CreateBatchFileJobAsync(string vectorStoreId, BinaryContent content, RequestOptions options = null); - public virtual ClientResult CreateVectorStore(VectorStoreCreationOptions vectorStore = null); + public virtual Task> CreateBatchFileJobAsync(string vectorStoreId, IEnumerable fileIds, CancellationToken cancellationToken = default); + public virtual ClientResult CreateVectorStore(VectorStoreCreationOptions vectorStore = null, CancellationToken cancellationToken = default); public virtual ClientResult CreateVectorStore(BinaryContent content, RequestOptions options = null); - public virtual Task> CreateVectorStoreAsync(VectorStoreCreationOptions vectorStore = null); + public virtual Task> CreateVectorStoreAsync(VectorStoreCreationOptions vectorStore = null, CancellationToken cancellationToken = default); public virtual Task CreateVectorStoreAsync(BinaryContent content, RequestOptions options = null); public virtual ClientResult DeleteVectorStore(VectorStore vectorStore); - public virtual ClientResult DeleteVectorStore(string vectorStoreId); public virtual ClientResult DeleteVectorStore(string vectorStoreId, RequestOptions options); + public virtual ClientResult DeleteVectorStore(string vectorStoreId, CancellationToken cancellationToken = default); public virtual Task> DeleteVectorStoreAsync(VectorStore vectorStore); - public virtual Task> DeleteVectorStoreAsync(string vectorStoreId); public virtual Task DeleteVectorStoreAsync(string vectorStoreId, RequestOptions options); + public virtual Task> DeleteVectorStoreAsync(string vectorStoreId, CancellationToken cancellationToken = default); public virtual ClientResult GetBatchFileJob(VectorStoreBatchFileJob batchJob); - public virtual ClientResult GetBatchFileJob(string vectorStoreId, string batchJobId); public virtual ClientResult GetBatchFileJob(string vectorStoreId, string batchId, RequestOptions options); + public virtual ClientResult GetBatchFileJob(string vectorStoreId, string batchJobId, CancellationToken cancellationToken = default); public virtual Task> GetBatchFileJobAsync(VectorStoreBatchFileJob batchJob); - public virtual Task> GetBatchFileJobAsync(string vectorStoreId, string batchJobId); public virtual Task GetBatchFileJobAsync(string vectorStoreId, string batchId, RequestOptions options); + public virtual Task> GetBatchFileJobAsync(string vectorStoreId, string batchJobId, CancellationToken cancellationToken = default); public virtual ClientResult GetFileAssociation(VectorStore vectorStore, OpenAIFileInfo file); - public virtual ClientResult GetFileAssociation(string vectorStoreId, string fileId); public virtual ClientResult GetFileAssociation(string vectorStoreId, string fileId, RequestOptions options); + public virtual ClientResult GetFileAssociation(string vectorStoreId, string fileId, CancellationToken cancellationToken = default); public virtual Task> GetFileAssociationAsync(VectorStore vectorStore, OpenAIFileInfo file); - public virtual Task> GetFileAssociationAsync(string vectorStoreId, string fileId); public virtual Task GetFileAssociationAsync(string vectorStoreId, string fileId, RequestOptions options); + public virtual Task> GetFileAssociationAsync(string vectorStoreId, string fileId, CancellationToken cancellationToken = default); public virtual PageableCollection GetFileAssociations(VectorStore vectorStore, ListOrder? resultOrder = null, VectorStoreFileStatusFilter? filter = null); public virtual PageableCollection GetFileAssociations(VectorStoreBatchFileJob batchJob, ListOrder? resultOrder = null, VectorStoreFileStatusFilter? filter = null); - public virtual PageableCollection GetFileAssociations(string vectorStoreId, ListOrder? resultOrder = null, VectorStoreFileStatusFilter? filter = null); - public virtual PageableCollection GetFileAssociations(string vectorStoreId, string batchJobId, ListOrder? resultOrder = null, VectorStoreFileStatusFilter? filter = null); public virtual ClientResult GetFileAssociations(string vectorStoreId, int? limit, string order, string after, string before, string filter, RequestOptions options); + public virtual PageableCollection GetFileAssociations(string vectorStoreId, ListOrder? resultOrder = null, VectorStoreFileStatusFilter? filter = null, CancellationToken cancellationToken = default); public virtual ClientResult GetFileAssociations(string vectorStoreId, string batchId, int? limit, string order, string after, string before, string filter, RequestOptions options); + public virtual PageableCollection GetFileAssociations(string vectorStoreId, string batchJobId, ListOrder? resultOrder = null, VectorStoreFileStatusFilter? filter = null, CancellationToken cancellationToken = default); public virtual AsyncPageableCollection GetFileAssociationsAsync(VectorStore vectorStore, ListOrder? resultOrder = null, VectorStoreFileStatusFilter? filter = null); public virtual AsyncPageableCollection GetFileAssociationsAsync(VectorStoreBatchFileJob batchJob, ListOrder? resultOrder = null, VectorStoreFileStatusFilter? filter = null); - public virtual AsyncPageableCollection GetFileAssociationsAsync(string vectorStoreId, ListOrder? resultOrder = null, VectorStoreFileStatusFilter? filter = null); - public virtual AsyncPageableCollection GetFileAssociationsAsync(string vectorStoreId, string batchJobId, ListOrder? resultOrder = null, VectorStoreFileStatusFilter? filter = null); public virtual Task GetFileAssociationsAsync(string vectorStoreId, int? limit, string order, string after, string before, string filter, RequestOptions options); + public virtual AsyncPageableCollection GetFileAssociationsAsync(string vectorStoreId, ListOrder? resultOrder = null, VectorStoreFileStatusFilter? filter = null, CancellationToken cancellationToken = default); public virtual Task GetFileAssociationsAsync(string vectorStoreId, string batchId, int? limit, string order, string after, string before, string filter, RequestOptions options); + public virtual AsyncPageableCollection GetFileAssociationsAsync(string vectorStoreId, string batchJobId, ListOrder? resultOrder = null, VectorStoreFileStatusFilter? filter = null, CancellationToken cancellationToken = default); + public virtual ClientResult GetVectorStore(VectorStore vectorStore); public virtual ClientResult GetVectorStore(string vectorStoreId, RequestOptions options); - public virtual ClientResult GetVectorStore(string vectorStoreId); + public virtual ClientResult GetVectorStore(string vectorStoreId, CancellationToken cancellationToken = default); public virtual Task> GetVectorStoreAsync(VectorStore vectorStore); public virtual Task GetVectorStoreAsync(string vectorStoreId, RequestOptions options); - public virtual Task> GetVectorStoreAsync(string vectorStoreId); - public virtual PageableCollection GetVectorStores(ListOrder? resultOrder = null); + public virtual Task> GetVectorStoreAsync(string vectorStoreId, CancellationToken cancellationToken = default); public virtual ClientResult GetVectorStores(int? limit, string order, string after, string before, RequestOptions options); - public virtual AsyncPageableCollection GetVectorStoresAsync(ListOrder? resultOrder = null); + public virtual PageableCollection GetVectorStores(ListOrder? resultOrder = null, CancellationToken cancellationToken = default); public virtual Task GetVectorStoresAsync(int? limit, string order, string after, string before, RequestOptions options); + public virtual AsyncPageableCollection GetVectorStoresAsync(ListOrder? resultOrder = null, CancellationToken cancellationToken = default); public virtual ClientResult ModifyVectorStore(VectorStore vectorStore, VectorStoreModificationOptions options); + public virtual ClientResult ModifyVectorStore(string vectorStoreId, VectorStoreModificationOptions vectorStore, CancellationToken cancellationToken = default); public virtual ClientResult ModifyVectorStore(string vectorStoreId, BinaryContent content, RequestOptions options = null); - public virtual ClientResult ModifyVectorStore(string vectorStoreId, VectorStoreModificationOptions vectorStore); public virtual Task> ModifyVectorStoreAsync(VectorStore vectorStore, VectorStoreModificationOptions options); + public virtual Task> ModifyVectorStoreAsync(string vectorStoreId, VectorStoreModificationOptions vectorStore, CancellationToken cancellationToken = default); public virtual Task ModifyVectorStoreAsync(string vectorStoreId, BinaryContent content, RequestOptions options = null); - public virtual Task> ModifyVectorStoreAsync(string vectorStoreId, VectorStoreModificationOptions vectorStore); + public virtual ClientPipeline Pipeline { get; } public virtual ClientResult RemoveFileFromStore(VectorStore vectorStore, OpenAIFileInfo file); - public virtual ClientResult RemoveFileFromStore(string vectorStoreId, string fileId); public virtual ClientResult RemoveFileFromStore(string vectorStoreId, string fileId, RequestOptions options); + public virtual ClientResult RemoveFileFromStore(string vectorStoreId, string fileId, CancellationToken cancellationToken = default); public virtual Task> RemoveFileFromStoreAsync(VectorStore vectorStore, OpenAIFileInfo file); - public virtual Task> RemoveFileFromStoreAsync(string vectorStoreId, string fileId); public virtual Task RemoveFileFromStoreAsync(string vectorStoreId, string fileId, RequestOptions options); + public virtual Task> RemoveFileFromStoreAsync(string vectorStoreId, string fileId, CancellationToken cancellationToken = default); + protected VectorStoreClient(); + public VectorStoreClient(OpenAIClientOptions options = null); + public VectorStoreClient(ApiKeyCredential credential, OpenAIClientOptions options = null); + protected VectorStoreClient(ClientPipeline pipeline, Uri endpoint, OpenAIClientOptions options); } public class VectorStoreCreationOptions { public VectorStoreCreationOptions(); diff --git a/src/Custom/Assistants/AssistantClient.Protocol.cs b/src/Custom/Assistants/AssistantClient.Protocol.cs index 7e6344b3..d96ee961 100644 --- a/src/Custom/Assistants/AssistantClient.Protocol.cs +++ b/src/Custom/Assistants/AssistantClient.Protocol.cs @@ -2,6 +2,7 @@ using System.ClientModel; using System.ClientModel.Primitives; using System.Collections.Generic; +using System.ComponentModel; using System.Threading.Tasks; namespace OpenAI.Assistants; @@ -16,6 +17,7 @@ public partial class AssistantClient /// is null. /// Service returned a non-success status code. /// The response returned from the service. + [EditorBrowsable(EditorBrowsableState.Never)] public virtual async Task CreateAssistantAsync(BinaryContent content, RequestOptions options = null) { Argument.AssertNotNull(content, nameof(content)); @@ -32,6 +34,7 @@ public virtual async Task CreateAssistantAsync(BinaryContent conte /// is null. /// Service returned a non-success status code. /// The response returned from the service. + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult CreateAssistant(BinaryContent content, RequestOptions options = null) { Argument.AssertNotNull(content, nameof(content)); @@ -64,6 +67,7 @@ public virtual ClientResult CreateAssistant(BinaryContent content, RequestOption /// The request options, which can override default behaviors of the client pipeline on a per-call basis. /// Service returned a non-success status code. /// A collection of service responses, each holding a page of values. + [EditorBrowsable(EditorBrowsableState.Never)] public virtual IAsyncEnumerable GetAssistantsAsync(int? limit, string order, string after, string before, RequestOptions options) { AssistantsPageEnumerator enumerator = new AssistantsPageEnumerator(_pipeline, _endpoint, limit, order, after, before, options); @@ -94,6 +98,7 @@ public virtual IAsyncEnumerable GetAssistantsAsync(int? limit, str /// The request options, which can override default behaviors of the client pipeline on a per-call basis. /// Service returned a non-success status code. /// A collection of service responses, each holding a page of values. + [EditorBrowsable(EditorBrowsableState.Never)] public virtual IEnumerable GetAssistants(int? limit, string order, string after, string before, RequestOptions options) { AssistantsPageEnumerator enumerator = new AssistantsPageEnumerator(_pipeline, _endpoint, limit, order, after, before, options); @@ -109,6 +114,7 @@ public virtual IEnumerable GetAssistants(int? limit, string order, /// is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. + [EditorBrowsable(EditorBrowsableState.Never)] public virtual async Task GetAssistantAsync(string assistantId, RequestOptions options) { Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); @@ -126,6 +132,7 @@ public virtual async Task GetAssistantAsync(string assistantId, Re /// is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult GetAssistant(string assistantId, RequestOptions options) { Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); @@ -144,6 +151,7 @@ public virtual ClientResult GetAssistant(string assistantId, RequestOptions opti /// is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. + [EditorBrowsable(EditorBrowsableState.Never)] public virtual async Task ModifyAssistantAsync(string assistantId, BinaryContent content, RequestOptions options = null) { Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); @@ -163,6 +171,7 @@ public virtual async Task ModifyAssistantAsync(string assistantId, /// is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult ModifyAssistant(string assistantId, BinaryContent content, RequestOptions options = null) { Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); @@ -181,6 +190,7 @@ public virtual ClientResult ModifyAssistant(string assistantId, BinaryContent co /// is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. + [EditorBrowsable(EditorBrowsableState.Never)] public virtual async Task DeleteAssistantAsync(string assistantId, RequestOptions options) { Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); @@ -198,6 +208,7 @@ public virtual async Task DeleteAssistantAsync(string assistantId, /// is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// The response returned from the service. + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult DeleteAssistant(string assistantId, RequestOptions options) { Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); @@ -207,10 +218,12 @@ public virtual ClientResult DeleteAssistant(string assistantId, RequestOptions o } /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task CreateMessageAsync(string threadId, BinaryContent content, RequestOptions options = null) => _messageSubClient.CreateMessageAsync(threadId, content, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult CreateMessage(string threadId, BinaryContent content, RequestOptions options = null) => _messageSubClient.CreateMessage(threadId, content, options); @@ -241,6 +254,7 @@ public virtual ClientResult CreateMessage(string threadId, BinaryContent content /// is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// A collection of service responses, each holding a page of values. + [EditorBrowsable(EditorBrowsableState.Never)] public virtual IAsyncEnumerable GetMessagesAsync(string threadId, int? limit, string order, string after, string before, RequestOptions options) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); @@ -276,6 +290,7 @@ public virtual IAsyncEnumerable GetMessagesAsync(string threadId, /// is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// A collection of service responses, each holding a page of values. + [EditorBrowsable(EditorBrowsableState.Never)] public virtual IEnumerable GetMessages(string threadId, int? limit, string order, string after, string before, RequestOptions options) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); @@ -285,40 +300,52 @@ public virtual IEnumerable GetMessages(string threadId, int? limit } /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task GetMessageAsync(string threadId, string messageId, RequestOptions options) => _messageSubClient.GetMessageAsync(threadId, messageId, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult GetMessage(string threadId, string messageId, RequestOptions options) => _messageSubClient.GetMessage(threadId, messageId, options); + /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task ModifyMessageAsync(string threadId, string messageId, BinaryContent content, RequestOptions options = null) => _messageSubClient.ModifyMessageAsync(threadId, messageId, content, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult ModifyMessage(string threadId, string messageId, BinaryContent content, RequestOptions options = null) => _messageSubClient.ModifyMessage(threadId, messageId, content, options); + /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task DeleteMessageAsync(string threadId, string messageId, RequestOptions options) => _messageSubClient.DeleteMessageAsync(threadId, messageId, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult DeleteMessage(string threadId, string messageId, RequestOptions options) => _messageSubClient.DeleteMessage(threadId, messageId, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task CreateThreadAndRunAsync(BinaryContent content, RequestOptions options = null) => _runSubClient.CreateThreadAndRunAsync(content, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult CreateThreadAndRun(BinaryContent content, RequestOptions options = null) => _runSubClient.CreateThreadAndRun(content, options = null); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task CreateRunAsync(string threadId, BinaryContent content, RequestOptions options = null) => _runSubClient.CreateRunAsync(threadId, content, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult CreateRun(string threadId, BinaryContent content, RequestOptions options = null) => _runSubClient.CreateRun(threadId, content, options); @@ -349,6 +376,7 @@ public virtual ClientResult CreateRun(string threadId, BinaryContent content, Re /// is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// A collection of service responses, each holding a page of values. + [EditorBrowsable(EditorBrowsableState.Never)] public virtual IAsyncEnumerable GetRunsAsync(string threadId, int? limit, string order, string after, string before, RequestOptions options) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); @@ -384,6 +412,7 @@ public virtual IAsyncEnumerable GetRunsAsync(string threadId, int? /// is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// A collection of service responses, each holding a page of values. + [EditorBrowsable(EditorBrowsableState.Never)] public virtual IEnumerable GetRuns(string threadId, int? limit, string order, string after, string before, RequestOptions options) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); @@ -393,34 +422,42 @@ public virtual IEnumerable GetRuns(string threadId, int? limit, st } /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task GetRunAsync(string threadId, string runId, RequestOptions options) => _runSubClient.GetRunAsync(threadId, runId, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult GetRun(string threadId, string runId, RequestOptions options) => _runSubClient.GetRun(threadId, runId, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task ModifyRunAsync(string threadId, string runId, BinaryContent content, RequestOptions options = null) => _runSubClient.ModifyRunAsync(threadId, runId, content, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult ModifyRun(string threadId, string runId, BinaryContent content, RequestOptions options = null) => _runSubClient.ModifyRun(threadId, runId, content, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task CancelRunAsync(string threadId, string runId, RequestOptions options) => _runSubClient.CancelRunAsync(threadId, runId, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult CancelRun(string threadId, string runId, RequestOptions options) => _runSubClient.CancelRun(threadId, runId, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task SubmitToolOutputsToRunAsync(string threadId, string runId, BinaryContent content, RequestOptions options = null) => _runSubClient.SubmitToolOutputsToRunAsync(threadId, runId, content, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult SubmitToolOutputsToRun(string threadId, string runId, BinaryContent content, RequestOptions options = null) => _runSubClient.SubmitToolOutputsToRun(threadId, runId, content, options); @@ -452,6 +489,7 @@ public virtual ClientResult SubmitToolOutputsToRun(string threadId, string runId /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// A collection of service responses, each holding a page of values. + [EditorBrowsable(EditorBrowsableState.Never)] public virtual IAsyncEnumerable GetRunStepsAsync(string threadId, string runId, int? limit, string order, string after, string before, RequestOptions options) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); @@ -489,6 +527,7 @@ public virtual IAsyncEnumerable GetRunStepsAsync(string threadId, /// or is an empty string, and was expected to be non-empty. /// Service returned a non-success status code. /// A collection of service responses, each holding a page of values. + [EditorBrowsable(EditorBrowsableState.Never)] public virtual IEnumerable GetRunSteps(string threadId, string runId, int? limit, string order, string after, string before, RequestOptions options) { Argument.AssertNotNullOrEmpty(threadId, nameof(threadId)); @@ -499,42 +538,52 @@ public virtual IEnumerable GetRunSteps(string threadId, string run } /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task GetRunStepAsync(string threadId, string runId, string stepId, RequestOptions options) => _runSubClient.GetRunStepAsync(threadId, runId, stepId, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult GetRunStep(string threadId, string runId, string stepId, RequestOptions options) => _runSubClient.GetRunStep(threadId, runId, stepId, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task CreateThreadAsync(BinaryContent content, RequestOptions options = null) => _threadSubClient.CreateThreadAsync(content, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult CreateThread(BinaryContent content, RequestOptions options = null) => _threadSubClient.CreateThread(content, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task GetThreadAsync(string threadId, RequestOptions options) => _threadSubClient.GetThreadAsync(threadId, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult GetThread(string threadId, RequestOptions options) => _threadSubClient.GetThread(threadId, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task ModifyThreadAsync(string threadId, BinaryContent content, RequestOptions options = null) => _threadSubClient.ModifyThreadAsync(threadId, content, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult ModifyThread(string threadId, BinaryContent content, RequestOptions options = null) => _threadSubClient.ModifyThread(threadId, content, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual Task DeleteThreadAsync(string threadId, RequestOptions options) => _threadSubClient.DeleteThreadAsync(threadId, options); /// + [EditorBrowsable(EditorBrowsableState.Never)] public virtual ClientResult DeleteThread(string threadId, RequestOptions options) => _threadSubClient.DeleteThread(threadId, options); } diff --git a/src/Custom/Assistants/AssistantClient.cs b/src/Custom/Assistants/AssistantClient.cs index 9e47b4f0..611ef7ed 100644 --- a/src/Custom/Assistants/AssistantClient.cs +++ b/src/Custom/Assistants/AssistantClient.cs @@ -18,6 +18,10 @@ namespace OpenAI.Assistants; [CodeGenSuppress("AssistantClient", typeof(ClientPipeline), typeof(ApiKeyCredential), typeof(Uri))] [CodeGenSuppress("CreateAssistantAsync", typeof(AssistantCreationOptions))] [CodeGenSuppress("CreateAssistant", typeof(AssistantCreationOptions))] +[CodeGenSuppress("GetAssistantAsync", typeof(string))] +[CodeGenSuppress("GetAssistant", typeof(string))] +[CodeGenSuppress("ModifyAssistantAsync", typeof(string), typeof(AssistantModificationOptions))] +[CodeGenSuppress("ModifyAssistant", typeof(string), typeof(AssistantModificationOptions))] [CodeGenSuppress("DeleteAssistantAsync", typeof(string))] [CodeGenSuppress("DeleteAssistant", typeof(string))] [CodeGenSuppress("GetAssistantsAsync", typeof(int?), typeof(ListOrder?), typeof(string), typeof(string))] @@ -199,6 +203,69 @@ public virtual PageCollection GetAssistants( return PageCollectionHelpers.Create(enumerator); } + /// + /// Gets an instance representing an existing based on its ID. + /// + /// The ID of the Assistant to retrieve. + /// A token that can be used to cancel this method call. + /// An instance representing the state of the Assistant with the provided ID. + public virtual async Task> GetAssistantAsync(string assistantId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); + + ClientResult protocolResult = await GetAssistantAsync(assistantId, cancellationToken.ToRequestOptions()).ConfigureAwait(false); + return CreateResultFromProtocol(protocolResult, Assistant.FromResponse); + } + + /// + /// Gets an instance representing an existing based on its ID. + /// + /// The ID of the Assistant to retrieve. + /// A token that can be used to cancel this method call. + /// An instance representing the state of the Assistant with the provided ID. + public virtual ClientResult GetAssistant(string assistantId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); + + ClientResult protocolResult = GetAssistant(assistantId, cancellationToken.ToRequestOptions()); + return CreateResultFromProtocol(protocolResult, Assistant.FromResponse); + } + + /// + /// Modifies an existing . + /// + /// The ID of the Assistant to retrieve. + /// The new options to apply to the existing Assistant. + /// A token that can be used to cancel this method call. + /// An updated instance representing the state of the Assistant with the provided ID. + public virtual async Task> ModifyAssistantAsync(string assistantId, AssistantModificationOptions options, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); + Argument.AssertNotNull(options, nameof(options)); + + using BinaryContent content = options.ToBinaryContent(); + ClientResult protocolResult + = await ModifyAssistantAsync(assistantId, content, cancellationToken.ToRequestOptions()).ConfigureAwait(false); + return CreateResultFromProtocol(protocolResult, Assistant.FromResponse); + } + + /// + /// Modifies an existing . + /// + /// The ID of the Assistant to retrieve. + /// The new options to apply to the existing Assistant. + /// A token that can be used to cancel this method call. + /// An updated instance representing the state of the Assistant with the provided ID. + public virtual ClientResult ModifyAssistant(string assistantId, AssistantModificationOptions options, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); + Argument.AssertNotNull(options, nameof(options)); + + using BinaryContent content = options.ToBinaryContent(); + ClientResult protocolResult = ModifyAssistant(assistantId, content, null); + return CreateResultFromProtocol(protocolResult, Assistant.FromResponse); + } + /// /// Deletes an existing . /// diff --git a/src/Custom/Assistants/FileSearchToolDefinition.Serialization.cs b/src/Custom/Assistants/FileSearchToolDefinition.Serialization.cs index 21dac0e7..b4242697 100644 --- a/src/Custom/Assistants/FileSearchToolDefinition.Serialization.cs +++ b/src/Custom/Assistants/FileSearchToolDefinition.Serialization.cs @@ -20,6 +20,14 @@ protected override void WriteCore(Utf8JsonWriter writer, ModelReaderWriterOption writer.WriteStartObject(); writer.WritePropertyName("type"u8); writer.WriteStringValue(Type); + if (Optional.IsDefined(MaxResults)) + { + writer.WritePropertyName("file_search"u8); + writer.WriteStartObject(); + writer.WritePropertyName("max_num_results"u8); + writer.WriteNumberValue(MaxResults.Value); + writer.WriteEndObject(); + } writer.WriteSerializedAdditionalRawData(_serializedAdditionalRawData, options); writer.WriteEndObject(); } diff --git a/src/Custom/Assistants/FileSearchToolDefinition.cs b/src/Custom/Assistants/FileSearchToolDefinition.cs index cfad3e72..57cdb817 100644 --- a/src/Custom/Assistants/FileSearchToolDefinition.cs +++ b/src/Custom/Assistants/FileSearchToolDefinition.cs @@ -10,7 +10,7 @@ public partial class FileSearchToolDefinition : ToolDefinition { public int? MaxResults { - get => _fileSearch.InternalMaxNumResults; + get => _fileSearch?.InternalMaxNumResults; init => _fileSearch.InternalMaxNumResults = value; } diff --git a/src/Custom/VectorStores/VectorStoreClient.cs b/src/Custom/VectorStores/VectorStoreClient.cs index 0f7f46af..ea6cc8f5 100644 --- a/src/Custom/VectorStores/VectorStoreClient.cs +++ b/src/Custom/VectorStores/VectorStoreClient.cs @@ -15,6 +15,10 @@ namespace OpenAI.VectorStores; [CodeGenClient("VectorStores")] [CodeGenSuppress("CreateVectorStoreAsync", typeof(VectorStoreCreationOptions))] [CodeGenSuppress("CreateVectorStore", typeof(VectorStoreCreationOptions))] +[CodeGenSuppress("GetVectorStoreAsync", typeof(string))] +[CodeGenSuppress("GetVectorStore", typeof(string))] +[CodeGenSuppress("ModifyVectorStoreAsync", typeof(string), typeof(VectorStoreModificationOptions))] +[CodeGenSuppress("ModifyVectorStore", typeof(string), typeof(VectorStoreModificationOptions))] [CodeGenSuppress("DeleteVectorStoreAsync", typeof(string))] [CodeGenSuppress("DeleteVectorStore", typeof(string))] [CodeGenSuppress("GetVectorStoresAsync", typeof(int?), typeof(ListOrder?), typeof(string), typeof(string))] @@ -101,6 +105,70 @@ public virtual ClientResult CreateVectorStore(VectorStoreCreationOp return ClientResult.FromValue(VectorStore.FromResponse(result.GetRawResponse()), result.GetRawResponse()); } + /// + /// Gets an instance representing an existing based on its ID. + /// + /// The ID of the vector store to retrieve. + /// A token that can be used to cancel this method call. + /// A representation of an existing . + public virtual async Task> GetVectorStoreAsync(string vectorStoreId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + + ClientResult result + = await GetVectorStoreAsync(vectorStoreId, cancellationToken.ToRequestOptions()).ConfigureAwait(false); + return ClientResult.FromValue( + VectorStore.FromResponse(result.GetRawResponse()), result.GetRawResponse()); + } + + /// + /// Gets an instance representing an existing based on its ID. + /// + /// The ID of the vector store to retrieve. + /// A token that can be used to cancel this method call. + /// A representation of an existing . + public virtual ClientResult GetVectorStore(string vectorStoreId, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + + ClientResult result = GetVectorStore(vectorStoreId, cancellationToken.ToRequestOptions()); + return ClientResult.FromValue(VectorStore.FromResponse(result.GetRawResponse()), result.GetRawResponse()); + } + + /// + /// Modifies an existing . + /// + /// The ID of the to modify. + /// The new options to apply to the . + /// A token that can be used to cancel this method call. + /// An updated representation of the modified . + public virtual async Task> ModifyVectorStoreAsync(string vectorStoreId, VectorStoreModificationOptions vectorStore, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNull(vectorStore, nameof(vectorStore)); + + using BinaryContent content = vectorStore.ToBinaryContent(); + ClientResult result = await ModifyVectorStoreAsync(vectorStoreId, content, cancellationToken.ToRequestOptions()).ConfigureAwait(false); + return ClientResult.FromValue(VectorStore.FromResponse(result.GetRawResponse()), result.GetRawResponse()); + } + + /// + /// Modifies an existing . + /// + /// The ID of the to modify. + /// The new options to apply to the . + /// A token that can be used to cancel this method call. + /// An updated representation of the modified . + public virtual ClientResult ModifyVectorStore(string vectorStoreId, VectorStoreModificationOptions vectorStore, CancellationToken cancellationToken = default) + { + Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); + Argument.AssertNotNull(vectorStore, nameof(vectorStore)); + + using BinaryContent content = vectorStore.ToBinaryContent(); + ClientResult result = ModifyVectorStore(vectorStoreId, content, cancellationToken.ToRequestOptions()); + return ClientResult.FromValue(VectorStore.FromResponse(result.GetRawResponse()), result.GetRawResponse()); + } + /// /// Deletes a vector store. /// diff --git a/src/Generated/AssistantClient.cs b/src/Generated/AssistantClient.cs index c9222cf7..14c304e8 100644 --- a/src/Generated/AssistantClient.cs +++ b/src/Generated/AssistantClient.cs @@ -24,42 +24,6 @@ protected AssistantClient() { } - public virtual async Task> GetAssistantAsync(string assistantId) - { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); - - ClientResult result = await GetAssistantAsync(assistantId, null).ConfigureAwait(false); - return ClientResult.FromValue(Assistant.FromResponse(result.GetRawResponse()), result.GetRawResponse()); - } - - public virtual ClientResult GetAssistant(string assistantId) - { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); - - ClientResult result = GetAssistant(assistantId, null); - return ClientResult.FromValue(Assistant.FromResponse(result.GetRawResponse()), result.GetRawResponse()); - } - - public virtual async Task> ModifyAssistantAsync(string assistantId, AssistantModificationOptions assistant) - { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); - Argument.AssertNotNull(assistant, nameof(assistant)); - - using BinaryContent content = assistant.ToBinaryContent(); - ClientResult result = await ModifyAssistantAsync(assistantId, content, null).ConfigureAwait(false); - return ClientResult.FromValue(Assistant.FromResponse(result.GetRawResponse()), result.GetRawResponse()); - } - - public virtual ClientResult ModifyAssistant(string assistantId, AssistantModificationOptions assistant) - { - Argument.AssertNotNullOrEmpty(assistantId, nameof(assistantId)); - Argument.AssertNotNull(assistant, nameof(assistant)); - - using BinaryContent content = assistant.ToBinaryContent(); - ClientResult result = ModifyAssistant(assistantId, content, null); - return ClientResult.FromValue(Assistant.FromResponse(result.GetRawResponse()), result.GetRawResponse()); - } - internal PipelineMessage CreateCreateAssistantRequest(BinaryContent content, RequestOptions options) { var message = _pipeline.CreateMessage(); diff --git a/src/Generated/VectorStoreClient.cs b/src/Generated/VectorStoreClient.cs index 7c40585c..6f2be46a 100644 --- a/src/Generated/VectorStoreClient.cs +++ b/src/Generated/VectorStoreClient.cs @@ -31,42 +31,6 @@ internal VectorStoreClient(ClientPipeline pipeline, ApiKeyCredential keyCredenti _endpoint = endpoint; } - public virtual async Task> GetVectorStoreAsync(string vectorStoreId) - { - Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); - - ClientResult result = await GetVectorStoreAsync(vectorStoreId, null).ConfigureAwait(false); - return ClientResult.FromValue(VectorStore.FromResponse(result.GetRawResponse()), result.GetRawResponse()); - } - - public virtual ClientResult GetVectorStore(string vectorStoreId) - { - Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); - - ClientResult result = GetVectorStore(vectorStoreId, null); - return ClientResult.FromValue(VectorStore.FromResponse(result.GetRawResponse()), result.GetRawResponse()); - } - - public virtual async Task> ModifyVectorStoreAsync(string vectorStoreId, VectorStoreModificationOptions vectorStore) - { - Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); - Argument.AssertNotNull(vectorStore, nameof(vectorStore)); - - using BinaryContent content = vectorStore.ToBinaryContent(); - ClientResult result = await ModifyVectorStoreAsync(vectorStoreId, content, null).ConfigureAwait(false); - return ClientResult.FromValue(VectorStore.FromResponse(result.GetRawResponse()), result.GetRawResponse()); - } - - public virtual ClientResult ModifyVectorStore(string vectorStoreId, VectorStoreModificationOptions vectorStore) - { - Argument.AssertNotNullOrEmpty(vectorStoreId, nameof(vectorStoreId)); - Argument.AssertNotNull(vectorStore, nameof(vectorStore)); - - using BinaryContent content = vectorStore.ToBinaryContent(); - ClientResult result = ModifyVectorStore(vectorStoreId, content, null); - return ClientResult.FromValue(VectorStore.FromResponse(result.GetRawResponse()), result.GetRawResponse()); - } - internal PipelineMessage CreateGetVectorStoresRequest(int? limit, string order, string after, string before, RequestOptions options) { var message = _pipeline.CreateMessage(); diff --git a/src/OpenAI.csproj b/src/OpenAI.csproj index 9cbba7f6..826852c3 100644 --- a/src/OpenAI.csproj +++ b/src/OpenAI.csproj @@ -66,6 +66,7 @@ +