Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 5 additions & 13 deletions api/OpenAI.net8.0.cs
Original file line number Diff line number Diff line change
Expand Up @@ -332,11 +332,9 @@ public class CodeInterpreterToolResources : IJsonModel<CodeInterpreterToolResour
}
[Experimental("OPENAI001")]
public class FileSearchRankingOptions : IJsonModel<FileSearchRankingOptions>, IPersistableModel<FileSearchRankingOptions> {
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);
}
Expand All @@ -356,11 +354,9 @@ public class FileSearchToolResources : IJsonModel<FileSearchToolResources>, IPer
}
[Experimental("OPENAI001")]
public class FunctionToolDefinition : ToolDefinition, IJsonModel<FunctionToolDefinition>, IPersistableModel<FunctionToolDefinition> {
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);
Expand Down Expand Up @@ -2240,11 +2236,9 @@ public class ConversationErrorUpdate : ConversationUpdate, IJsonModel<Conversati
}
[Experimental("OPENAI002")]
public class ConversationFunctionTool : ConversationTool, IJsonModel<ConversationFunctionTool>, IPersistableModel<ConversationFunctionTool> {
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);
Expand Down Expand Up @@ -3842,11 +3836,9 @@ public enum VectorStoreExpirationAnchor {
}
[Experimental("OPENAI001")]
public class VectorStoreExpirationPolicy : IJsonModel<VectorStoreExpirationPolicy>, IPersistableModel<VectorStoreExpirationPolicy> {
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);
}
Expand Down
14 changes: 5 additions & 9 deletions api/OpenAI.netstandard2.0.cs
Original file line number Diff line number Diff line change
Expand Up @@ -314,10 +314,9 @@ public class CodeInterpreterToolResources : IJsonModel<CodeInterpreterToolResour
public override readonly string ToString();
}
public class FileSearchRankingOptions : IJsonModel<FileSearchRankingOptions>, IPersistableModel<FileSearchRankingOptions> {
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);
}
Expand All @@ -334,10 +333,9 @@ public class FileSearchToolResources : IJsonModel<FileSearchToolResources>, IPer
public static implicit operator BinaryContent(FileSearchToolResources fileSearchToolResources);
}
public class FunctionToolDefinition : ToolDefinition, IJsonModel<FunctionToolDefinition>, IPersistableModel<FunctionToolDefinition> {
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);
Expand Down Expand Up @@ -2135,10 +2133,9 @@ public class ConversationErrorUpdate : ConversationUpdate, IJsonModel<Conversati
public static implicit operator BinaryContent(ConversationErrorUpdate conversationErrorUpdate);
}
public class ConversationFunctionTool : ConversationTool, IJsonModel<ConversationFunctionTool>, IPersistableModel<ConversationFunctionTool> {
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);
Expand Down Expand Up @@ -3655,10 +3652,9 @@ public enum VectorStoreExpirationAnchor {
LastActiveAt = 1
}
public class VectorStoreExpirationPolicy : IJsonModel<VectorStoreExpirationPolicy>, IPersistableModel<VectorStoreExpirationPolicy> {
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);
}
Expand Down
6 changes: 2 additions & 4 deletions examples/Assistants/Example02_FunctionCalling.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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"
};

Expand All @@ -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("""
{
Expand Down
6 changes: 2 additions & 4 deletions examples/Assistants/Example02_FunctionCallingAsync.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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"
};

Expand All @@ -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("""
{
Expand Down
6 changes: 2 additions & 4 deletions examples/Assistants/Example02b_FunctionCallingStreaming.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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("""
{
Expand All @@ -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("""
Expand Down
3 changes: 1 addition & 2 deletions examples/Assistants/Example04_AllTheTools.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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("""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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("""
{
Expand Down
27 changes: 0 additions & 27 deletions src/Custom/Assistants/FileSearchRankingOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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<string, BinaryData>))]
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<string, BinaryData> serializedAdditionalRawData)
{
Ranker = ranker;
ScoreThreshold = scoreThreshold;
_additionalBinaryDataProperties = serializedAdditionalRawData;
}
}
22 changes: 1 addition & 21 deletions src/Custom/Assistants/FunctionToolDefinition.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public partial class FunctionToolDefinition : ToolDefinition
private readonly InternalFunctionDefinition _internalFunction;

/// <inheritdoc cref="InternalFunctionDefinition.Name"/>
public required string FunctionName
public string FunctionName
{
get => _internalFunction.Name;
set => _internalFunction.Name = value;
Expand All @@ -41,30 +41,10 @@ public bool? StrictParameterSchemaEnabled
set => _internalFunction.Strict = value;
}

/// <summary>
/// Creates a new instance of <see cref="FunctionToolDefinition"/>.
/// </summary>
[SetsRequiredMembers]
public FunctionToolDefinition(string name)
: base("function")
{
Argument.AssertNotNullOrEmpty(name, nameof(name));
_internalFunction = new(null, name, null, null, null);
}

/// <summary>
/// Creates a new instance of <see cref="FunctionToolDefinition"/>.
/// </summary>
public FunctionToolDefinition()
: base("function")
{
_internalFunction = new InternalFunctionDefinition();
}

[SetsRequiredMembers]
internal FunctionToolDefinition(string type, IDictionary<string, BinaryData> serializedAdditionalRawData, InternalFunctionDefinition function)
: base(type, serializedAdditionalRawData)
{
_internalFunction = function;
}
}
21 changes: 1 addition & 20 deletions src/Custom/RealtimeConversation/ConversationFunctionTool.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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<string, BinaryData> serializedAdditionalRawData, string name, string description, BinaryData parameters) : base(kind, serializedAdditionalRawData)
{
_name = name;
_description = description;
_parameters = parameters;
}
}
44 changes: 2 additions & 42 deletions src/Custom/VectorStores/VectorStoreExpirationPolicy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,54 +9,14 @@ namespace OpenAI.VectorStores;
/// </summary>
[Experimental("OPENAI001")]
[CodeGenType("VectorStoreExpirationAfter")]
[CodeGenSuppress(nameof(VectorStoreExpirationPolicy))]
[CodeGenSuppress(nameof(VectorStoreExpirationPolicy), typeof(int))]
[CodeGenSuppress(nameof(VectorStoreExpirationPolicy), typeof(VectorStoreExpirationAnchor), typeof(int), typeof(IDictionary<string, BinaryData>))]
public partial class VectorStoreExpirationPolicy
{
[CodeGenMember("Anchor")]
private VectorStoreExpirationAnchor _anchor;
[CodeGenMember("Days")]
private int _days;
public VectorStoreExpirationAnchor Anchor { get; set; } = VectorStoreExpirationAnchor.LastActiveAt;

/// <summary> Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`. </summary>
public required VectorStoreExpirationAnchor Anchor
{
get => _anchor;
set => _anchor = value;
}

/// <summary> The number of days after the anchor time that the vector store will expire. </summary>
public required int Days
{
get => _days;
set => _days = value;
}

/// <summary> Initializes a new instance of <see cref="VectorStoreExpirationPolicy"/>. </summary>
[SetsRequiredMembers]
public VectorStoreExpirationPolicy(VectorStoreExpirationAnchor anchor, int days)
: this(anchor, days, null)
{
Days = days;
Anchor = anchor;
}

/// <summary> Initializes a new instance of <see cref="VectorStoreExpirationPolicy"/>. </summary>
public VectorStoreExpirationPolicy()
{
SerializedAdditionalRawData = new ChangeTrackingDictionary<string, BinaryData>();
}

/// <summary> Initializes a new instance of <see cref="VectorStoreExpirationPolicy"/>. </summary>
/// <param name="anchor"> Anchor timestamp after which the expiration policy applies. Supported anchors: `last_active_at`. </param>
/// <param name="days"> The number of days after the anchor time that the vector store will expire. </param>
/// <param name="additionalBinaryDataProperties"> Keeps track of any properties unknown to the library. </param>
[SetsRequiredMembers]
internal VectorStoreExpirationPolicy(VectorStoreExpirationAnchor anchor, int days, IDictionary<string, BinaryData> additionalBinaryDataProperties)
: this(days, anchor, null)
{
Anchor = anchor;
Days = days;
SerializedAdditionalRawData = additionalBinaryDataProperties ?? new ChangeTrackingDictionary<string, BinaryData>();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ namespace OpenAI.RealtimeConversation
{
public partial class ConversationFunctionTool : IJsonModel<ConversationFunctionTool>
{
internal ConversationFunctionTool()
{
}

void IJsonModel<ConversationFunctionTool>.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options)
{
writer.WriteStartObject();
Expand Down
17 changes: 17 additions & 0 deletions src/Generated/Models/ConversationFunctionTool.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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<string, BinaryData> additionalBinaryDataProperties, string name, string description, BinaryData parameters) : base(kind, additionalBinaryDataProperties)
{
_name = name;
_description = description;
_parameters = parameters;
}
}
}
Loading