diff --git a/api/OpenAI.net8.0.cs b/api/OpenAI.net8.0.cs index b229237fa..12934abe8 100644 --- a/api/OpenAI.net8.0.cs +++ b/api/OpenAI.net8.0.cs @@ -332,11 +332,9 @@ public class CodeInterpreterToolResources : IJsonModel, IPersistableModel { - public FileSearchRankingOptions(); - [SetsRequiredMembers] public FileSearchRankingOptions(float scoreThreshold); public FileSearchRanker? Ranker { get; set; } - public required float ScoreThreshold { get; set; } + public float ScoreThreshold { get; set; } public static explicit operator FileSearchRankingOptions(ClientResult result); public static implicit operator BinaryContent(FileSearchRankingOptions fileSearchRankingOptions); } @@ -356,11 +354,9 @@ public class FileSearchToolResources : IJsonModel, IPer } [Experimental("OPENAI001")] public class FunctionToolDefinition : ToolDefinition, IJsonModel, IPersistableModel { - public FunctionToolDefinition(); - [SetsRequiredMembers] public FunctionToolDefinition(string name); public string Description { get; set; } - public required string FunctionName { get; set; } + public string FunctionName { get; set; } public BinaryData Parameters { get; set; } public bool? StrictParameterSchemaEnabled { get; set; } public new static explicit operator FunctionToolDefinition(ClientResult result); @@ -2240,11 +2236,9 @@ public class ConversationErrorUpdate : ConversationUpdate, IJsonModel, IPersistableModel { - public ConversationFunctionTool(); - [SetsRequiredMembers] public ConversationFunctionTool(string name); public string Description { get; set; } - public required string Name { get; set; } + public string Name { get; set; } public BinaryData Parameters { get; set; } public new static explicit operator ConversationFunctionTool(ClientResult result); public static implicit operator BinaryContent(ConversationFunctionTool conversationFunctionTool); @@ -3842,11 +3836,9 @@ public enum VectorStoreExpirationAnchor { } [Experimental("OPENAI001")] public class VectorStoreExpirationPolicy : IJsonModel, IPersistableModel { - public VectorStoreExpirationPolicy(); - [SetsRequiredMembers] public VectorStoreExpirationPolicy(VectorStoreExpirationAnchor anchor, int days); - public required VectorStoreExpirationAnchor Anchor { get; set; } - public required int Days { get; set; } + public VectorStoreExpirationAnchor Anchor { get; set; } + public int Days { get; set; } public static explicit operator VectorStoreExpirationPolicy(ClientResult result); public static implicit operator BinaryContent(VectorStoreExpirationPolicy vectorStoreExpirationPolicy); } diff --git a/api/OpenAI.netstandard2.0.cs b/api/OpenAI.netstandard2.0.cs index 596339796..9df325324 100644 --- a/api/OpenAI.netstandard2.0.cs +++ b/api/OpenAI.netstandard2.0.cs @@ -314,10 +314,9 @@ public class CodeInterpreterToolResources : IJsonModel, IPersistableModel { - public FileSearchRankingOptions(); public FileSearchRankingOptions(float scoreThreshold); public FileSearchRanker? Ranker { get; set; } - public required float ScoreThreshold { get; set; } + public float ScoreThreshold { get; set; } public static explicit operator FileSearchRankingOptions(ClientResult result); public static implicit operator BinaryContent(FileSearchRankingOptions fileSearchRankingOptions); } @@ -334,10 +333,9 @@ public class FileSearchToolResources : IJsonModel, IPer public static implicit operator BinaryContent(FileSearchToolResources fileSearchToolResources); } public class FunctionToolDefinition : ToolDefinition, IJsonModel, IPersistableModel { - public FunctionToolDefinition(); public FunctionToolDefinition(string name); public string Description { get; set; } - public required string FunctionName { get; set; } + public string FunctionName { get; set; } public BinaryData Parameters { get; set; } public bool? StrictParameterSchemaEnabled { get; set; } public new static explicit operator FunctionToolDefinition(ClientResult result); @@ -2135,10 +2133,9 @@ public class ConversationErrorUpdate : ConversationUpdate, IJsonModel, IPersistableModel { - public ConversationFunctionTool(); public ConversationFunctionTool(string name); public string Description { get; set; } - public required string Name { get; set; } + public string Name { get; set; } public BinaryData Parameters { get; set; } public new static explicit operator ConversationFunctionTool(ClientResult result); public static implicit operator BinaryContent(ConversationFunctionTool conversationFunctionTool); @@ -3655,10 +3652,9 @@ public enum VectorStoreExpirationAnchor { LastActiveAt = 1 } public class VectorStoreExpirationPolicy : IJsonModel, IPersistableModel { - public VectorStoreExpirationPolicy(); public VectorStoreExpirationPolicy(VectorStoreExpirationAnchor anchor, int days); - public required VectorStoreExpirationAnchor Anchor { get; set; } - public required int Days { get; set; } + public VectorStoreExpirationAnchor Anchor { get; set; } + public int Days { get; set; } public static explicit operator VectorStoreExpirationPolicy(ClientResult result); public static implicit operator BinaryContent(VectorStoreExpirationPolicy vectorStoreExpirationPolicy); } diff --git a/examples/Assistants/Example02_FunctionCalling.cs b/examples/Assistants/Example02_FunctionCalling.cs index aed48c9b1..5efd1bcc3 100644 --- a/examples/Assistants/Example02_FunctionCalling.cs +++ b/examples/Assistants/Example02_FunctionCalling.cs @@ -22,9 +22,8 @@ string GetCurrentLocation() const string GetCurrentLocationFunctionName = "get_current_location"; - FunctionToolDefinition getLocationTool = new() + FunctionToolDefinition getLocationTool = new(GetCurrentLocationFunctionName) { - FunctionName = GetCurrentLocationFunctionName, Description = "Get the user's current location" }; @@ -36,9 +35,8 @@ string GetCurrentWeather(string location, string unit = "celsius") const string GetCurrentWeatherFunctionName = "get_current_weather"; - FunctionToolDefinition getWeatherTool = new() + FunctionToolDefinition getWeatherTool = new(GetCurrentWeatherFunctionName) { - FunctionName = GetCurrentWeatherFunctionName, Description = "Get the current weather in a given location", Parameters = BinaryData.FromString(""" { diff --git a/examples/Assistants/Example02_FunctionCallingAsync.cs b/examples/Assistants/Example02_FunctionCallingAsync.cs index 54ec21f31..d092a7981 100644 --- a/examples/Assistants/Example02_FunctionCallingAsync.cs +++ b/examples/Assistants/Example02_FunctionCallingAsync.cs @@ -22,9 +22,8 @@ string GetCurrentLocation() const string GetCurrentLocationFunctionName = "get_current_location"; - FunctionToolDefinition getLocationTool = new() + FunctionToolDefinition getLocationTool = new(GetCurrentLocationFunctionName) { - FunctionName = GetCurrentLocationFunctionName, Description = "Get the user's current location" }; @@ -36,9 +35,8 @@ string GetCurrentWeather(string location, string unit = "celsius") const string GetCurrentWeatherFunctionName = "get_current_weather"; - FunctionToolDefinition getWeatherTool = new() + FunctionToolDefinition getWeatherTool = new(GetCurrentWeatherFunctionName) { - FunctionName = GetCurrentWeatherFunctionName, Description = "Get the current weather in a given location", Parameters = BinaryData.FromString(""" { diff --git a/examples/Assistants/Example02b_FunctionCallingStreaming.cs b/examples/Assistants/Example02b_FunctionCallingStreaming.cs index da6c33fc9..e3d222d05 100644 --- a/examples/Assistants/Example02b_FunctionCallingStreaming.cs +++ b/examples/Assistants/Example02b_FunctionCallingStreaming.cs @@ -19,9 +19,8 @@ public async Task Example02b_FunctionCallingStreaming() // First, define the functions that the assistant will use in its defined tools. - FunctionToolDefinition getTemperatureTool = new() + FunctionToolDefinition getTemperatureTool = new("get_current_temperature") { - FunctionName = "get_current_temperature", Description = "Gets the current temperature at a specific location.", Parameters = BinaryData.FromString(""" { @@ -41,9 +40,8 @@ public async Task Example02b_FunctionCallingStreaming() """), }; - FunctionToolDefinition getRainProbabilityTool = new() + FunctionToolDefinition getRainProbabilityTool = new("get_current_rain_probability") { - FunctionName = "get_current_rain_probability", Description = "Gets the current forecasted probability of rain at a specific location," + " represented as a percent chance in the range of 0 to 100.", Parameters = BinaryData.FromString(""" diff --git a/examples/Assistants/Example04_AllTheTools.cs b/examples/Assistants/Example04_AllTheTools.cs index af3ca34bd..19f6199f1 100644 --- a/examples/Assistants/Example04_AllTheTools.cs +++ b/examples/Assistants/Example04_AllTheTools.cs @@ -23,9 +23,8 @@ static string GetNameOfFamilyMember(string relation) _ => throw new ArgumentException(relation, nameof(relation)) }; - FunctionToolDefinition getNameOfFamilyMemberTool = new() + FunctionToolDefinition getNameOfFamilyMemberTool = new(nameof(GetNameOfFamilyMember)) { - FunctionName = nameof(GetNameOfFamilyMember), Description = "Provided a family relation type like 'father' or 'mother', " + "gets the name of the related person from the user.", Parameters = BinaryData.FromString(""" diff --git a/examples/Realtime/Example01_AudioFromFileWithToolsAsync.cs b/examples/Realtime/Example01_AudioFromFileWithToolsAsync.cs index c4e16d7f0..fbdfbb60f 100644 --- a/examples/Realtime/Example01_AudioFromFileWithToolsAsync.cs +++ b/examples/Realtime/Example01_AudioFromFileWithToolsAsync.cs @@ -174,9 +174,8 @@ await session.AddItemAsync( private static ConversationFunctionTool CreateSampleWeatherTool() { - return new ConversationFunctionTool() + return new ConversationFunctionTool("get_weather_for_location") { - Name = "get_weather_for_location", Description = "gets the weather for a location", Parameters = BinaryData.FromString(""" { diff --git a/src/Custom/Assistants/FileSearchRankingOptions.cs b/src/Custom/Assistants/FileSearchRankingOptions.cs index 8ae085dc2..fc5480181 100644 --- a/src/Custom/Assistants/FileSearchRankingOptions.cs +++ b/src/Custom/Assistants/FileSearchRankingOptions.cs @@ -6,33 +6,6 @@ namespace OpenAI.Assistants; [Experimental("OPENAI001")] [CodeGenType("FileSearchRankingOptions")] -[CodeGenSuppress(nameof(FileSearchRankingOptions), typeof(float))] -[CodeGenSuppress(nameof(FileSearchRankingOptions), typeof(FileSearchRankingOptions), typeof(float), typeof(IDictionary))] public partial class FileSearchRankingOptions { - required public float ScoreThreshold - { - get => _scoreThreshold; - set => _scoreThreshold = value; - } - - [CodeGenMember("ScoreThreshold")] - private float _scoreThreshold; - - public FileSearchRankingOptions() - { } - - [SetsRequiredMembers] - public FileSearchRankingOptions(float scoreThreshold) - { - ScoreThreshold = scoreThreshold; - } - - [SetsRequiredMembers] - internal FileSearchRankingOptions(FileSearchRanker? ranker, float scoreThreshold, IDictionary serializedAdditionalRawData) - { - Ranker = ranker; - ScoreThreshold = scoreThreshold; - _additionalBinaryDataProperties = serializedAdditionalRawData; - } } diff --git a/src/Custom/Assistants/FunctionToolDefinition.cs b/src/Custom/Assistants/FunctionToolDefinition.cs index 2e8c2adfd..ca14003c6 100644 --- a/src/Custom/Assistants/FunctionToolDefinition.cs +++ b/src/Custom/Assistants/FunctionToolDefinition.cs @@ -15,7 +15,7 @@ public partial class FunctionToolDefinition : ToolDefinition private readonly InternalFunctionDefinition _internalFunction; /// - public required string FunctionName + public string FunctionName { get => _internalFunction.Name; set => _internalFunction.Name = value; @@ -41,30 +41,10 @@ public bool? StrictParameterSchemaEnabled set => _internalFunction.Strict = value; } - /// - /// Creates a new instance of . - /// - [SetsRequiredMembers] public FunctionToolDefinition(string name) : base("function") { Argument.AssertNotNullOrEmpty(name, nameof(name)); _internalFunction = new(null, name, null, null, null); } - - /// - /// Creates a new instance of . - /// - public FunctionToolDefinition() - : base("function") - { - _internalFunction = new InternalFunctionDefinition(); - } - - [SetsRequiredMembers] - internal FunctionToolDefinition(string type, IDictionary serializedAdditionalRawData, InternalFunctionDefinition function) - : base(type, serializedAdditionalRawData) - { - _internalFunction = function; - } } diff --git a/src/Custom/RealtimeConversation/ConversationFunctionTool.cs b/src/Custom/RealtimeConversation/ConversationFunctionTool.cs index c095c5484..c8b6fc155 100644 --- a/src/Custom/RealtimeConversation/ConversationFunctionTool.cs +++ b/src/Custom/RealtimeConversation/ConversationFunctionTool.cs @@ -10,7 +10,7 @@ public partial class ConversationFunctionTool : ConversationTool { [CodeGenMember("Name")] private string _name; - public required string Name + public string Name { get => _name; set => _name = value; @@ -33,23 +33,4 @@ public BinaryData Parameters get => _parameters; set => _parameters = value; } - - public ConversationFunctionTool() : base(ConversationToolKind.Function, null) - { - } - - [SetsRequiredMembers] - public ConversationFunctionTool(string name) - : this(ConversationToolKind.Function, null, name, null, null) - { - Argument.AssertNotNull(name, nameof(name)); - } - - [SetsRequiredMembers] - internal ConversationFunctionTool(ConversationToolKind kind, IDictionary serializedAdditionalRawData, string name, string description, BinaryData parameters) : base(kind, serializedAdditionalRawData) - { - _name = name; - _description = description; - _parameters = parameters; - } } diff --git a/src/Custom/VectorStores/VectorStoreExpirationPolicy.cs b/src/Custom/VectorStores/VectorStoreExpirationPolicy.cs index 2b72c165d..c72227df1 100644 --- a/src/Custom/VectorStores/VectorStoreExpirationPolicy.cs +++ b/src/Custom/VectorStores/VectorStoreExpirationPolicy.cs @@ -9,54 +9,14 @@ namespace OpenAI.VectorStores; /// [Experimental("OPENAI001")] [CodeGenType("VectorStoreExpirationAfter")] -[CodeGenSuppress(nameof(VectorStoreExpirationPolicy))] [CodeGenSuppress(nameof(VectorStoreExpirationPolicy), typeof(int))] -[CodeGenSuppress(nameof(VectorStoreExpirationPolicy), typeof(VectorStoreExpirationAnchor), typeof(int), typeof(IDictionary))] public partial class VectorStoreExpirationPolicy { [CodeGenMember("Anchor")] - private VectorStoreExpirationAnchor _anchor; - [CodeGenMember("Days")] - private int _days; + public VectorStoreExpirationAnchor Anchor { get; set; } = VectorStoreExpirationAnchor.LastActiveAt; - /// Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`. - public required VectorStoreExpirationAnchor Anchor - { - get => _anchor; - set => _anchor = value; - } - - /// The number of days after the anchor time that the vector store will expire. - public required int Days - { - get => _days; - set => _days = value; - } - - /// Initializes a new instance of . - [SetsRequiredMembers] public VectorStoreExpirationPolicy(VectorStoreExpirationAnchor anchor, int days) - : this(anchor, days, null) - { - Days = days; - Anchor = anchor; - } - - /// Initializes a new instance of . - public VectorStoreExpirationPolicy() - { - SerializedAdditionalRawData = new ChangeTrackingDictionary(); - } - - /// Initializes a new instance of . - /// Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`. - /// The number of days after the anchor time that the vector store will expire. - /// Keeps track of any properties unknown to the library. - [SetsRequiredMembers] - internal VectorStoreExpirationPolicy(VectorStoreExpirationAnchor anchor, int days, IDictionary additionalBinaryDataProperties) + : this(days, anchor, null) { - Anchor = anchor; - Days = days; - SerializedAdditionalRawData = additionalBinaryDataProperties ?? new ChangeTrackingDictionary(); } } diff --git a/src/Generated/Models/ConversationFunctionTool.Serialization.cs b/src/Generated/Models/ConversationFunctionTool.Serialization.cs index 3b0c33fa9..78fd492d1 100644 --- a/src/Generated/Models/ConversationFunctionTool.Serialization.cs +++ b/src/Generated/Models/ConversationFunctionTool.Serialization.cs @@ -13,6 +13,10 @@ namespace OpenAI.RealtimeConversation { public partial class ConversationFunctionTool : IJsonModel { + internal ConversationFunctionTool() + { + } + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) { writer.WriteStartObject(); diff --git a/src/Generated/Models/ConversationFunctionTool.cs b/src/Generated/Models/ConversationFunctionTool.cs index cf6dc64bb..29c1c465a 100644 --- a/src/Generated/Models/ConversationFunctionTool.cs +++ b/src/Generated/Models/ConversationFunctionTool.cs @@ -2,9 +2,26 @@ #nullable disable +using System; +using System.Collections.Generic; +using OpenAI; + namespace OpenAI.RealtimeConversation { public partial class ConversationFunctionTool : ConversationTool { + public ConversationFunctionTool(string name) : base(ConversationToolKind.Function) + { + Argument.AssertNotNull(name, nameof(name)); + + _name = name; + } + + internal ConversationFunctionTool(ConversationToolKind kind, IDictionary additionalBinaryDataProperties, string name, string description, BinaryData parameters) : base(kind, additionalBinaryDataProperties) + { + _name = name; + _description = description; + _parameters = parameters; + } } } diff --git a/src/Generated/Models/FileSearchRankingOptions.Serialization.cs b/src/Generated/Models/FileSearchRankingOptions.Serialization.cs index d42b59aab..5fc20d5de 100644 --- a/src/Generated/Models/FileSearchRankingOptions.Serialization.cs +++ b/src/Generated/Models/FileSearchRankingOptions.Serialization.cs @@ -13,6 +13,10 @@ namespace OpenAI.Assistants { public partial class FileSearchRankingOptions : IJsonModel { + internal FileSearchRankingOptions() + { + } + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) { writer.WriteStartObject(); @@ -35,7 +39,7 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit if (_additionalBinaryDataProperties?.ContainsKey("score_threshold") != true) { writer.WritePropertyName("score_threshold"u8); - writer.WriteNumberValue(_scoreThreshold); + writer.WriteNumberValue(ScoreThreshold); } if (_additionalBinaryDataProperties != null) { diff --git a/src/Generated/Models/FileSearchRankingOptions.cs b/src/Generated/Models/FileSearchRankingOptions.cs index cdcad2aed..214f5decd 100644 --- a/src/Generated/Models/FileSearchRankingOptions.cs +++ b/src/Generated/Models/FileSearchRankingOptions.cs @@ -11,8 +11,22 @@ public partial class FileSearchRankingOptions { private protected IDictionary _additionalBinaryDataProperties; + public FileSearchRankingOptions(float scoreThreshold) + { + ScoreThreshold = scoreThreshold; + } + + internal FileSearchRankingOptions(FileSearchRanker? ranker, float scoreThreshold, IDictionary additionalBinaryDataProperties) + { + Ranker = ranker; + ScoreThreshold = scoreThreshold; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + public FileSearchRanker? Ranker { get; set; } + public float ScoreThreshold { get; set; } + internal IDictionary SerializedAdditionalRawData { get => _additionalBinaryDataProperties; diff --git a/src/Generated/Models/FunctionToolDefinition.Serialization.cs b/src/Generated/Models/FunctionToolDefinition.Serialization.cs index 6e09ab985..169b0d47f 100644 --- a/src/Generated/Models/FunctionToolDefinition.Serialization.cs +++ b/src/Generated/Models/FunctionToolDefinition.Serialization.cs @@ -13,6 +13,10 @@ namespace OpenAI.Assistants { public partial class FunctionToolDefinition : IJsonModel { + internal FunctionToolDefinition() + { + } + protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) { string format = options.Format == "W" ? ((IPersistableModel)this).GetFormatFromOptions(options) : options.Format; diff --git a/src/Generated/Models/FunctionToolDefinition.cs b/src/Generated/Models/FunctionToolDefinition.cs index fa9087663..7f6954214 100644 --- a/src/Generated/Models/FunctionToolDefinition.cs +++ b/src/Generated/Models/FunctionToolDefinition.cs @@ -2,9 +2,17 @@ #nullable disable +using System; +using System.Collections.Generic; +using OpenAI; + namespace OpenAI.Assistants { public partial class FunctionToolDefinition : ToolDefinition { + internal FunctionToolDefinition(string @type, IDictionary additionalBinaryDataProperties, InternalFunctionDefinition internalFunction) : base(@type, additionalBinaryDataProperties) + { + _internalFunction = internalFunction; + } } } diff --git a/src/Generated/Models/VectorStoreExpirationPolicy.Serialization.cs b/src/Generated/Models/VectorStoreExpirationPolicy.Serialization.cs index ef557c1d6..d1a0a4c09 100644 --- a/src/Generated/Models/VectorStoreExpirationPolicy.Serialization.cs +++ b/src/Generated/Models/VectorStoreExpirationPolicy.Serialization.cs @@ -13,6 +13,10 @@ namespace OpenAI.VectorStores { public partial class VectorStoreExpirationPolicy : IJsonModel { + internal VectorStoreExpirationPolicy() + { + } + void IJsonModel.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) { writer.WriteStartObject(); @@ -27,15 +31,15 @@ protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWrit { throw new FormatException($"The model {nameof(VectorStoreExpirationPolicy)} does not support writing '{format}' format."); } - if (_additionalBinaryDataProperties?.ContainsKey("anchor") != true) - { - writer.WritePropertyName("anchor"u8); - writer.WriteStringValue(_anchor.ToSerialString()); - } if (_additionalBinaryDataProperties?.ContainsKey("days") != true) { writer.WritePropertyName("days"u8); - writer.WriteNumberValue(_days); + writer.WriteNumberValue(Days); + } + if (_additionalBinaryDataProperties?.ContainsKey("anchor") != true) + { + writer.WritePropertyName("anchor"u8); + writer.WriteStringValue(Anchor.ToSerialString()); } if (_additionalBinaryDataProperties != null) { @@ -77,24 +81,24 @@ internal static VectorStoreExpirationPolicy DeserializeVectorStoreExpirationPoli { return null; } - VectorStoreExpirationAnchor anchor = default; int days = default; + VectorStoreExpirationAnchor anchor = default; IDictionary additionalBinaryDataProperties = new ChangeTrackingDictionary(); foreach (var prop in element.EnumerateObject()) { - if (prop.NameEquals("anchor"u8)) + if (prop.NameEquals("days"u8)) { - anchor = prop.Value.GetString().ToVectorStoreExpirationAnchor(); + days = prop.Value.GetInt32(); continue; } - if (prop.NameEquals("days"u8)) + if (prop.NameEquals("anchor"u8)) { - days = prop.Value.GetInt32(); + anchor = prop.Value.GetString().ToVectorStoreExpirationAnchor(); continue; } additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText())); } - return new VectorStoreExpirationPolicy(anchor, days, additionalBinaryDataProperties); + return new VectorStoreExpirationPolicy(days, anchor, additionalBinaryDataProperties); } BinaryData IPersistableModel.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options); diff --git a/src/Generated/Models/VectorStoreExpirationPolicy.cs b/src/Generated/Models/VectorStoreExpirationPolicy.cs index 2a6147ceb..ec789708d 100644 --- a/src/Generated/Models/VectorStoreExpirationPolicy.cs +++ b/src/Generated/Models/VectorStoreExpirationPolicy.cs @@ -11,6 +11,15 @@ public partial class VectorStoreExpirationPolicy { private protected IDictionary _additionalBinaryDataProperties; + internal VectorStoreExpirationPolicy(int days, VectorStoreExpirationAnchor anchor, IDictionary additionalBinaryDataProperties) + { + Days = days; + Anchor = anchor; + _additionalBinaryDataProperties = additionalBinaryDataProperties; + } + + public int Days { get; set; } + internal IDictionary SerializedAdditionalRawData { get => _additionalBinaryDataProperties; diff --git a/src/Generated/OpenAIModelFactory.cs b/src/Generated/OpenAIModelFactory.cs index 1e3e78e69..6579fe128 100644 --- a/src/Generated/OpenAIModelFactory.cs +++ b/src/Generated/OpenAIModelFactory.cs @@ -31,10 +31,10 @@ public static VectorStoreFileCounts VectorStoreFileCounts(int inProgress = defau additionalBinaryDataProperties: null); } - public static VectorStoreExpirationPolicy VectorStoreExpirationPolicy(VectorStoreExpirationAnchor anchor = default, int days = default) + public static VectorStoreExpirationPolicy VectorStoreExpirationPolicy(int days = default, VectorStoreExpirationAnchor anchor = default) { - return new VectorStoreExpirationPolicy(anchor, days, additionalBinaryDataProperties: null); + return new VectorStoreExpirationPolicy(days, anchor, additionalBinaryDataProperties: null); } public static VectorStoreCreationOptions VectorStoreCreationOptions(IEnumerable fileIds = default, string name = default, IDictionary metadata = default, VectorStoreExpirationPolicy expirationPolicy = default, FileChunkingStrategy chunkingStrategy = default) @@ -201,7 +201,7 @@ public static ToolDefinition ToolDefinition(string @type = default) public static FileSearchRankingOptions FileSearchRankingOptions(FileSearchRanker? ranker = default, float scoreThreshold = default) { - return new FileSearchRankingOptions(ranker, scoreThreshold, serializedAdditionalRawData: null); + return new FileSearchRankingOptions(ranker, scoreThreshold, additionalBinaryDataProperties: null); } public static FileSearchToolResources FileSearchToolResources(IEnumerable vectorStoreIds = default, IEnumerable newVectorStores = default) @@ -346,10 +346,10 @@ public static ConversationTool ConversationTool(string kind = default) return new UnknownRealtimeTool(new ConversationToolKind(kind), additionalBinaryDataProperties: null); } - public static ConversationFunctionTool ConversationFunctionTool(ConversationToolKind kind = default, string name = default, string description = default, BinaryData parameters = default) + public static ConversationFunctionTool ConversationFunctionTool(string name = default, string description = default, BinaryData parameters = default) { - return new ConversationFunctionTool(kind, serializedAdditionalRawData: null, name, description, parameters); + return new ConversationFunctionTool(ConversationToolKind.Function, additionalBinaryDataProperties: null, name, description, parameters); } public static ConversationContentPart ConversationContentPart(string kind = default) diff --git a/src/Utility/Polyfill/System.Diagnostics.CodeAnalysis.SetsRequiredMembersAttribute.cs b/src/Utility/Polyfill/System.Diagnostics.CodeAnalysis.SetsRequiredMembersAttribute.cs deleted file mode 100644 index 26cd00bce..000000000 --- a/src/Utility/Polyfill/System.Diagnostics.CodeAnalysis.SetsRequiredMembersAttribute.cs +++ /dev/null @@ -1,8 +0,0 @@ -#if !NET7_0_OR_GREATER - -namespace System.Diagnostics.CodeAnalysis; - -[AttributeUsage(AttributeTargets.Constructor, AllowMultiple = false, Inherited = false)] -internal sealed class SetsRequiredMembersAttribute : Attribute { } - -#endif // !NET7_0_OR_GREATER diff --git a/src/Utility/Polyfill/System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute.cs b/src/Utility/Polyfill/System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute.cs deleted file mode 100644 index b4aa9161f..000000000 --- a/src/Utility/Polyfill/System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute.cs +++ /dev/null @@ -1,15 +0,0 @@ -#if !NET7_0_OR_GREATER - -namespace System.Runtime.CompilerServices; - -[AttributeUsage(AttributeTargets.All, AllowMultiple = true, Inherited = false)] -internal sealed class CompilerFeatureRequiredAttribute(string featureName) : Attribute -{ - public string FeatureName { get; } = featureName; - public bool IsOptional { get; set; } - - public const string RefStructs = nameof(RefStructs); - public const string RequiredMembers = nameof(RequiredMembers); -} - -#endif // !NET7_0_OR_GREATER diff --git a/src/Utility/Polyfill/System.Runtime.CompilerServices.RequiredMemberAttribute.cs b/src/Utility/Polyfill/System.Runtime.CompilerServices.RequiredMemberAttribute.cs deleted file mode 100644 index 216d76910..000000000 --- a/src/Utility/Polyfill/System.Runtime.CompilerServices.RequiredMemberAttribute.cs +++ /dev/null @@ -1,8 +0,0 @@ -#if !NET7_0_OR_GREATER - -namespace System.Runtime.CompilerServices; - -[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = false)] -internal sealed class RequiredMemberAttribute : Attribute { } - -#endif // !NET7_0_OR_GREATER diff --git a/tests/Assistants/Assistants.VectorStoresTests.cs b/tests/Assistants/Assistants.VectorStoresTests.cs index 49c63916b..d08bdf463 100644 --- a/tests/Assistants/Assistants.VectorStoresTests.cs +++ b/tests/Assistants/Assistants.VectorStoresTests.cs @@ -58,11 +58,7 @@ public async Task CanCreateGetAndDeleteVectorStores() { FileIds = { testFiles[0].Id }, Name = "test vector store", - ExpirationPolicy = new VectorStoreExpirationPolicy() - { - Anchor = VectorStoreExpirationAnchor.LastActiveAt, - Days = 3, - }, + ExpirationPolicy = new VectorStoreExpirationPolicy(VectorStoreExpirationAnchor.LastActiveAt, 3), Metadata = { ["test-key"] = "test-value", diff --git a/tests/Assistants/AssistantsTests.cs b/tests/Assistants/AssistantsTests.cs index 3ac0ad949..969055fb9 100644 --- a/tests/Assistants/AssistantsTests.cs +++ b/tests/Assistants/AssistantsTests.cs @@ -484,9 +484,8 @@ public async Task FunctionToolsWork() { Tools = { - new FunctionToolDefinition() + new FunctionToolDefinition("get_favorite_food_for_day_of_week") { - FunctionName = "get_favorite_food_for_day_of_week", Description = "gets the user's favorite food for a given day of the week, like Tuesday", Parameters = BinaryData.FromObjectAsJson(new { @@ -666,9 +665,8 @@ public async Task StreamingToolCallAsync() AssertAsyncOnly(); AssistantClient client = GetTestClient(); - FunctionToolDefinition getWeatherTool = new() + FunctionToolDefinition getWeatherTool = new("get_current_weather") { - FunctionName = "get_current_weather", Description = "Gets the user's current weather", }; Assistant assistant = await client.CreateAssistantAsync("gpt-4o-mini", new() @@ -730,9 +728,8 @@ public void StreamingToolCall() AssertSyncOnly(); AssistantClient client = GetTestClient(); - FunctionToolDefinition getWeatherTool = new() + FunctionToolDefinition getWeatherTool = new("get_current_weather") { - FunctionName = "get_current_weather", Description = "Gets the user's current weather", }; Assistant assistant = client.CreateAssistant("gpt-4o-mini", new() @@ -810,9 +807,8 @@ This file describes the favorite foods of several people. FileSearchToolDefinition fileSearchTool = new() { MaxResults = 2, - RankingOptions = new() + RankingOptions = new(0.5f) { - ScoreThreshold = 0.5f, Ranker = FileSearchRanker.Default20240821 } }; diff --git a/tests/RealtimeConversation/ConversationTests.cs b/tests/RealtimeConversation/ConversationTests.cs index d993c128b..9c855d009 100644 --- a/tests/RealtimeConversation/ConversationTests.cs +++ b/tests/RealtimeConversation/ConversationTests.cs @@ -289,9 +289,8 @@ public async Task AudioWithToolsWorks(TestAudioSendType audioSendType) RealtimeConversationClient client = GetTestClient(); using RealtimeConversationSession session = await client.StartConversationSessionAsync(CancellationToken); - ConversationFunctionTool getWeatherTool = new() + ConversationFunctionTool getWeatherTool = new("get_weather_for_location") { - Name = "get_weather_for_location", Description = "gets the weather for a location", Parameters = BinaryData.FromString(""" {