in src/Custom/Embeddings/OpenAIEmbeddingCollection.Serialization.cs [38:86]
internal static OpenAIEmbeddingCollection DeserializeOpenAIEmbeddingCollection(JsonElement element, ModelReaderWriterOptions options = null)
{
options ??= new ModelReaderWriterOptions("W");
if (element.ValueKind == JsonValueKind.Null)
{
return null;
}
IReadOnlyList<OpenAIEmbedding> data = default;
string model = default;
InternalCreateEmbeddingResponseObject @object = default;
EmbeddingTokenUsage usage = default;
IDictionary<string, BinaryData> serializedAdditionalRawData = default;
Dictionary<string, BinaryData> rawDataDictionary = new Dictionary<string, BinaryData>();
foreach (var property in element.EnumerateObject())
{
if (property.NameEquals("data"u8))
{
List<OpenAIEmbedding> array = new List<OpenAIEmbedding>();
foreach (var item in property.Value.EnumerateArray())
{
array.Add(OpenAIEmbedding.DeserializeOpenAIEmbedding(item, options));
}
data = array;
continue;
}
if (property.NameEquals("model"u8))
{
model = property.Value.GetString();
continue;
}
if (property.NameEquals("object"u8))
{
@object = new InternalCreateEmbeddingResponseObject(property.Value.GetString());
continue;
}
if (property.NameEquals("usage"u8))
{
usage = EmbeddingTokenUsage.DeserializeEmbeddingTokenUsage(property.Value, options);
continue;
}
if (true)
{
rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText()));
}
}
serializedAdditionalRawData = rawDataDictionary;
return new OpenAIEmbeddingCollection(data, model, @object, usage, serializedAdditionalRawData);
}