openai/openai-dotnet

Public

mirrored from https://github.com/openai/openai-dotnetAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
achandmsft-patch-2

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

src/Generated/Models/FineTuning/FineTuningCheckpointMetrics.Serialization.cs

225lines · modecode

1// <auto-generated/>
2
3#nullable disable
4
5using System;
6using System.ClientModel.Primitives;
7using System.Collections.Generic;
8using System.Text.Json;
9using OpenAI;
10
11namespace OpenAI.FineTuning
12{
13 public partial class FineTuningCheckpointMetrics : IJsonModel<FineTuningCheckpointMetrics>
14 {
15 void IJsonModel<FineTuningCheckpointMetrics>.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options)
16 {
17 writer.WriteStartObject();
18 JsonModelWriteCore(writer, options);
19 writer.WriteEndObject();
20 }
21
22 protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options)
23 {
24 string format = options.Format == "W" ? ((IPersistableModel<FineTuningCheckpointMetrics>)this).GetFormatFromOptions(options) : options.Format;
25 if (format != "J")
26 {
27 throw new FormatException($"The model {nameof(FineTuningCheckpointMetrics)} does not support writing '{format}' format.");
28 }
29 if (Optional.IsDefined(TrainLoss) && _additionalBinaryDataProperties?.ContainsKey("train_loss") != true)
30 {
31 writer.WritePropertyName("train_loss"u8);
32 writer.WriteNumberValue(TrainLoss.Value);
33 }
34 if (Optional.IsDefined(TrainMeanTokenAccuracy) && _additionalBinaryDataProperties?.ContainsKey("train_mean_token_accuracy") != true)
35 {
36 writer.WritePropertyName("train_mean_token_accuracy"u8);
37 writer.WriteNumberValue(TrainMeanTokenAccuracy.Value);
38 }
39 if (Optional.IsDefined(ValidLoss) && _additionalBinaryDataProperties?.ContainsKey("valid_loss") != true)
40 {
41 writer.WritePropertyName("valid_loss"u8);
42 writer.WriteNumberValue(ValidLoss.Value);
43 }
44 if (Optional.IsDefined(ValidMeanTokenAccuracy) && _additionalBinaryDataProperties?.ContainsKey("valid_mean_token_accuracy") != true)
45 {
46 writer.WritePropertyName("valid_mean_token_accuracy"u8);
47 writer.WriteNumberValue(ValidMeanTokenAccuracy.Value);
48 }
49 if (Optional.IsDefined(FullValidLoss) && _additionalBinaryDataProperties?.ContainsKey("full_valid_loss") != true)
50 {
51 writer.WritePropertyName("full_valid_loss"u8);
52 writer.WriteNumberValue(FullValidLoss.Value);
53 }
54 if (Optional.IsDefined(FullValidMeanTokenAccuracy) && _additionalBinaryDataProperties?.ContainsKey("full_valid_mean_token_accuracy") != true)
55 {
56 writer.WritePropertyName("full_valid_mean_token_accuracy"u8);
57 writer.WriteNumberValue(FullValidMeanTokenAccuracy.Value);
58 }
59 if (_additionalBinaryDataProperties?.ContainsKey("step") != true)
60 {
61 writer.WritePropertyName("step"u8);
62 writer.WriteNumberValue(StepNumber);
63 }
64 // Plugin customization: remove options.Format != "W" check
65 if (_additionalBinaryDataProperties != null)
66 {
67 foreach (var item in _additionalBinaryDataProperties)
68 {
69 if (ModelSerializationExtensions.IsSentinelValue(item.Value))
70 {
71 continue;
72 }
73 writer.WritePropertyName(item.Key);
74#if NET6_0_OR_GREATER
75 writer.WriteRawValue(item.Value);
76#else
77 using (JsonDocument document = JsonDocument.Parse(item.Value))
78 {
79 JsonSerializer.Serialize(writer, document.RootElement);
80 }
81#endif
82 }
83 }
84 }
85
86 FineTuningCheckpointMetrics IJsonModel<FineTuningCheckpointMetrics>.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options);
87
88 protected virtual FineTuningCheckpointMetrics JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options)
89 {
90 string format = options.Format == "W" ? ((IPersistableModel<FineTuningCheckpointMetrics>)this).GetFormatFromOptions(options) : options.Format;
91 if (format != "J")
92 {
93 throw new FormatException($"The model {nameof(FineTuningCheckpointMetrics)} does not support reading '{format}' format.");
94 }
95 using JsonDocument document = JsonDocument.ParseValue(ref reader);
96 return DeserializeFineTuningCheckpointMetrics(document.RootElement, options);
97 }
98
99 internal static FineTuningCheckpointMetrics DeserializeFineTuningCheckpointMetrics(JsonElement element, ModelReaderWriterOptions options)
100 {
101 if (element.ValueKind == JsonValueKind.Null)
102 {
103 return null;
104 }
105 float? trainLoss = default;
106 float? trainMeanTokenAccuracy = default;
107 float? validLoss = default;
108 float? validMeanTokenAccuracy = default;
109 float? fullValidLoss = default;
110 float? fullValidMeanTokenAccuracy = default;
111 int stepNumber = default;
112 IDictionary<string, BinaryData> additionalBinaryDataProperties = new ChangeTrackingDictionary<string, BinaryData>();
113 foreach (var prop in element.EnumerateObject())
114 {
115 if (prop.NameEquals("train_loss"u8))
116 {
117 if (prop.Value.ValueKind == JsonValueKind.Null)
118 {
119 continue;
120 }
121 trainLoss = prop.Value.GetSingle();
122 continue;
123 }
124 if (prop.NameEquals("train_mean_token_accuracy"u8))
125 {
126 if (prop.Value.ValueKind == JsonValueKind.Null)
127 {
128 continue;
129 }
130 trainMeanTokenAccuracy = prop.Value.GetSingle();
131 continue;
132 }
133 if (prop.NameEquals("valid_loss"u8))
134 {
135 if (prop.Value.ValueKind == JsonValueKind.Null)
136 {
137 continue;
138 }
139 validLoss = prop.Value.GetSingle();
140 continue;
141 }
142 if (prop.NameEquals("valid_mean_token_accuracy"u8))
143 {
144 if (prop.Value.ValueKind == JsonValueKind.Null)
145 {
146 continue;
147 }
148 validMeanTokenAccuracy = prop.Value.GetSingle();
149 continue;
150 }
151 if (prop.NameEquals("full_valid_loss"u8))
152 {
153 if (prop.Value.ValueKind == JsonValueKind.Null)
154 {
155 continue;
156 }
157 fullValidLoss = prop.Value.GetSingle();
158 continue;
159 }
160 if (prop.NameEquals("full_valid_mean_token_accuracy"u8))
161 {
162 if (prop.Value.ValueKind == JsonValueKind.Null)
163 {
164 continue;
165 }
166 fullValidMeanTokenAccuracy = prop.Value.GetSingle();
167 continue;
168 }
169 if (prop.NameEquals("step"u8))
170 {
171 if (prop.Value.ValueKind == JsonValueKind.Null)
172 {
173 continue;
174 }
175 stepNumber = prop.Value.GetInt32();
176 continue;
177 }
178 // Plugin customization: remove options.Format != "W" check
179 additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText()));
180 }
181 return new FineTuningCheckpointMetrics(
182 trainLoss,
183 trainMeanTokenAccuracy,
184 validLoss,
185 validMeanTokenAccuracy,
186 fullValidLoss,
187 fullValidMeanTokenAccuracy,
188 stepNumber,
189 additionalBinaryDataProperties);
190 }
191
192 BinaryData IPersistableModel<FineTuningCheckpointMetrics>.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options);
193
194 protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options)
195 {
196 string format = options.Format == "W" ? ((IPersistableModel<FineTuningCheckpointMetrics>)this).GetFormatFromOptions(options) : options.Format;
197 switch (format)
198 {
199 case "J":
200 return ModelReaderWriter.Write(this, options, OpenAIContext.Default);
201 default:
202 throw new FormatException($"The model {nameof(FineTuningCheckpointMetrics)} does not support writing '{options.Format}' format.");
203 }
204 }
205
206 FineTuningCheckpointMetrics IPersistableModel<FineTuningCheckpointMetrics>.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options);
207
208 protected virtual FineTuningCheckpointMetrics PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options)
209 {
210 string format = options.Format == "W" ? ((IPersistableModel<FineTuningCheckpointMetrics>)this).GetFormatFromOptions(options) : options.Format;
211 switch (format)
212 {
213 case "J":
214 using (JsonDocument document = JsonDocument.Parse(data))
215 {
216 return DeserializeFineTuningCheckpointMetrics(document.RootElement, options);
217 }
218 default:
219 throw new FormatException($"The model {nameof(FineTuningCheckpointMetrics)} does not support reading '{options.Format}' format.");
220 }
221 }
222
223 string IPersistableModel<FineTuningCheckpointMetrics>.GetFormatFromOptions(ModelReaderWriterOptions options) => "J";
224 }
225}
226