167 references to AIJsonUtilities
Microsoft.Extensions.AI (13)
ChatCompletion\ChatClientStructuredOutputExtensions.cs (2)
41
GetResponseAsync<T>(chatClient, messages,
AIJsonUtilities
.DefaultOptions, options, useJsonSchemaResponseFormat, cancellationToken);
169
},
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(JsonObject)));
ChatCompletion\DistributedCachingChatClient.cs (2)
61
} =
AIJsonUtilities
.DefaultOptions;
151
return
AIJsonUtilities
.HashDataToString(arr.AsSpan(0, length), JsonSerializerOptions);
ChatCompletion\LoggingChatClient.cs (1)
43
_jsonSerializerOptions =
AIJsonUtilities
.DefaultOptions;
ChatCompletion\OpenTelemetryChatClient.cs (2)
86
_jsonSerializerOptions =
AIJsonUtilities
.DefaultOptions;
707
options.TypeInfoResolverChain.Add(
AIJsonUtilities
.DefaultOptions.TypeInfoResolver!);
Embeddings\DistributedCachingEmbeddingGenerator.cs (2)
52
_jsonSerializerOptions =
AIJsonUtilities
.DefaultOptions;
125
return
AIJsonUtilities
.HashDataToString(arr.AsSpan(0, length), _jsonSerializerOptions);
Embeddings\LoggingEmbeddingGenerator.cs (1)
45
_jsonSerializerOptions =
AIJsonUtilities
.DefaultOptions;
Image\LoggingImageGenerator.cs (1)
45
_jsonSerializerOptions =
AIJsonUtilities
.DefaultOptions;
SpeechToText\LoggingSpeechToTextClient.cs (1)
46
_jsonSerializerOptions =
AIJsonUtilities
.DefaultOptions;
TelemetryHelpers.cs (1)
22
AIJsonUtilities
.DefaultOptions.TryGetTypeInfo(typeof(T), out typeInfo))
Microsoft.Extensions.AI.Abstractions (30)
ChatCompletion\ChatResponseFormat.cs (2)
84
var schema =
AIJsonUtilities
.CreateJsonSchema(
86
serializerOptions: serializerOptions ??
AIJsonUtilities
.DefaultOptions,
Functions\AIFunction.cs (1)
28
public virtual JsonSerializerOptions JsonSerializerOptions =>
AIJsonUtilities
.DefaultOptions;
Functions\AIFunctionDeclaration.cs (1)
46
public virtual JsonElement JsonSchema =>
AIJsonUtilities
.DefaultJsonSchema;
Functions\AIFunctionFactory.cs (17)
90
/// or else using <see cref="
AIJsonUtilities
.DefaultOptions"/>. If the argument is anything else, it is round-tripped through JSON, serializing the object as JSON
101
/// <see cref="AIFunctionFactoryOptions.SerializerOptions"/> if provided, or else using <see cref="
AIJsonUtilities
.DefaultOptions"/>.
169
/// <see cref="
AIJsonUtilities
.DefaultOptions"/>. If the argument is anything else, it is round-tripped through JSON, serializing the object as JSON
180
/// or else using <see cref="
AIJsonUtilities
.DefaultOptions"/>. However, return values whose declared type is <see cref="AIContent"/>, a
260
/// or else using <see cref="
AIJsonUtilities
.DefaultOptions"/>. If the argument is anything else, it is round-tripped through JSON, serializing the object as JSON
271
/// <see cref="AIFunctionFactoryOptions.SerializerOptions"/> if provided, or else using <see cref="
AIJsonUtilities
.DefaultOptions"/>.
346
/// <see cref="
AIJsonUtilities
.DefaultOptions"/>. If the argument is anything else, it is round-tripped through JSON, serializing the object as JSON
357
/// or else using <see cref="
AIJsonUtilities
.DefaultOptions"/>. However, return values whose declared type is <see cref="AIContent"/>, a
450
/// or else using <see cref="
AIJsonUtilities
.DefaultOptions"/>. If the argument is anything else, it is round-tripped through JSON, serializing the object as JSON
461
/// <see cref="AIFunctionFactoryOptions.SerializerOptions"/> if provided, or else using <see cref="
AIJsonUtilities
.DefaultOptions"/>.
655
JsonSerializerOptions serializerOptions = options.SerializerOptions ??
AIJsonUtilities
.DefaultOptions;
735
ReturnJsonSchema = returnType is null || key.ExcludeResultSchema ? null :
AIJsonUtilities
.CreateJsonSchema(
741
JsonSchema =
AIJsonUtilities
.CreateFunctionJsonSchema(
847
bool hasDefault =
AIJsonUtilities
.TryGetEffectiveDefaultValue(parameter, out _);
863
bool hasDefaultValue =
AIJsonUtilities
.TryGetEffectiveDefaultValue(parameter, out object? effectiveDefaultValue);
1128
options ??=
AIJsonUtilities
.DefaultOptions;
1130
if (options ==
AIJsonUtilities
.DefaultOptions && !options.TryGetTypeInfo(type, out _))
Functions\AIFunctionFactoryOptions.cs (1)
28
/// If no value has been specified, the <see cref="
AIJsonUtilities
.DefaultOptions"/> instance will be used.
Utilities\AIJsonSchemaCreateContext.cs (1)
19
/// callback by the <see cref="
AIJsonUtilities
.CreateJsonSchema"/> method and cannot be instantiated directly.
Utilities\AIJsonSchemaCreateOptions.cs (3)
13
/// Provides options for configuring the behavior of <see cref="
AIJsonUtilities
"/> JSON schema creation functionality.
29
/// <see cref="
AIJsonUtilities
.CreateFunctionJsonSchema"/> in order to determine whether it should
41
/// <see cref="
AIJsonUtilities
.CreateFunctionJsonSchema"/> to obtain a description for the parameter.
Utilities\AIJsonSchemaTransformCache.cs (2)
46
_functionSchemaCreateValueCallback = function =>
AIJsonUtilities
.TransformSchema(function.JsonSchema, TransformOptions);
47
_responseFormatCreateValueCallback = responseFormat =>
AIJsonUtilities
.TransformSchema(responseFormat.Schema!.Value, TransformOptions);
Utilities\AIJsonSchemaTransformContext.cs (1)
15
/// callback by the <see cref="
AIJsonUtilities
.CreateJsonSchema"/> method and cannot be instantiated directly.
Utilities\AIJsonSchemaTransformOptions.cs (1)
10
/// Provides options for configuring the behavior of <see cref="
AIJsonUtilities
"/> JSON schema transformation functionality.
Microsoft.Extensions.AI.Abstractions.Tests (99)
AssertExtensions.cs (3)
100
JsonSerializer.SerializeToNode(expectedJson,
AIJsonUtilities
.DefaultOptions),
101
JsonSerializer.SerializeToNode(actualJson,
AIJsonUtilities
.DefaultOptions)))
113
options ??=
AIJsonUtilities
.DefaultOptions;
ChatCompletion\ChatResponseFormatTests.cs (1)
167
JsonSerializer.Serialize(format.Schema,
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(JsonElement))));
Contents\AIAnnotationTests.cs (2)
52
string json = JsonSerializer.Serialize(original,
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(AIAnnotation)));
55
var deserialized = (AIAnnotation?)JsonSerializer.Deserialize(json,
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(AIAnnotation)));
Contents\AIContentTests.cs (4)
48
string json = JsonSerializer.Serialize(original,
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(AIContent)));
51
AIContent? deserialized = (AIContent?)JsonSerializer.Deserialize(json,
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(AIContent)));
81
var serialized = JsonSerializer.Serialize(message,
AIJsonUtilities
.DefaultOptions);
82
ChatMessage? deserialized = JsonSerializer.Deserialize<ChatMessage>(serialized,
AIJsonUtilities
.DefaultOptions);
Contents\CitationAnnotationTests.cs (2)
78
string json = JsonSerializer.Serialize(original,
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(CitationAnnotation)));
81
var deserialized = (CitationAnnotation?)JsonSerializer.Deserialize(json,
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(CitationAnnotation)));
Contents\CodeInterpreterToolCallContentTests.cs (2)
81
var json = JsonSerializer.Serialize(content,
AIJsonUtilities
.DefaultOptions);
82
var deserializedSut = JsonSerializer.Deserialize<CodeInterpreterToolCallContent>(json,
AIJsonUtilities
.DefaultOptions);
Contents\CodeInterpreterToolResultContentTests.cs (2)
83
var json = JsonSerializer.Serialize(content,
AIJsonUtilities
.DefaultOptions);
84
var deserializedSut = JsonSerializer.Deserialize<CodeInterpreterToolResultContent>(json,
AIJsonUtilities
.DefaultOptions);
Contents\ErrorContentTests.cs (1)
54
JsonSerializerOptions options = new(
AIJsonUtilities
.DefaultOptions) { PropertyNamingPolicy = JsonNamingPolicy.CamelCase };
Contents\FunctionApprovalRequestContentTests.cs (2)
62
var json = JsonSerializer.Serialize(content,
AIJsonUtilities
.DefaultOptions);
63
var deserializedContent = JsonSerializer.Deserialize<FunctionApprovalRequestContent>(json,
AIJsonUtilities
.DefaultOptions);
Contents\FunctionApprovalResponseContentTests.cs (2)
43
var json = JsonSerializer.Serialize(content,
AIJsonUtilities
.DefaultOptions);
44
var deserializedContent = JsonSerializer.Deserialize<FunctionApprovalResponseContent>(json,
AIJsonUtilities
.DefaultOptions);
Contents\FunctionCallContentTests.cs (1)
265
argumentParser: static json => JsonSerializer.Deserialize<Dictionary<string, object?>>(json,
AIJsonUtilities
.DefaultOptions));
Contents\HostedFileContentTests.cs (2)
59
var json = JsonSerializer.Serialize(content,
AIJsonUtilities
.DefaultOptions);
60
var deserializedContent = JsonSerializer.Deserialize<HostedFileContent>(json,
AIJsonUtilities
.DefaultOptions);
Contents\HostedVectorStoreContentTests.cs (2)
59
var json = JsonSerializer.Serialize(content,
AIJsonUtilities
.DefaultOptions);
60
var deserializedContent = JsonSerializer.Deserialize<HostedVectorStoreContent>(json,
AIJsonUtilities
.DefaultOptions);
Contents\McpServerToolResultContentTests.cs (2)
61
var json = JsonSerializer.Serialize(content,
AIJsonUtilities
.DefaultOptions);
62
var deserializedContent = JsonSerializer.Deserialize<McpServerToolResultContent>(json,
AIJsonUtilities
.DefaultOptions);
Contents\TextContentTests.cs (2)
57
var json = JsonSerializer.Serialize(content,
AIJsonUtilities
.DefaultOptions);
58
var deserializedContent = JsonSerializer.Deserialize<TextContent>(json,
AIJsonUtilities
.DefaultOptions);
Contents\TextReasoningContentTests.cs (2)
64
var json = JsonSerializer.Serialize(content,
AIJsonUtilities
.DefaultOptions);
65
var deserializedContent = JsonSerializer.Deserialize<TextReasoningContent>(json,
AIJsonUtilities
.DefaultOptions);
Contents\UsageContentTests.cs (2)
74
var json = JsonSerializer.Serialize(content,
AIJsonUtilities
.DefaultOptions);
75
var deserializedContent = JsonSerializer.Deserialize<UsageContent>(json,
AIJsonUtilities
.DefaultOptions);
Contents\UserInputRequestContentTests.cs (2)
37
var serializedContent = JsonSerializer.Serialize(content,
AIJsonUtilities
.DefaultOptions);
38
var deserializedContent = JsonSerializer.Deserialize<UserInputRequestContent>(serializedContent,
AIJsonUtilities
.DefaultOptions);
Contents\UserInputResponseContentTests.cs (2)
35
var serializedContent = JsonSerializer.Serialize(content,
AIJsonUtilities
.DefaultOptions);
36
var deserializedContent = JsonSerializer.Deserialize<UserInputResponseContent>(serializedContent,
AIJsonUtilities
.DefaultOptions);
UsageDetailsTests.cs (4)
158
string json = JsonSerializer.Serialize(details,
AIJsonUtilities
.DefaultOptions);
159
UsageDetails? deserialized = JsonSerializer.Deserialize<UsageDetails>(json,
AIJsonUtilities
.DefaultOptions);
180
string json = JsonSerializer.Serialize(details,
AIJsonUtilities
.DefaultOptions);
181
UsageDetails? deserialized = JsonSerializer.Deserialize<UsageDetails>(json,
AIJsonUtilities
.DefaultOptions);
Utilities\AIJsonUtilitiesTests.cs (57)
30
var options =
AIJsonUtilities
.DefaultOptions;
34
Assert.Same(options,
AIJsonUtilities
.DefaultOptions);
56
var options =
AIJsonUtilities
.DefaultOptions;
66
var options =
AIJsonUtilities
.DefaultOptions;
70
Assert.Equal(JsonSerializer.IsReflectionEnabledByDefault,
AIJsonUtilities
.DefaultOptions.TryGetTypeInfo(anonType, out _));
174
JsonElement actual =
AIJsonUtilities
.CreateJsonSchema(typeof(MyPoco), serializerOptions: JsonContext.Default.Options);
189
JsonElement actual =
AIJsonUtilities
.CreateJsonSchema(typeof(object[]), serializerOptions: JsonContext.Default.Options);
232
JsonElement actual =
AIJsonUtilities
.CreateJsonSchema(
282
JsonElement actual =
AIJsonUtilities
.CreateJsonSchema(typeof(MyPoco), serializerOptions: JsonContext.Default.Options, inferenceOptions: inferenceOptions);
290
JsonSerializerOptions options = new(
AIJsonUtilities
.DefaultOptions);
295
JsonElement resolvedSchema =
AIJsonUtilities
.CreateFunctionJsonSchema(func.UnderlyingMethod, title: string.Empty);
358
JsonElement resolvedSchema =
AIJsonUtilities
.CreateFunctionJsonSchema(func.UnderlyingMethod, title: string.Empty, description: string.Empty, inferenceOptions: inferenceOptions);
365
JsonSerializerOptions options = new(
AIJsonUtilities
.DefaultOptions) { NumberHandling = JsonNumberHandling.AllowReadingFromString };
413
JsonSerializerOptions options = new(
AIJsonUtilities
.DefaultOptions) { NumberHandling = JsonNumberHandling.AllowReadingFromString };
441
JsonElement schema =
AIJsonUtilities
.CreateFunctionJsonSchema(method);
460
JsonElement schema =
AIJsonUtilities
.CreateFunctionJsonSchema(method, title: "override_title");
470
JsonElement schema =
AIJsonUtilities
.CreateJsonSchema(typeof(object));
489
JsonElement schema =
AIJsonUtilities
.CreateJsonSchema(testData.Type, serializerOptions: options, inferenceOptions: createOptions);
514
JsonElement schema =
AIJsonUtilities
.CreateJsonSchema(typeof(AIContent), serializerOptions: options);
518
Assert.Same(options.TypeInfoResolver,
AIJsonUtilities
.DefaultOptions.TypeInfoResolver);
531
JsonElement schema =
AIJsonUtilities
.CreateJsonSchema(typeof(MyEnumValue?), serializerOptions: JsonContext.Default.Options);
766
AIJsonUtilities
.CreateJsonSchema(typeof(CreateJsonSchema_IncorporatesTypesAndAnnotations_Type), serializerOptions: JsonContext.Default.Options));
925
AIJsonUtilities
.CreateJsonSchema(typeof(CreateJsonSchema_IncorporatesTypesAndAnnotations_Type), serializerOptions: JsonContext.Default.Options));
1032
JsonElement actualSchema =
AIJsonUtilities
.CreateJsonSchema(typeof(ClassWithNullableMaxLengthProperty), serializerOptions: JsonContext.Default.Options);
1048
TypeInfoResolver = JsonTypeInfoResolver.Combine(
AIJsonUtilities
.DefaultOptions.TypeInfoResolver, JsonContext.Default),
1065
Assert.Throws<InvalidOperationException>(() =>
AIJsonUtilities
.DefaultOptions.AddAIContentType<DerivedAIContent>("derivativeContent"));
1090
TypeInfoResolver = JsonTypeInfoResolver.Combine(
AIJsonUtilities
.DefaultOptions.TypeInfoResolver, JsonContext.Default),
1115
TypeInfoResolver =
AIJsonUtilities
.DefaultOptions.TypeInfoResolver
1118
foreach (JsonSerializerOptions? options in new[] {
AIJsonUtilities
.DefaultOptions, null, customOptions })
1120
string key1 =
AIJsonUtilities
.HashDataToString(["a", 'b', 42], options);
1121
string key2 =
AIJsonUtilities
.HashDataToString(["a", 'b', 42], options);
1122
string key3 =
AIJsonUtilities
.HashDataToString([TimeSpan.FromSeconds(1), null, 1.23], options);
1123
string key4 =
AIJsonUtilities
.HashDataToString([TimeSpan.FromSeconds(1), null, 1.23], options);
1124
string key5 =
AIJsonUtilities
.HashDataToString([new Dictionary<string, object> { ["key1"] = 1, ["key2"] = 2 }], options);
1125
string key6 =
AIJsonUtilities
.HashDataToString([new Dictionary<string, object> { ["key2"] = 2, ["key1"] = 1 }], options);
1138
JsonSerializerOptions indentOptions = new(
AIJsonUtilities
.DefaultOptions) { WriteIndented = true };
1139
JsonSerializerOptions noIndentOptions = new(
AIJsonUtilities
.DefaultOptions) { WriteIndented = false };
1142
string key1 =
AIJsonUtilities
.HashDataToString([dict], indentOptions);
1143
string key2 =
AIJsonUtilities
.HashDataToString([dict], noIndentOptions);
1154
JsonElement schema =
AIJsonUtilities
.CreateFunctionJsonSchema(method.Method, inferenceOptions: new()
1182
JsonElement schema =
AIJsonUtilities
.CreateFunctionJsonSchema(method.Method, inferenceOptions: new()
1199
JsonElement schema =
AIJsonUtilities
.CreateFunctionJsonSchema(method.Method, inferenceOptions: new()
1223
JsonElement schema =
AIJsonUtilities
.CreateFunctionJsonSchema(method.Method, inferenceOptions: new()
1242
JsonElement schema =
AIJsonUtilities
.CreateFunctionJsonSchema(method.Method, inferenceOptions: new()
1260
JsonElement schema =
AIJsonUtilities
.CreateFunctionJsonSchema(method.Method, inferenceOptions: new()
1305
JsonElement transformedSchema =
AIJsonUtilities
.TransformSchema(schema, options);
1339
JsonElement transformedSchema =
AIJsonUtilities
.TransformSchema(schema, options);
1374
JsonElement transformedSchema =
AIJsonUtilities
.TransformSchema(schema, options);
1411
JsonElement transformedSchema =
AIJsonUtilities
.TransformSchema(schema, options);
1438
JsonElement transformedSchema =
AIJsonUtilities
.TransformSchema(schema, options);
1457
JsonElement schema =
AIJsonUtilities
.CreateJsonSchema(testData.Type, serializerOptions: options, inferenceOptions: createOptions);
1475
JsonElement transformedSchema =
AIJsonUtilities
.TransformSchema(schema, transformOptions);
1502
AIJsonUtilities
.TransformSchema(transformedSchema, transformOptions);
1510
Assert.Throws<ArgumentNullException>("transformOptions", () =>
AIJsonUtilities
.TransformSchema(schema, transformOptions: null!));
1511
Assert.Throws<ArgumentException>("transformOptions", () =>
AIJsonUtilities
.TransformSchema(schema, transformOptions: new()));
1524
Assert.Throws<ArgumentException>("schema", () =>
AIJsonUtilities
.TransformSchema(schema, transformOptions));
1538
JsonElement result =
AIJsonUtilities
.TransformSchema(schema, transformOptions);
Microsoft.Extensions.AI.Evaluation.Quality (2)
ChatMessageExtensions.cs (1)
24
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(ChatMessage)));
ChatResponseExtensions.cs (1)
39
AIJsonUtilities
.DefaultOptions.GetTypeInfo(contentType));
Microsoft.Extensions.AI.Evaluation.Reporting (1)
JsonSerialization\JsonUtilities.cs (1)
38
options.TypeInfoResolverChain.Add(
AIJsonUtilities
.DefaultOptions.TypeInfoResolver!);
Microsoft.Extensions.AI.Evaluation.Reporting.Azure (1)
JsonSerialization\AzureStorageJsonUtilities.cs (1)
35
options.TypeInfoResolverChain.Add(
AIJsonUtilities
.DefaultOptions.TypeInfoResolver!);
Microsoft.Extensions.AI.OpenAI (8)
MicrosoftExtensionsAIChatExtensions.cs (2)
71
new BinaryData(JsonSerializer.SerializeToUtf8Bytes(c.Arguments,
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(IDictionary<string, object?>))))));
155
functionArgumentsUpdate: new(JsonSerializer.SerializeToUtf8Bytes(fcc.Arguments,
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(IDictionary<string, object?>))))))
OpenAIChatClient.cs (2)
175
result = JsonSerializer.Serialize(resultContent.Result,
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(object)));
203
fc.Arguments,
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(IDictionary<string, object?>))))));
OpenAIImageGenerator.cs (1)
140
var stringJsonTypeInfo = (JsonTypeInfo<string>)
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(string));
OpenAIResponsesChatClient.cs (3)
983
Text = JsonSerializer.Serialize(content,
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(object))),
1019
result = JsonSerializer.Serialize(resultContent.Result,
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(object)));
1068
AIJsonUtilities
.DefaultOptions.GetTypeInfo(typeof(IDictionary<string, object?>)))));
Microsoft.Extensions.AI.OpenAI.Tests (3)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (3)
100
JsonSerializer.SerializeToNode(expectedJson,
AIJsonUtilities
.DefaultOptions),
101
JsonSerializer.SerializeToNode(actualJson,
AIJsonUtilities
.DefaultOptions)))
113
options ??=
AIJsonUtilities
.DefaultOptions;
Microsoft.Extensions.AI.Tests (10)
ChatCompletion\FunctionInvokingChatClientTests.cs (3)
347
JsonSerializer.SerializeToElement($"{e.GetString()} from delegate",
AIJsonUtilities
.DefaultOptions) :
711
JsonSerializer.Serialize(new Dictionary<string, object?> { ["arg1"] = "value1" },
AIJsonUtilities
.DefaultOptions),
715
Assert.Equal("Result 1", JsonSerializer.Deserialize<string>(result.Value!,
AIJsonUtilities
.DefaultOptions));
Embeddings\DistributedCachingEmbeddingGeneratorTest.cs (1)
31
Assert.Same(
AIJsonUtilities
.DefaultOptions, generator.JsonSerializerOptions);
Functions\AIFunctionFactoryTest.cs (3)
157
JsonSerializerOptions options = new(
AIJsonUtilities
.DefaultOptions) { ReadCommentHandling = JsonCommentHandling.Skip };
1073
JsonElement schema =
AIJsonUtilities
.CreateJsonSchema(typeof(int), serializerOptions:
AIJsonUtilities
.DefaultOptions);
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (3)
100
JsonSerializer.SerializeToNode(expectedJson,
AIJsonUtilities
.DefaultOptions),
101
JsonSerializer.SerializeToNode(actualJson,
AIJsonUtilities
.DefaultOptions)))
113
options ??=
AIJsonUtilities
.DefaultOptions;