openai/openai-dotnet

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
OpenAI_2.2.0

Branches

Tags

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

Clone

HTTPS

Download ZIP

src/Generated/Models/Assistant.Serialization.cs

374lines · modecode

1// <auto-generated/>
2
3#nullable disable
4
5using System;
6using System.ClientModel.Primitives;
7using System.Collections.Generic;
8using System.Diagnostics.CodeAnalysis;
9using System.Text.Json;
10using OpenAI;
11
12namespace OpenAI.Assistants
13{
14 public partial class Assistant : IJsonModel<Assistant>
15 {
16 internal Assistant() : this(null, default, null, null, null, null, null, null, null, default, null, null, default, null)
17 {
18 }
19
20 void IJsonModel<Assistant>.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options)
21 {
22 writer.WriteStartObject();
23 JsonModelWriteCore(writer, options);
24 writer.WriteEndObject();
25 }
26
27 [Experimental("OPENAI001")]
28 protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options)
29 {
30 string format = options.Format == "W" ? ((IPersistableModel<Assistant>)this).GetFormatFromOptions(options) : options.Format;
31 if (format != "J")
32 {
33 throw new FormatException($"The model {nameof(Assistant)} does not support writing '{format}' format.");
34 }
35 if (_additionalBinaryDataProperties?.ContainsKey("id") != true)
36 {
37 writer.WritePropertyName("id"u8);
38 writer.WriteStringValue(Id);
39 }
40 if (_additionalBinaryDataProperties?.ContainsKey("created_at") != true)
41 {
42 writer.WritePropertyName("created_at"u8);
43 writer.WriteNumberValue(CreatedAt, "U");
44 }
45 if (_additionalBinaryDataProperties?.ContainsKey("name") != true)
46 {
47 if (Optional.IsDefined(Name))
48 {
49 writer.WritePropertyName("name"u8);
50 writer.WriteStringValue(Name);
51 }
52 else
53 {
54 writer.WriteNull("name"u8);
55 }
56 }
57 if (_additionalBinaryDataProperties?.ContainsKey("description") != true)
58 {
59 if (Optional.IsDefined(Description))
60 {
61 writer.WritePropertyName("description"u8);
62 writer.WriteStringValue(Description);
63 }
64 else
65 {
66 writer.WriteNull("description"u8);
67 }
68 }
69 if (_additionalBinaryDataProperties?.ContainsKey("model") != true)
70 {
71 writer.WritePropertyName("model"u8);
72 writer.WriteStringValue(Model);
73 }
74 if (_additionalBinaryDataProperties?.ContainsKey("instructions") != true)
75 {
76 if (Optional.IsDefined(Instructions))
77 {
78 writer.WritePropertyName("instructions"u8);
79 writer.WriteStringValue(Instructions);
80 }
81 else
82 {
83 writer.WriteNull("instructions"u8);
84 }
85 }
86 // Plugin customization: remove options.Format != "W" check
87 if (_additionalBinaryDataProperties?.ContainsKey("tools") != true)
88 {
89 writer.WritePropertyName("tools"u8);
90 writer.WriteStartArray();
91 foreach (ToolDefinition item in Tools)
92 {
93 writer.WriteObjectValue(item, options);
94 }
95 writer.WriteEndArray();
96 }
97 if (Optional.IsDefined(ToolResources) && _additionalBinaryDataProperties?.ContainsKey("tool_resources") != true)
98 {
99 writer.WritePropertyName("tool_resources"u8);
100 writer.WriteObjectValue(ToolResources, options);
101 }
102 // Plugin customization: remove options.Format != "W" check
103 if (_additionalBinaryDataProperties?.ContainsKey("metadata") != true)
104 {
105 writer.WritePropertyName("metadata"u8);
106 writer.WriteStartObject();
107 foreach (var item in Metadata)
108 {
109 writer.WritePropertyName(item.Key);
110 if (item.Value == null)
111 {
112 writer.WriteNullValue();
113 continue;
114 }
115 writer.WriteStringValue(item.Value);
116 }
117 writer.WriteEndObject();
118 }
119 if (Optional.IsDefined(Temperature) && _additionalBinaryDataProperties?.ContainsKey("temperature") != true)
120 {
121 writer.WritePropertyName("temperature"u8);
122 writer.WriteNumberValue(Temperature.Value);
123 }
124 if (_additionalBinaryDataProperties?.ContainsKey("object") != true)
125 {
126 writer.WritePropertyName("object"u8);
127 writer.WriteStringValue(Object);
128 }
129 if (Optional.IsDefined(ResponseFormat) && _additionalBinaryDataProperties?.ContainsKey("response_format") != true)
130 {
131 writer.WritePropertyName("response_format"u8);
132 writer.WriteObjectValue(ResponseFormat, options);
133 }
134 if (Optional.IsDefined(NucleusSamplingFactor) && _additionalBinaryDataProperties?.ContainsKey("top_p") != true)
135 {
136 writer.WritePropertyName("top_p"u8);
137 writer.WriteNumberValue(NucleusSamplingFactor.Value);
138 }
139 // Plugin customization: remove options.Format != "W" check
140 if (_additionalBinaryDataProperties != null)
141 {
142 foreach (var item in _additionalBinaryDataProperties)
143 {
144 if (ModelSerializationExtensions.IsSentinelValue(item.Value))
145 {
146 continue;
147 }
148 writer.WritePropertyName(item.Key);
149#if NET6_0_OR_GREATER
150 writer.WriteRawValue(item.Value);
151#else
152 using (JsonDocument document = JsonDocument.Parse(item.Value))
153 {
154 JsonSerializer.Serialize(writer, document.RootElement);
155 }
156#endif
157 }
158 }
159 }
160
161 Assistant IJsonModel<Assistant>.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => JsonModelCreateCore(ref reader, options);
162
163 [Experimental("OPENAI001")]
164 protected virtual Assistant JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options)
165 {
166 string format = options.Format == "W" ? ((IPersistableModel<Assistant>)this).GetFormatFromOptions(options) : options.Format;
167 if (format != "J")
168 {
169 throw new FormatException($"The model {nameof(Assistant)} does not support reading '{format}' format.");
170 }
171 using JsonDocument document = JsonDocument.ParseValue(ref reader);
172 return DeserializeAssistant(document.RootElement, options);
173 }
174
175 internal static Assistant DeserializeAssistant(JsonElement element, ModelReaderWriterOptions options)
176 {
177 if (element.ValueKind == JsonValueKind.Null)
178 {
179 return null;
180 }
181 string id = default;
182 DateTimeOffset createdAt = default;
183 string name = default;
184 string description = default;
185 string model = default;
186 string instructions = default;
187 IReadOnlyList<ToolDefinition> tools = default;
188 ToolResources toolResources = default;
189 IReadOnlyDictionary<string, string> metadata = default;
190 float? temperature = default;
191 string @object = default;
192 AssistantResponseFormat responseFormat = default;
193 float? nucleusSamplingFactor = default;
194 IDictionary<string, BinaryData> additionalBinaryDataProperties = new ChangeTrackingDictionary<string, BinaryData>();
195 foreach (var prop in element.EnumerateObject())
196 {
197 if (prop.NameEquals("id"u8))
198 {
199 id = prop.Value.GetString();
200 continue;
201 }
202 if (prop.NameEquals("created_at"u8))
203 {
204 createdAt = DateTimeOffset.FromUnixTimeSeconds(prop.Value.GetInt64());
205 continue;
206 }
207 if (prop.NameEquals("name"u8))
208 {
209 if (prop.Value.ValueKind == JsonValueKind.Null)
210 {
211 name = null;
212 continue;
213 }
214 name = prop.Value.GetString();
215 continue;
216 }
217 if (prop.NameEquals("description"u8))
218 {
219 if (prop.Value.ValueKind == JsonValueKind.Null)
220 {
221 description = null;
222 continue;
223 }
224 description = prop.Value.GetString();
225 continue;
226 }
227 if (prop.NameEquals("model"u8))
228 {
229 model = prop.Value.GetString();
230 continue;
231 }
232 if (prop.NameEquals("instructions"u8))
233 {
234 if (prop.Value.ValueKind == JsonValueKind.Null)
235 {
236 instructions = null;
237 continue;
238 }
239 instructions = prop.Value.GetString();
240 continue;
241 }
242 if (prop.NameEquals("tools"u8))
243 {
244 List<ToolDefinition> array = new List<ToolDefinition>();
245 foreach (var item in prop.Value.EnumerateArray())
246 {
247 array.Add(ToolDefinition.DeserializeToolDefinition(item, options));
248 }
249 tools = array;
250 continue;
251 }
252 if (prop.NameEquals("tool_resources"u8))
253 {
254 if (prop.Value.ValueKind == JsonValueKind.Null)
255 {
256 toolResources = null;
257 continue;
258 }
259 toolResources = ToolResources.DeserializeToolResources(prop.Value, options);
260 continue;
261 }
262 if (prop.NameEquals("metadata"u8))
263 {
264 if (prop.Value.ValueKind == JsonValueKind.Null)
265 {
266 metadata = new ChangeTrackingDictionary<string, string>();
267 continue;
268 }
269 Dictionary<string, string> dictionary = new Dictionary<string, string>();
270 foreach (var prop0 in prop.Value.EnumerateObject())
271 {
272 if (prop0.Value.ValueKind == JsonValueKind.Null)
273 {
274 dictionary.Add(prop0.Name, null);
275 }
276 else
277 {
278 dictionary.Add(prop0.Name, prop0.Value.GetString());
279 }
280 }
281 metadata = dictionary;
282 continue;
283 }
284 if (prop.NameEquals("temperature"u8))
285 {
286 if (prop.Value.ValueKind == JsonValueKind.Null)
287 {
288 temperature = null;
289 continue;
290 }
291 temperature = prop.Value.GetSingle();
292 continue;
293 }
294 if (prop.NameEquals("object"u8))
295 {
296 @object = prop.Value.GetString();
297 continue;
298 }
299 if (prop.NameEquals("response_format"u8))
300 {
301 if (prop.Value.ValueKind == JsonValueKind.Null)
302 {
303 responseFormat = null;
304 continue;
305 }
306 responseFormat = AssistantResponseFormat.DeserializeAssistantResponseFormat(prop.Value, options);
307 continue;
308 }
309 if (prop.NameEquals("top_p"u8))
310 {
311 if (prop.Value.ValueKind == JsonValueKind.Null)
312 {
313 nucleusSamplingFactor = null;
314 continue;
315 }
316 nucleusSamplingFactor = prop.Value.GetSingle();
317 continue;
318 }
319 // Plugin customization: remove options.Format != "W" check
320 additionalBinaryDataProperties.Add(prop.Name, BinaryData.FromString(prop.Value.GetRawText()));
321 }
322 return new Assistant(
323 id,
324 createdAt,
325 name,
326 description,
327 model,
328 instructions,
329 tools,
330 toolResources,
331 metadata,
332 temperature,
333 @object,
334 responseFormat,
335 nucleusSamplingFactor,
336 additionalBinaryDataProperties);
337 }
338
339 BinaryData IPersistableModel<Assistant>.Write(ModelReaderWriterOptions options) => PersistableModelWriteCore(options);
340
341 [Experimental("OPENAI001")]
342 protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options)
343 {
344 string format = options.Format == "W" ? ((IPersistableModel<Assistant>)this).GetFormatFromOptions(options) : options.Format;
345 switch (format)
346 {
347 case "J":
348 return ModelReaderWriter.Write(this, options, OpenAIContext.Default);
349 default:
350 throw new FormatException($"The model {nameof(Assistant)} does not support writing '{options.Format}' format.");
351 }
352 }
353
354 Assistant IPersistableModel<Assistant>.Create(BinaryData data, ModelReaderWriterOptions options) => PersistableModelCreateCore(data, options);
355
356 [Experimental("OPENAI001")]
357 protected virtual Assistant PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options)
358 {
359 string format = options.Format == "W" ? ((IPersistableModel<Assistant>)this).GetFormatFromOptions(options) : options.Format;
360 switch (format)
361 {
362 case "J":
363 using (JsonDocument document = JsonDocument.Parse(data))
364 {
365 return DeserializeAssistant(document.RootElement, options);
366 }
367 default:
368 throw new FormatException($"The model {nameof(Assistant)} does not support reading '{options.Format}' format.");
369 }
370 }
371
372 string IPersistableModel<Assistant>.GetFormatFromOptions(ModelReaderWriterOptions options) => "J";
373 }
374}