in src/Custom/Assistants/ToolConstraint.Serialization.cs [50:96]
internal static ToolConstraint DeserializeToolConstraint(JsonElement element, ModelReaderWriterOptions options = null)
{
options ??= ModelSerializationExtensions.WireOptions;
string plainTextValue = null;
string objectType = null;
string objectFunctionName = null;
IDictionary<string, BinaryData> rawDataDictionary = new ChangeTrackingDictionary<string, BinaryData>();
if (element.ValueKind == JsonValueKind.Null)
{
return null;
}
if (element.ValueKind == JsonValueKind.String)
{
plainTextValue = element.GetString();
}
else
{
foreach (var property in element.EnumerateObject())
{
if (property.NameEquals("type"u8))
{
objectType = property.Value.GetString();
continue;
}
if (property.NameEquals("function"u8))
{
foreach (JsonProperty functionProperty in property.Value.EnumerateObject())
{
if (functionProperty.NameEquals("name"u8))
{
objectFunctionName = functionProperty.Value.GetString();
continue;
}
}
continue;
}
if (true)
{
rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText()));
}
}
}
return new ToolConstraint(plainTextValue, objectType, objectFunctionName, rawDataDictionary);
}