openai/openai-dotnet

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
OpenAI_2.0.0-beta.7

Branches

Tags

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

Clone

HTTPS

Download ZIP

src/Custom/Chat/Internal/InternalCreateChatCompletionStreamResponseChoice.Serialization.cs

105lines · modeblame

9f9f2936Jose Arriaga Maldonado2 years ago1using System;
2using System.ClientModel.Primitives;
3using System.Collections.Generic;
4using System.Text.Json;
5
6namespace OpenAI.Chat;
7
8[CodeGenSuppress("global::System.ClientModel.Primitives.IJsonModel<OpenAI.Chat.InternalCreateChatCompletionStreamResponseChoice>.Write", typeof(Utf8JsonWriter), typeof(ModelReaderWriterOptions))]
9internal partial class InternalCreateChatCompletionStreamResponseChoice : IJsonModel<InternalCreateChatCompletionStreamResponseChoice>
10{
11// CUSTOM:
12// - Made FinishReason nullable.
13void IJsonModel<InternalCreateChatCompletionStreamResponseChoice>.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options)
14=> CustomSerializationHelpers.SerializeInstance(this, SerializeInternalCreateChatCompletionStreamResponseChoice, writer, options);
15
16internal static void SerializeInternalCreateChatCompletionStreamResponseChoice(InternalCreateChatCompletionStreamResponseChoice instance, Utf8JsonWriter writer, ModelReaderWriterOptions options)
17{
18writer.WriteStartObject();
19writer.WritePropertyName("delta"u8);
20writer.WriteObjectValue(instance.Delta, options);
21if (Optional.IsDefined(instance.Logprobs))
22{
23if (instance.Logprobs != null)
24{
25writer.WritePropertyName("logprobs"u8);
26writer.WriteObjectValue(instance.Logprobs, options);
27}
28else
29{
30writer.WriteNull("logprobs");
31}
32}
33if (Optional.IsDefined(instance.FinishReason))
34{
35if (instance.FinishReason != null)
36{
37writer.WritePropertyName("finish_reason"u8);
38writer.WriteStringValue(instance.FinishReason.Value.ToSerialString());
39}
40else
41{
42writer.WriteNull("finish_reason");
43}
44}
45writer.WritePropertyName("index"u8);
46writer.WriteNumberValue(instance.Index);
47writer.WriteSerializedAdditionalRawData(instance._serializedAdditionalRawData, options);
48writer.WriteEndObject();
49}
50
51internal static InternalCreateChatCompletionStreamResponseChoice DeserializeInternalCreateChatCompletionStreamResponseChoice(JsonElement element, ModelReaderWriterOptions options = null)
52{
53options ??= ModelSerializationExtensions.WireOptions;
54
55if (element.ValueKind == JsonValueKind.Null)
56{
57return null;
58}
59InternalChatCompletionStreamResponseDelta delta = default;
60InternalCreateChatCompletionStreamResponseChoiceLogprobs logprobs = default;
61ChatFinishReason? finishReason = default;
62int index = default;
63IDictionary<string, BinaryData> serializedAdditionalRawData = default;
64Dictionary<string, BinaryData> rawDataDictionary = new Dictionary<string, BinaryData>();
65foreach (var property in element.EnumerateObject())
66{
67if (property.NameEquals("delta"u8))
68{
69delta = InternalChatCompletionStreamResponseDelta.DeserializeInternalChatCompletionStreamResponseDelta(property.Value, options);
70continue;
71}
72if (property.NameEquals("logprobs"u8))
73{
74if (property.Value.ValueKind == JsonValueKind.Null)
75{
76logprobs = null;
77continue;
78}
79logprobs = InternalCreateChatCompletionStreamResponseChoiceLogprobs.DeserializeInternalCreateChatCompletionStreamResponseChoiceLogprobs(property.Value, options);
80continue;
81}
82if (property.NameEquals("finish_reason"u8))
83{
84if (property.Value.ValueKind == JsonValueKind.Null)
85{
86finishReason = null;
87continue;
88}
89finishReason = property.Value.GetString().ToChatFinishReason();
90continue;
91}
92if (property.NameEquals("index"u8))
93{
94index = property.Value.GetInt32();
95continue;
96}
97if (true)
98{
99rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText()));
100}
101}
102serializedAdditionalRawData = rawDataDictionary;
103return new InternalCreateChatCompletionStreamResponseChoice(delta, logprobs, finishReason, index, serializedAdditionalRawData);
104}
105}