1 type derived from FunctionResultContent
Microsoft.Extensions.AI.Tests (1)
192 instantiations of FunctionResultContent
Microsoft.AspNetCore.Components.AI (1)
Microsoft.Extensions.AI (3)
Microsoft.Extensions.AI.Abstractions.Tests (12)
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (1)
Microsoft.Extensions.AI.OpenAI (4)
Microsoft.Extensions.AI.OpenAI.Tests (17)
OpenAIResponseClientTests.cs (12)
1867: new FunctionResultContent("call-1", "tool result");
4929new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call_123", new TextContent("Result text"))])
4986new FunctionResultContent("call_456", new List<AIContent>
5048new FunctionResultContent("call_789", new DataContent(imageData, "image/png"))
5105new FunctionResultContent("call_uri", new UriContent(new Uri("https://example.com/image.png"), "image/png"))
5162new FunctionResultContent("call_file", new HostedFileContent("file-abc123") { MediaType = "image/png", Name = "result.png" })
5221new FunctionResultContent("call_mixed", new List<AIContent>
5284new FunctionResultContent("call_pdf", new DataContent(pdfData, "application/pdf") { Name = "report.pdf" })
5339new FunctionResultContent("call_obj", new { name = "John", age = 30 })
5394new FunctionResultContent("call_string", "Simple string result")
5451new FunctionResultContent("call_file_uri", new UriContent(new Uri("https://example.com/document.pdf"), "application/pdf"))
5508new FunctionResultContent("call_hosted_file", new HostedFileContent("file-xyz789") { MediaType = "text/plain", Name = "document.txt" })
Microsoft.Extensions.AI.Tests (154)
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (74)
273new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
284new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
326new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
337new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
384new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
396new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
438new FunctionResultContent("callId1", result: "Tool call invocation was rejected by the approver and must not be retried."),
439new FunctionResultContent("callId2", result: "Tool call invocation was rejected by the approver and must not be retried.")
453new FunctionResultContent("callId1", result: "Tool call invocation was rejected by the approver and must not be retried."),
454new FunctionResultContent("callId2", result: "Tool call invocation was rejected by the approver and must not be retried.")
495new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Tool call invocation was rejected by the approver and must not be retried.")]),
496new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
507new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Tool call invocation was rejected by the approver and must not be retried.")]),
508new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
517new FunctionResultContent("callId1", result: "Tool call invocation was rejected by the approver and must not be retried."),
518new FunctionResultContent("callId2", result: "Result 2: 42")
567new FunctionResultContent("callId1", result: "Tool call invocation was rejected by the approver and must not be retried. User denied permission for this operation"),
568new FunctionResultContent("callId2", result: "Tool call invocation was rejected by the approver and must not be retried. Function Func2 is not allowed at this time")
582new FunctionResultContent("callId1", result: "Tool call invocation was rejected by the approver and must not be retried. User denied permission for this operation"),
583new FunctionResultContent("callId2", result: "Tool call invocation was rejected by the approver and must not be retried. Function Func2 is not allowed at this time")
634new FunctionResultContent("callId1", result: "Tool call invocation was rejected by the approver and must not be retried. Custom rejection for Func1"),
635new FunctionResultContent("callId2", result: "Tool call invocation was rejected by the approver and must not be retried.")
637new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 3: test")]),
655new FunctionResultContent("callId1", result: "Tool call invocation was rejected by the approver and must not be retried. Custom rejection for Func1"),
656new FunctionResultContent("callId2", result: "Tool call invocation was rejected by the approver and must not be retried.")
658new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 3: test")]),
672new FunctionResultContent("callId1", result: "Tool call invocation was rejected by the approver and must not be retried. Custom rejection for Func1"),
673new FunctionResultContent("callId2", result: "Tool call invocation was rejected by the approver and must not be retried."),
674new FunctionResultContent("callId3", result: "Result 3: test")
720new FunctionResultContent("callId1", result: "Tool call invocation was rejected by the approver and must not be retried.")
734new FunctionResultContent("callId1", result: "Tool call invocation was rejected by the approver and must not be retried.")
775new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
786new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
824new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
839new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
841new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 1")]),
852new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 1")]),
1041new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")])
1060new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
1125new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
1136new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
1169new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
1180new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
1217new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1229new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1265new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1277new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1319new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1331new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1370new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1382new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1426new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1483new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Error: Function failed.")]),
1762new ChatMessage(ChatRole.Tool, [new FunctionResultContent("function-call-id", result: "Result 1")]),
1862new FunctionResultContent("callId1", result: "Result 1")
1886new FunctionResultContent("callId1", result: "Result 1")
1946new FunctionResultContent("callId1", result: "Result 1") :
1947new FunctionResultContent("callId1", result: "Tool call invocation was rejected by the approver and must not be retried.")
1973new FunctionResultContent("callId1", result: "Result 1") :
1974new FunctionResultContent("callId1", result: "Tool call invocation was rejected by the approver and must not be retried.")
ChatCompletion\FunctionInvokingChatClientTests.cs (62)
95new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
97new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
99new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]),
129new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
131new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
133new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]),
162new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
164new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
166new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]),
200new FunctionResultContent("callId1", result: "Result 1"),
201new FunctionResultContent("callId2", result: "Result 2: 34"),
202new FunctionResultContent("callId3", result: "Result 2: 56"),
211new FunctionResultContent("callId4", result: "Result 2: 78"),
212new FunctionResultContent("callId5", result: "Result 1")
259new FunctionResultContent("callId1", result: "hellohello"),
260new FunctionResultContent("callId2", result: "worldworld"),
303new FunctionResultContent("callId1", result: "hellohello"),
304new FunctionResultContent("callId2", result: "worldworld"),
331new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1 from delegate")]),
333new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42 from delegate")]),
335new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]),
406returnedFrc = new FunctionResultContent(ctx.CallContent.CallId, "Custom result from function")
488returnedFrc = new FunctionResultContent("differentCallId", "Result from function");
644plan.Add(new ChatMessage(ChatRole.Tool, [new FunctionResultContent($"callId{i}", result: "Success: Function completed.")]));
962toolMessage.Contents.Add(new FunctionResultContent(callId, result: callShouldThrow ? "Error: Function failed." : "Success"));
985new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 1")]),
987new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]),
989new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]),
1022new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: detailedErrors ? "Error: Function failed. Exception: Oh no!" : "Error: Function failed.")]),
1044new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1101new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1295new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 41")]),
1297new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 42")]),
1305new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 43")]),
1413new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Error: Function failed.")]),
1455new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Error: Function failed.")]),
1494new FunctionResultContent("callId1", result: "Error: Function failed."),
1495new FunctionResultContent("callId2", result: "Result 2"),
1604new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1638new FunctionResultContent("callId2", result: "value1"),
1639new FunctionResultContent("callId2", result: "value2")
1690new FunctionResultContent("callId1", result: "Error: Requested function \"UnknownFunc\" not found."),
1691new FunctionResultContent("callId2", result: "Known: 2")
1709new FunctionResultContent("callId1", result: "Error: Requested function \"UnknownFunc\" not found."),
1710new FunctionResultContent("callId2", result: "Known: 2")
1734new(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Should not be produced")]),
1766new(ChatRole.Tool, [new FunctionResultContent("callId1", result: "OK"), new FunctionResultContent("callId2", result: "nope")]),
1836new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1947new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
1989new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
2039new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
2111new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
2160new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]),
3412new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Error: Requested function \"UnknownFunc\" not found.")]),
3442new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Should not be produced")]),
3478new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Terminated")]),
3510new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Error: Function failed.")]),
3660new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", "Server Result")]),
3668new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", "Server Result")]),
3724new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", "Server Result 1")]),
3739new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", "Server Result 1")]),
ChatCompletion\ImageGeneratingChatClientTests.cs (6)
406new FunctionResultContent(otherCallId, "other-result")],
407"at-end" => [new FunctionResultContent(otherCallId, "other-result"),
409_ => [new FunctionResultContent(otherCallId, "before-result"),
481new FunctionResultContent(otherCallId, "other-result")],
482"at-end" => [new FunctionResultContent(otherCallId, "other-result"),
484_ => [new FunctionResultContent(otherCallId, "before-result"),
ChatReduction\MessageCountingChatReducerTests.cs (3)
129new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call1", "Sunny, 72°F")]),
224new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call1", "result")]),
226new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call2", "result")]),
ChatReduction\SummarizingChatReducerTests.cs (3)
100new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call1", "Sunny")]),
189new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call1", "Sunny, 72°F")]),
194new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call2", "Rainy, 65°F")]),
154 references to FunctionResultContent
Microsoft.AspNetCore.Components.AI (5)
Microsoft.Extensions.AI (22)
Microsoft.Extensions.AI.Abstractions (3)
Microsoft.Extensions.AI.Abstractions.Tests (24)
Microsoft.Extensions.AI.Evaluation.Quality (2)
Microsoft.Extensions.AI.Integration.Tests (1)
Microsoft.Extensions.AI.OpenAI (3)
Microsoft.Extensions.AI.OpenAI.Tests (12)
Microsoft.Extensions.AI.Tests (82)
ChatCompletion\FunctionInvokingChatClientTests.cs (48)
362FunctionResultContent? returnedFrc = null;
431var capturedFrc = Assert.Single(toolMessage.Contents.OfType<FunctionResultContent>());
443FunctionResultContent? returnedFrc = null;
511var frc = Assert.Single(toolMessage.Contents.OfType<FunctionResultContent>());
514var innerFrc = (FunctionResultContent)frc.Result!;
595var capturedFrc = Assert.Single(toolMessage.Contents.OfType<FunctionResultContent>());
1001Assert.Contains(content, c => c is FunctionCallContent or FunctionResultContent);
1220c => Assert.Equal("Result for Input 1", Assert.IsType<FunctionResultContent>(c).Result?.ToString()),
1221c => Assert.Equal("Result for Input 2", Assert.IsType<FunctionResultContent>(c).Result?.ToString())),
1259Assert.IsType<FunctionResultContent>(Assert.Single(response.Messages[1].Contents));
1261Assert.IsType<FunctionResultContent>(Assert.Single(response.Messages[3].Contents));
1361AIContent[] resultContents = existingSearchResult is not null && existingSearchResult.Contents.OfType<FunctionResultContent>().ToList() is { } frcs
1385var frcs = lastMessage.Contents.OfType<FunctionResultContent>().ToList();
1542var frc = Assert.IsType<FunctionResultContent>(Assert.Single(response.Messages.Last().Contents));
2217Assert.DoesNotContain(response.Messages, m => m.Contents.Any(c => c is FunctionResultContent));
2288Assert.Contains(response.Messages, m => m.Contents.Any(c => c is FunctionResultContent frc && frc.CallId == "callId1"));
2289Assert.DoesNotContain(response.Messages, m => m.Contents.Any(c => c is FunctionResultContent frc && frc.CallId == "callId2"));
2336Assert.Contains(response.Messages, m => m.Contents.Any(c => c is FunctionResultContent frc && frc.CallId == "callId1"));
2587Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>().Any(frc => frc.Result?.ToString() == "FunctionB result"));
2592Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>().Any(frc => frc.Result?.ToString() == "FunctionB result"));
2683Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2692Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2788Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2790Assert.DoesNotContain(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2796Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2798Assert.DoesNotContain(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2891Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2893Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2899Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2901Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2993Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
2995Assert.DoesNotContain(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
3001Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
3003Assert.DoesNotContain(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
3168Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
3177Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
3272Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>().Any(frc => frc.Result?.ToString() == "FunctionA result"));
3282Assert.Contains(result.Messages, m => m.Contents.OfType<FunctionResultContent>().Any(frc => frc.Result?.ToString() == "FunctionA result"));
3378Assert.DoesNotContain(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
3389Assert.DoesNotContain(result.Messages, m => m.Contents.OfType<FunctionResultContent>()
3689m.Contents.Any(c => c is FunctionResultContent frc2 && frc2.CallId == "callId1"));
3767m.Contents.Any(c => c is FunctionResultContent frc2 && frc2.CallId == "callId2"));
3825m.Contents.Any(c => c is FunctionResultContent frc2 && frc2.CallId == "callId1"));