116 references to AIJsonUtilities
Microsoft.Extensions.AI (12)
ChatCompletion\ChatClientStructuredOutputExtensions.cs (3)
54GetResponseAsync<T>(chatClient, messages, AIJsonUtilities.DefaultOptions, options, useJsonSchemaResponseFormat, cancellationToken); 164var schemaElement = AIJsonUtilities.CreateJsonSchema( 190}, AIJsonUtilities.DefaultOptions.GetTypeInfo(typeof(JsonObject)));
ChatCompletion\DistributedCachingChatClient.cs (2)
41private JsonSerializerOptions _jsonSerializerOptions = AIJsonUtilities.DefaultOptions; 128return AIJsonUtilities.HashDataToString([CacheVersion, messages, options, .. additionalValues], _jsonSerializerOptions);
ChatCompletion\LoggingChatClient.cs (1)
43_jsonSerializerOptions = AIJsonUtilities.DefaultOptions;
ChatCompletion\OpenTelemetryChatClient.cs (1)
90_jsonSerializerOptions = AIJsonUtilities.DefaultOptions;
Embeddings\DistributedCachingEmbeddingGenerator.cs (2)
39_jsonSerializerOptions = AIJsonUtilities.DefaultOptions; 91AIJsonUtilities.HashDataToString(values, _jsonSerializerOptions);
Embeddings\LoggingEmbeddingGenerator.cs (1)
45_jsonSerializerOptions = AIJsonUtilities.DefaultOptions;
LoggingHelpers.cs (1)
19AIJsonUtilities.DefaultOptions.TryGetTypeInfo(typeof(T), out typeInfo))
SpeechToText\LoggingSpeechToTextClient.cs (1)
46_jsonSerializerOptions = AIJsonUtilities.DefaultOptions;
Microsoft.Extensions.AI.Abstractions (23)
Functions\AIFunction.cs (2)
39public virtual JsonElement JsonSchema => AIJsonUtilities.DefaultJsonSchema; 57public virtual JsonSerializerOptions JsonSerializerOptions => AIJsonUtilities.DefaultOptions;
Functions\AIFunctionFactory.cs (13)
93/// or else using <see cref="AIJsonUtilities.DefaultOptions"/>. If the argument is anything else, it is round-tripped through JSON, serializing the object as JSON 104/// <see cref="AIFunctionFactoryOptions.SerializerOptions"/> if provided, or else using <see cref="AIJsonUtilities.DefaultOptions"/>. 167/// <see cref="AIJsonUtilities.DefaultOptions"/>. If the argument is anything else, it is round-tripped through JSON, serializing the object as JSON 178/// or else using <see cref="AIJsonUtilities.DefaultOptions"/>. 256/// or else using <see cref="AIJsonUtilities.DefaultOptions"/>. If the argument is anything else, it is round-tripped through JSON, serializing the object as JSON 267/// <see cref="AIFunctionFactoryOptions.SerializerOptions"/> if provided, or else using <see cref="AIJsonUtilities.DefaultOptions"/>. 340/// <see cref="AIJsonUtilities.DefaultOptions"/>. If the argument is anything else, it is round-tripped through JSON, serializing the object as JSON 351/// or else using <see cref="AIJsonUtilities.DefaultOptions"/>. 442/// or else using <see cref="AIJsonUtilities.DefaultOptions"/>. If the argument is anything else, it is round-tripped through JSON, serializing the object as JSON 453/// <see cref="AIFunctionFactoryOptions.SerializerOptions"/> if provided, or else using <see cref="AIJsonUtilities.DefaultOptions"/>. 612JsonSerializerOptions serializerOptions = options.SerializerOptions ?? AIJsonUtilities.DefaultOptions; 692ReturnJsonSchema = returnType is null ? null : AIJsonUtilities.CreateJsonSchema( 698JsonSchema = AIJsonUtilities.CreateFunctionJsonSchema(
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 (2)
14/// Provides options for configuring the behavior of <see cref="AIJsonUtilities"/> JSON schema creation functionality. 30/// <see cref="AIJsonUtilities.CreateFunctionJsonSchema"/> in order to determine whether it should
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)
12/// Provides options for configuring the behavior of <see cref="AIJsonUtilities"/> JSON schema transformation functionality.
Microsoft.Extensions.AI.Abstractions.Tests (54)
AssertExtensions.cs (3)
58options ??= AIJsonUtilities.DefaultOptions; 62JsonSerializer.SerializeToNode(expectedElement, AIJsonUtilities.DefaultOptions), 63JsonSerializer.SerializeToNode(actualElement, AIJsonUtilities.DefaultOptions)))
ChatCompletion\ChatResponseFormatTests.cs (1)
74ChatResponseFormat.ForJsonSchema(JsonSerializer.Deserialize<JsonElement>("[1,2,3]", AIJsonUtilities.DefaultOptions), "name", "description"),
Contents\AIContentTests.cs (2)
47string json = JsonSerializer.Serialize(original, AIJsonUtilities.DefaultOptions.GetTypeInfo(typeof(AIContent))); 50AIContent? deserialized = (AIContent?)JsonSerializer.Deserialize(json, AIJsonUtilities.DefaultOptions.GetTypeInfo(typeof(AIContent)));
Contents\ErrorContentTests.cs (1)
54JsonSerializerOptions options = new(AIJsonUtilities.DefaultOptions) { PropertyNamingPolicy = JsonNamingPolicy.CamelCase };
Contents\FunctionCallContentTests..cs (1)
265argumentParser: static json => JsonSerializer.Deserialize<Dictionary<string, object?>>(json, AIJsonUtilities.DefaultOptions));
Utilities\AIJsonUtilitiesTests.cs (46)
25var options = AIJsonUtilities.DefaultOptions; 29Assert.Same(options, AIJsonUtilities.DefaultOptions); 51var options = AIJsonUtilities.DefaultOptions; 61var options = AIJsonUtilities.DefaultOptions; 65Assert.Equal(JsonSerializer.IsReflectionEnabledByDefault, AIJsonUtilities.DefaultOptions.TryGetTypeInfo(anonType, out _)); 163JsonElement actual = AIJsonUtilities.CreateJsonSchema(typeof(MyPoco), serializerOptions: JsonContext.Default.Options); 206JsonElement actual = AIJsonUtilities.CreateJsonSchema( 256JsonElement actual = AIJsonUtilities.CreateJsonSchema(typeof(MyPoco), serializerOptions: JsonContext.Default.Options, inferenceOptions: inferenceOptions); 282JsonElement actual = AIJsonUtilities.CreateJsonSchema(typeof(PocoWithTypesWithOpenAIUnsupportedKeywords), serializerOptions: JsonContext.Default.Options); 302JsonSerializerOptions options = new(AIJsonUtilities.DefaultOptions); 307JsonElement resolvedSchema = AIJsonUtilities.CreateFunctionJsonSchema(func.UnderlyingMethod, title: string.Empty); 370JsonElement resolvedSchema = AIJsonUtilities.CreateFunctionJsonSchema(func.UnderlyingMethod, title: string.Empty, description: string.Empty, inferenceOptions: inferenceOptions); 377JsonSerializerOptions options = new(AIJsonUtilities.DefaultOptions) { NumberHandling = JsonNumberHandling.AllowReadingFromString }; 419JsonElement schema = AIJsonUtilities.CreateJsonSchema(typeof(object)); 438JsonElement schema = AIJsonUtilities.CreateJsonSchema(testData.Type, serializerOptions: options, inferenceOptions: createOptions); 462JsonElement schema = AIJsonUtilities.CreateJsonSchema(typeof(AIContent), serializerOptions: options); 466Assert.Same(options.TypeInfoResolver, AIJsonUtilities.DefaultOptions.TypeInfoResolver); 479JsonElement schema = AIJsonUtilities.CreateJsonSchema(typeof(MyEnumValue?), serializerOptions: JsonContext.Default.Options); 488TypeInfoResolver = JsonTypeInfoResolver.Combine(AIJsonUtilities.DefaultOptions.TypeInfoResolver, JsonContext.Default), 504Assert.Throws<InvalidOperationException>(() => AIJsonUtilities.DefaultOptions.AddAIContentType<DerivedAIContent>("derivativeContent")); 551TypeInfoResolver = AIJsonUtilities.DefaultOptions.TypeInfoResolver 554foreach (JsonSerializerOptions? options in new[] { AIJsonUtilities.DefaultOptions, null, customOptions }) 556string key1 = AIJsonUtilities.HashDataToString(["a", 'b', 42], options); 557string key2 = AIJsonUtilities.HashDataToString(["a", 'b', 42], options); 558string key3 = AIJsonUtilities.HashDataToString([TimeSpan.FromSeconds(1), null, 1.23], options); 559string key4 = AIJsonUtilities.HashDataToString([TimeSpan.FromSeconds(1), null, 1.23], options); 560string key5 = AIJsonUtilities.HashDataToString([new Dictionary<string, object> { ["key1"] = 1, ["key2"] = 2 }], options); 561string key6 = AIJsonUtilities.HashDataToString([new Dictionary<string, object> { ["key2"] = 2, ["key1"] = 1 }], options); 574JsonSerializerOptions indentOptions = new(AIJsonUtilities.DefaultOptions) { WriteIndented = true }; 575JsonSerializerOptions noIndentOptions = new(AIJsonUtilities.DefaultOptions) { WriteIndented = false }; 578string key1 = AIJsonUtilities.HashDataToString([dict], indentOptions); 579string key2 = AIJsonUtilities.HashDataToString([dict], noIndentOptions); 590JsonElement schema = AIJsonUtilities.CreateFunctionJsonSchema(method.Method, inferenceOptions: new() 639JsonElement transformedSchema = AIJsonUtilities.TransformSchema(schema, options); 673JsonElement transformedSchema = AIJsonUtilities.TransformSchema(schema, options); 708JsonElement transformedSchema = AIJsonUtilities.TransformSchema(schema, options); 745JsonElement transformedSchema = AIJsonUtilities.TransformSchema(schema, options); 772JsonElement transformedSchema = AIJsonUtilities.TransformSchema(schema, options); 791JsonElement schema = AIJsonUtilities.CreateJsonSchema(testData.Type, serializerOptions: options, inferenceOptions: createOptions); 809JsonElement transformedSchema = AIJsonUtilities.TransformSchema(schema, transformOptions); 836AIJsonUtilities.TransformSchema(transformedSchema, transformOptions); 844Assert.Throws<ArgumentNullException>(() => AIJsonUtilities.TransformSchema(schema, transformOptions: null!)); 845Assert.Throws<ArgumentException>(() => AIJsonUtilities.TransformSchema(schema, transformOptions: new())); 858Assert.Throws<ArgumentException>(() => AIJsonUtilities.TransformSchema(schema, transformOptions)); 878JsonSerializer.SerializeToNode(element1, AIJsonUtilities.DefaultOptions), 879JsonSerializer.SerializeToNode(element2, AIJsonUtilities.DefaultOptions));
Microsoft.Extensions.AI.AzureAIInference (7)
AzureAIInferenceChatClient.cs (5)
329result.AdditionalProperties["top_k"] = new BinaryData(JsonSerializer.SerializeToUtf8Bytes(topK, AIJsonUtilities.DefaultOptions.GetTypeInfo(typeof(int)))); 336byte[] data = JsonSerializer.SerializeToUtf8Bytes(prop.Value, AIJsonUtilities.DefaultOptions.GetTypeInfo(typeof(object))); 451result = JsonSerializer.Serialize(resultContent.Result, AIJsonUtilities.DefaultOptions.GetTypeInfo(typeof(object))); 494JsonSerializer.Serialize(callRequest.Arguments, AIJsonUtilities.DefaultOptions.GetTypeInfo(typeof(IDictionary<string, object>)))))); 555(JsonTypeInfo<IDictionary<string, object>>)AIJsonUtilities.DefaultOptions.GetTypeInfo(typeof(IDictionary<string, object>)))!);
AzureAIInferenceEmbeddingGenerator.cs (1)
191byte[] data = JsonSerializer.SerializeToUtf8Bytes(prop.Value, AIJsonUtilities.DefaultOptions.GetTypeInfo(typeof(object)));
AzureAIInferenceImageEmbeddingGenerator.cs (1)
145byte[] data = JsonSerializer.SerializeToUtf8Bytes(prop.Value, AIJsonUtilities.DefaultOptions.GetTypeInfo(typeof(object)));
Microsoft.Extensions.AI.AzureAIInference.Tests (3)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (3)
58options ??= AIJsonUtilities.DefaultOptions; 62JsonSerializer.SerializeToNode(expectedElement, AIJsonUtilities.DefaultOptions), 63JsonSerializer.SerializeToNode(actualElement, AIJsonUtilities.DefaultOptions)))
Microsoft.Extensions.AI.Evaluation.Reporting (1)
JsonSerialization\JsonUtilities.cs (1)
44options.TypeInfoResolverChain.Add(AIJsonUtilities.DefaultOptions.TypeInfoResolver!);
Microsoft.Extensions.AI.Evaluation.Reporting.Azure (1)
JsonSerialization\AzureStorageJsonUtilities.cs (1)
41options.TypeInfoResolverChain.Add(AIJsonUtilities.DefaultOptions.TypeInfoResolver!);
Microsoft.Extensions.AI.Ollama (1)
OllamaChatClient.cs (1)
43private JsonSerializerOptions _toolCallJsonSerializerOptions = AIJsonUtilities.DefaultOptions;
Microsoft.Extensions.AI.Ollama.Tests (4)
OllamaChatClientTests.cs (1)
35Assert.Same(client.ToolCallJsonSerializerOptions, AIJsonUtilities.DefaultOptions);
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (3)
58options ??= AIJsonUtilities.DefaultOptions; 62JsonSerializer.SerializeToNode(expectedElement, AIJsonUtilities.DefaultOptions), 63JsonSerializer.SerializeToNode(actualElement, AIJsonUtilities.DefaultOptions)))
Microsoft.Extensions.AI.OpenAI (4)
OpenAIChatClient.cs (2)
86var openAIChatMessages = ToOpenAIChatMessages(messages, AIJsonUtilities.DefaultOptions); 101var openAIChatMessages = ToOpenAIChatMessages(messages, AIJsonUtilities.DefaultOptions);
OpenAIResponseChatClient.cs (2)
456result = JsonSerializer.Serialize(resultContent.Result, AIJsonUtilities.DefaultOptions.GetTypeInfo(typeof(object))); 488AIJsonUtilities.DefaultOptions.GetTypeInfo(typeof(IDictionary<string, object?>)))));
Microsoft.Extensions.AI.OpenAI.Tests (3)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (3)
58options ??= AIJsonUtilities.DefaultOptions; 62JsonSerializer.SerializeToNode(expectedElement, AIJsonUtilities.DefaultOptions), 63JsonSerializer.SerializeToNode(actualElement, AIJsonUtilities.DefaultOptions)))
Microsoft.Extensions.AI.Tests (3)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (3)
58options ??= AIJsonUtilities.DefaultOptions; 62JsonSerializer.SerializeToNode(expectedElement, AIJsonUtilities.DefaultOptions), 63JsonSerializer.SerializeToNode(actualElement, AIJsonUtilities.DefaultOptions)))