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