Skip to content

Commit 1af6569

Browse files
authored
api updates from openai/openai-openapi (#56)
1 parent 19a65a0 commit 1af6569

File tree

81 files changed

+3024
-81
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+3024
-81
lines changed

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
# Release History
22

3+
## 2.0.0-beta.5 (Unreleased)
4+
5+
## Features Added
6+
7+
- API updates, current to [openai/openai-openapi@dd73070b](https://github.com/openai/openai-openapi/commit/dd73070b1d507645d24c249a63ebebd3ec38c0cb) ()
8+
- This includes `MaxResults` for Assistants `FileSearchToolDefinition`, `ParallelToolCallsEnabled` for function tools in Assistants and Chat, and `FileChunkingStrategy` for Assistants VectorStores
9+
10+
## Breaking Changes
11+
12+
**Assistants**:
13+
- `InputQuote` is removed from Assistants `TextAnnotation` and `TextAnnotationUpdate`, per [openai/openai-openapi@dd73070b](https://github.com/openai/openai-openapi/commit/dd73070b1d507645d24c249a63ebebd3ec38c0cb) ()
14+
315
## 2.0.0-beta.4 (2024-06-10)
416

517
## Features Added

api/api.md

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ namespace OpenAI.Assistants {
229229
public IDictionary<string, string> Metadata { get; }
230230
public string ModelOverride { get; init; }
231231
public float? NucleusSamplingFactor { get; init; }
232+
public bool? ParallelToolCallsEnabled { get; init; }
232233
public AssistantResponseFormat ResponseFormat { get; init; }
233234
public float? Temperature { get; init; }
234235
public ToolConstraint ToolConstraint { get; init; }
@@ -292,6 +293,7 @@ namespace OpenAI.Assistants {
292293
}
293294
public class FileSearchToolDefinition : ToolDefinition {
294295
public FileSearchToolDefinition();
296+
public int? MaxResults { get; init; }
295297
}
296298
public class FileSearchToolResources {
297299
public FileSearchToolResources();
@@ -368,7 +370,6 @@ namespace OpenAI.Assistants {
368370
public class MessageTextContentAnnotation {
369371
public int EndIndex { get; }
370372
public string InputFileId { get; }
371-
public string InputQuote { get; }
372373
public string OutputFileId { get; }
373374
public int StartIndex { get; }
374375
public string TextToReplace { get; }
@@ -563,7 +564,6 @@ namespace OpenAI.Assistants {
563564
public class TextAnnotation {
564565
public int EndIndex { get; }
565566
public string InputFileId { get; }
566-
public string InputQuote { get; }
567567
public string OutputFileId { get; }
568568
public int StartIndex { get; }
569569
public string TextToReplace { get; }
@@ -572,13 +572,13 @@ namespace OpenAI.Assistants {
572572
public int ContentIndex { get; }
573573
public int? EndIndex { get; }
574574
public string InputFileId { get; }
575-
public string InputQuote { get; }
576575
public string OutputFileId { get; }
577576
public int? StartIndex { get; }
578577
public string TextToReplace { get; }
579578
}
580579
public class ThreadInitializationMessage : MessageCreationOptions {
581580
public ThreadInitializationMessage(IEnumerable<MessageContent> content);
581+
public static implicit operator ThreadInitializationMessage(string initializationMessage);
582582
}
583583
public class ThreadMessage {
584584
public string AssistantId { get; }
@@ -611,6 +611,7 @@ namespace OpenAI.Assistants {
611611
public IReadOnlyDictionary<string, string> Metadata { get; }
612612
public string Model { get; }
613613
public float? NucleusSamplingFactor { get; }
614+
public bool? ParallelToolCallsEnabled { get; init; }
614615
public IReadOnlyList<RequiredAction> RequiredActions { get; }
615616
public AssistantResponseFormat ResponseFormat { get; }
616617
public DateTimeOffset? StartedAt { get; }
@@ -635,9 +636,10 @@ namespace OpenAI.Assistants {
635636
public static ToolConstraint Required { get; }
636637
}
637638
public abstract class ToolDefinition {
639+
protected ToolDefinition(string type);
638640
protected ToolDefinition();
639641
public static CodeInterpreterToolDefinition CreateCodeInterpreter();
640-
public static FileSearchToolDefinition CreateFileSearch();
642+
public static FileSearchToolDefinition CreateFileSearch(int? maxResults = null);
641643
public static FunctionToolDefinition CreateFunction(string name, string description = null, BinaryData parameters = null);
642644
}
643645
public class ToolOutput {
@@ -839,11 +841,15 @@ namespace OpenAI.Chat {
839841
protected ChatClient();
840842
public virtual ClientPipeline Pipeline { get; }
841843
public virtual ClientResult<ChatCompletion> CompleteChat(IEnumerable<ChatMessage> messages, ChatCompletionOptions options = null);
844+
public virtual ClientResult<ChatCompletion> CompleteChat(params ChatMessage[] messages);
842845
public virtual ClientResult CompleteChat(BinaryContent content, RequestOptions options = null);
843846
public virtual Task<ClientResult<ChatCompletion>> CompleteChatAsync(IEnumerable<ChatMessage> messages, ChatCompletionOptions options = null);
847+
public virtual Task<ClientResult<ChatCompletion>> CompleteChatAsync(params ChatMessage[] messages);
844848
public virtual Task<ClientResult> CompleteChatAsync(BinaryContent content, RequestOptions options = null);
845849
public virtual ResultCollection<StreamingChatCompletionUpdate> CompleteChatStreaming(IEnumerable<ChatMessage> messages, ChatCompletionOptions options = null);
850+
public virtual ResultCollection<StreamingChatCompletionUpdate> CompleteChatStreaming(params ChatMessage[] messages);
846851
public virtual AsyncResultCollection<StreamingChatCompletionUpdate> CompleteChatStreamingAsync(IEnumerable<ChatMessage> messages, ChatCompletionOptions options = null);
852+
public virtual AsyncResultCollection<StreamingChatCompletionUpdate> CompleteChatStreamingAsync(params ChatMessage[] messages);
847853
}
848854
public class ChatCompletionOptions {
849855
public ChatCompletionOptions();
@@ -853,6 +859,7 @@ namespace OpenAI.Chat {
853859
public bool? IncludeLogProbabilities { get; init; }
854860
public IDictionary<int, int> LogitBiases { get; }
855861
public int? MaxTokens { get; init; }
862+
public bool? ParallelToolCallsEnabled { get; init; }
856863
public float? PresencePenalty { get; init; }
857864
public ChatResponseFormat ResponseFormat { get; init; }
858865
public long? Seed { get; init; }
@@ -885,6 +892,7 @@ namespace OpenAI.Chat {
885892
public string SystemFingerprint { get; }
886893
public IReadOnlyList<ChatToolCall> ToolCalls { get; }
887894
public ChatTokenUsage Usage { get; }
895+
public override string ToString();
888896
}
889897
[Obsolete("This field is marked as deprecated.")]
890898
public class ChatFunction {
@@ -916,6 +924,7 @@ namespace OpenAI.Chat {
916924
public static UserChatMessage CreateUserMessage(string content);
917925
public static UserChatMessage CreateUserMessage(IEnumerable<ChatMessageContentPart> contentParts);
918926
public static UserChatMessage CreateUserMessage(params ChatMessageContentPart[] contentParts);
927+
public static implicit operator ChatMessage(string userMessage);
919928
}
920929
public class ChatMessageContentPart {
921930
public BinaryData ImageBytes { get; }
@@ -927,6 +936,8 @@ namespace OpenAI.Chat {
927936
public static ChatMessageContentPart CreateImageMessageContentPart(Uri imageUri, ImageChatMessageContentPartDetail? imageDetail = null);
928937
public static ChatMessageContentPart CreateImageMessageContentPart(BinaryData imageBytes, string imageBytesMediaType, ImageChatMessageContentPartDetail? imageDetail = null);
929938
public static ChatMessageContentPart CreateTextMessageContentPart(string text);
939+
public static implicit operator ChatMessageContentPart(string content);
940+
public override string ToString();
930941
}
931942
public readonly struct ChatMessageContentPartKind : IEquatable<ChatMessageContentPartKind> {
932943
public ChatMessageContentPartKind(string value);
@@ -1481,6 +1492,7 @@ namespace OpenAI.VectorStores {
14811492
}
14821493
public class VectorStoreCreationOptions {
14831494
public VectorStoreCreationOptions();
1495+
public FileChunkingStrategy ChunkingStrategy { get; init; }
14841496
public VectorStoreExpirationPolicy ExpirationPolicy { get; init; }
14851497
public IList<string> FileIds { get; init; }
14861498
public IDictionary<string, string> Metadata { get; }
@@ -1492,6 +1504,17 @@ namespace OpenAI.VectorStores {
14921504
public IDictionary<string, string> Metadata { get; }
14931505
public string Name { get; init; }
14941506
}
1507+
public abstract class FileChunkingStrategy {
1508+
protected FileChunkingStrategy();
1509+
public static FileChunkingStrategy Auto { get; }
1510+
public static FileChunkingStrategy Unknown { get; }
1511+
public static FileChunkingStrategy CreateStaticStrategy(int maxTokensPerChunk, int overlappingTokenCount);
1512+
}
1513+
public class StaticFileChunkingStrategy : FileChunkingStrategy {
1514+
public StaticFileChunkingStrategy(int maxTokensPerChunk, int overlappingTokenCount);
1515+
public int MaxTokensPerChunk { get; }
1516+
public int OverlappingTokenCount { get; }
1517+
}
14951518
public class VectorStore {
14961519
public DateTimeOffset CreatedAt { get; }
14971520
public VectorStoreExpirationPolicy ExpirationPolicy { get; }
@@ -1533,6 +1556,7 @@ namespace OpenAI.VectorStores {
15331556
public required int Days { get; init; }
15341557
}
15351558
public class VectorStoreFileAssociation {
1559+
public FileChunkingStrategy ChunkingStrategy { get; }
15361560
public DateTimeOffset CreatedAt { get; }
15371561
public string FileId { get; }
15381562
public VectorStoreFileAssociationError? LastError { get; }

examples/Assistants/Example02_FunctionCalling.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ PageableCollection<ThreadMessage> messages
173173
foreach (TextAnnotation annotation in contentItem.TextAnnotations)
174174
{
175175
Console.WriteLine($"* File ID used by file_search: {annotation.InputFileId}");
176-
Console.WriteLine($"* file_search quote from file: {annotation.InputQuote}");
177176
Console.WriteLine($"* File ID created by code_interpreter: {annotation.OutputFileId}");
178177
Console.WriteLine($"* Text to replace: {annotation.TextToReplace}");
179178
Console.WriteLine($"* Message content index range: {annotation.StartIndex}-{annotation.EndIndex}");

examples/Assistants/Example02_FunctionCallingAsync.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ AsyncPageableCollection<ThreadMessage> messages
173173
foreach (TextAnnotation annotation in contentItem.TextAnnotations)
174174
{
175175
Console.WriteLine($"* File ID used by file_search: {annotation.InputFileId}");
176-
Console.WriteLine($"* file_search quote from file: {annotation.InputQuote}");
177176
Console.WriteLine($"* File ID created by code_interpreter: {annotation.OutputFileId}");
178177
Console.WriteLine($"* Text to replace: {annotation.TextToReplace}");
179178
Console.WriteLine($"* Message content index range: {annotation.StartIndex}-{annotation.EndIndex}");

examples/Assistants/Example04_AllTheTools.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,6 @@ PageableCollection<ThreadMessage> messages
159159
foreach (TextAnnotation annotation in contentItem.TextAnnotations)
160160
{
161161
Console.WriteLine($"* File ID used by file_search: {annotation.InputFileId}");
162-
Console.WriteLine($"* file_search quote from file: {annotation.InputQuote}");
163162
Console.WriteLine($"* File ID created by code_interpreter: {annotation.OutputFileId}");
164163
Console.WriteLine($"* Text to replace: {annotation.TextToReplace}");
165164
Console.WriteLine($"* Message content index range: {annotation.StartIndex}-{annotation.EndIndex}");

src/Custom/Assistants/AssistantClient.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -968,6 +968,7 @@ private static BinaryContent CreateThreadAndRunProtocolContent(
968968
runOptions.MaxCompletionTokens,
969969
runOptions.TruncationStrategy,
970970
runOptions.ToolConstraint,
971+
runOptions.ParallelToolCallsEnabled,
971972
runOptions.ResponseFormat,
972973
serializedAdditionalRawData: null);
973974
return internalRequest.ToBinaryContent();
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Diagnostics.CodeAnalysis;
4+
5+
namespace OpenAI.Assistants;
6+
7+
[CodeGenModel("AssistantToolsFileSearch")]
8+
[CodeGenSuppress(nameof(FileSearchToolDefinition))]
9+
public partial class FileSearchToolDefinition : ToolDefinition
10+
{
11+
public int? MaxResults
12+
{
13+
get => _fileSearch.InternalMaxNumResults;
14+
init => _fileSearch.InternalMaxNumResults = value;
15+
}
16+
17+
/// <summary>
18+
/// Creates a new instance of <see cref="FileSearchToolDefinition"/>.
19+
/// </summary>
20+
public FileSearchToolDefinition()
21+
: base("file_search")
22+
{
23+
_fileSearch = new InternalAssistantToolsFileSearchFileSearch();
24+
}
25+
26+
[CodeGenMember("FileSearch")]
27+
private InternalAssistantToolsFileSearchFileSearch _fileSearch;
28+
}

src/Custom/Assistants/FunctionToolDefinition.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,17 @@ public BinaryData Parameters
3939
/// </summary>
4040
[SetsRequiredMembers]
4141
public FunctionToolDefinition(string name, string description = null, BinaryData parameters = null)
42-
: this("function", null, new InternalFunctionDefinition(description, name, parameters, null))
43-
{}
42+
: base("function")
43+
{
44+
Argument.AssertNotNullOrEmpty(name, nameof(name));
45+
_internalFunction = new(description, name, parameters, null);
46+
}
4447

4548
/// <summary>
4649
/// Creates a new instance of <see cref="FunctionToolDefinition"/>.
4750
/// </summary>
4851
public FunctionToolDefinition()
49-
: base("function", null)
52+
: base("function")
5053
{
5154
_internalFunction = new InternalFunctionDefinition();
5255
}

src/Custom/Assistants/GeneratorStubs.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@
88
[CodeGenModel("AssistantToolsCode")]
99
public partial class CodeInterpreterToolDefinition : ToolDefinition { }
1010

11-
[CodeGenModel("AssistantToolsFileSearch")]
12-
public partial class FileSearchToolDefinition : ToolDefinition { }
13-
1411
[CodeGenModel("ThreadMessageStatus")]
1512
public readonly partial struct MessageStatus { }
1613

src/Custom/Assistants/Internal/GeneratorStubs.Internal.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -420,4 +420,7 @@ internal partial class InternalThreadObjectToolResources { }
420420
internal partial class InternalThreadObjectToolResourcesCodeInterpreter { }
421421

422422
[CodeGenModel("ThreadObjectToolResourcesFileSearch")]
423-
internal partial class InternalThreadObjectToolResourcesFileSearch { }
423+
internal partial class InternalThreadObjectToolResourcesFileSearch { }
424+
425+
[CodeGenModel("AssistantToolsFileSearchTypeOnly")]
426+
internal readonly partial struct InternalAssistantToolsFileSearchTypeOnly { }

0 commit comments

Comments
 (0)