diff --git a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Functions/AIFunctionFactory.cs b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Functions/AIFunctionFactory.cs index e864923883e..5ad178e7bc8 100644 --- a/src/Libraries/Microsoft.Extensions.AI.Abstractions/Functions/AIFunctionFactory.cs +++ b/src/Libraries/Microsoft.Extensions.AI.Abstractions/Functions/AIFunctionFactory.cs @@ -1058,8 +1058,7 @@ private record struct DescriptorKey( ( null # null literal | false # false literal | true # true literal - | \d # positive number - | -\d # negative number + | -?[0-9]# number | " # string | \[ # start array | { # start object diff --git a/test/Libraries/Microsoft.Extensions.AI.Tests/Functions/AIFunctionFactoryTest.cs b/test/Libraries/Microsoft.Extensions.AI.Tests/Functions/AIFunctionFactoryTest.cs index b15d200a39a..afced22038f 100644 --- a/test/Libraries/Microsoft.Extensions.AI.Tests/Functions/AIFunctionFactoryTest.cs +++ b/test/Libraries/Microsoft.Extensions.AI.Tests/Functions/AIFunctionFactoryTest.cs @@ -103,10 +103,13 @@ public async Task Parameters_ToleratesJsonEncodedParameters() [InlineData(" \"I am a string!\" ")] [InlineData(" {}")] [InlineData("[]")] + [InlineData("// single-line comment\r\nnull")] + [InlineData("/* multi-line\r\ncomment */\r\nnull")] public async Task Parameters_ToleratesJsonStringParameters(string jsonStringParam) { - AIFunction func = AIFunctionFactory.Create((JsonElement param) => param); - JsonElement expectedResult = JsonDocument.Parse(jsonStringParam).RootElement; + JsonSerializerOptions options = new(AIJsonUtilities.DefaultOptions) { ReadCommentHandling = JsonCommentHandling.Skip }; + AIFunction func = AIFunctionFactory.Create((JsonElement param) => param, serializerOptions: options); + JsonElement expectedResult = JsonDocument.Parse(jsonStringParam, new() { CommentHandling = JsonCommentHandling.Skip }).RootElement; var result = await func.InvokeAsync(new() {