144 instantiations of FunctionResultContent
Microsoft.Extensions.AI (2)
ChatCompletion\FunctionInvokingChatClient.cs (2)
1110
return new
FunctionResultContent
(result.CallContent.CallId, functionResult) { Exception = result.Exception };
1429
return (AIContent)new
FunctionResultContent
(m.Response.FunctionCall.CallId, result);
Microsoft.Extensions.AI.Abstractions.Tests (10)
ChatCompletion\ChatMessageTests.cs (2)
151
new
FunctionResultContent
("callId1", "result"),
272
new
FunctionResultContent
("function-id", "function-result"),
ChatCompletion\ChatResponseUpdateTests.cs (1)
97
new
FunctionResultContent
("callId1", "result"),
Contents\AIContentTests.cs (1)
69
new
FunctionResultContent
("call123", "result data"),
Contents\FunctionResultContentTests.cs (5)
15
FunctionResultContent c =
new
("callId1", null);
26
FunctionResultContent c =
new
("id", "result");
37
FunctionResultContent c =
new
("callId1", null);
65
var sut = new
FunctionResultContent
("id", "result");
82
var sut = new
FunctionResultContent
("callId1", null) { Exception = new InvalidOperationException("hello") };
SpeechToText\SpeechToTextResponseUpdateTests.cs (1)
67
new
FunctionResultContent
("callId1", "result"),
Microsoft.Extensions.AI.OpenAI (2)
MicrosoftExtensionsAIChatExtensions.cs (1)
220
resultMessage.Contents.Add(new
FunctionResultContent
(tcm.ToolCallId, ToToolResult(tcm.Content))
OpenAIResponsesChatClient.cs (1)
202
message.Contents.Add(new
FunctionResultContent
(functionCallOutputItem.CallId, functionCallOutputItem.FunctionOutput) { RawRepresentation = functionCallOutputItem });
Microsoft.Extensions.AI.OpenAI.Tests (16)
OpenAIChatClientTests.cs (2)
1474
new
FunctionResultContent
("12345", new TextContent("Said hello")),
1475
new
FunctionResultContent
("12346", "Said hi"),
OpenAIConversionTests.cs (3)
607
new(ChatRole.Tool, [new
FunctionResultContent
("callid123", "theresult")]),
676
new(ChatRole.Tool, [new
FunctionResultContent
("callid123", "theresult")]),
1549
new(ChatRole.Tool, [new
FunctionResultContent
("call-456", "The weather is sunny")]),
OpenAIResponseClientTests.cs (11)
3961
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("call_123", new TextContent("Result text"))])
4018
new
FunctionResultContent
("call_456", new List<AIContent>
4080
new
FunctionResultContent
("call_789", new DataContent(imageData, "image/png"))
4137
new
FunctionResultContent
("call_uri", new UriContent(new Uri("https://example.com/image.png"), "image/png"))
4194
new
FunctionResultContent
("call_file", new HostedFileContent("file-abc123") { MediaType = "image/png", Name = "result.png" })
4253
new
FunctionResultContent
("call_mixed", new List<AIContent>
4316
new
FunctionResultContent
("call_pdf", new DataContent(pdfData, "application/pdf") { Name = "report.pdf" })
4371
new
FunctionResultContent
("call_obj", new { name = "John", age = 30 })
4426
new
FunctionResultContent
("call_string", "Simple string result")
4483
new
FunctionResultContent
("call_file_uri", new UriContent(new Uri("https://example.com/document.pdf"), "application/pdf"))
4540
new
FunctionResultContent
("call_hosted_file", new HostedFileContent("file-xyz789") { MediaType = "text/plain", Name = "document.txt" })
Microsoft.Extensions.AI.Tests (114)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (1)
203
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callid123", "result")]),
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (57)
169
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1"), new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
180
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1"), new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
222
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1"), new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
233
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1"), new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
280
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1"), new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
292
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1"), new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
334
new
FunctionResultContent
("callId1", result: "Tool call invocation rejected."),
335
new
FunctionResultContent
("callId2", result: "Tool call invocation rejected.")
349
new
FunctionResultContent
("callId1", result: "Tool call invocation rejected."),
350
new
FunctionResultContent
("callId2", result: "Tool call invocation rejected.")
391
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Tool call invocation rejected.")]),
392
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
403
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Tool call invocation rejected.")]),
404
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
413
new
FunctionResultContent
("callId1", result: "Tool call invocation rejected."),
414
new
FunctionResultContent
("callId2", result: "Result 2: 42")
463
new
FunctionResultContent
("callId1", result: "Tool call invocation rejected. User denied permission for this operation"),
464
new
FunctionResultContent
("callId2", result: "Tool call invocation rejected. Function Func2 is not allowed at this time")
478
new
FunctionResultContent
("callId1", result: "Tool call invocation rejected. User denied permission for this operation"),
479
new
FunctionResultContent
("callId2", result: "Tool call invocation rejected. Function Func2 is not allowed at this time")
530
new
FunctionResultContent
("callId1", result: "Tool call invocation rejected. Custom rejection for Func1"),
531
new
FunctionResultContent
("callId2", result: "Tool call invocation rejected.")
533
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId3", result: "Result 3: test")]),
551
new
FunctionResultContent
("callId1", result: "Tool call invocation rejected. Custom rejection for Func1"),
552
new
FunctionResultContent
("callId2", result: "Tool call invocation rejected.")
554
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId3", result: "Result 3: test")]),
568
new
FunctionResultContent
("callId1", result: "Tool call invocation rejected. Custom rejection for Func1"),
569
new
FunctionResultContent
("callId2", result: "Tool call invocation rejected."),
570
new
FunctionResultContent
("callId3", result: "Result 3: test")
616
new
FunctionResultContent
("callId1", result: "Tool call invocation rejected.")
630
new
FunctionResultContent
("callId1", result: "Tool call invocation rejected.")
671
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1"), new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
682
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1"), new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
720
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1"), new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
735
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1"), new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
737
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId3", result: "Result 1")]),
748
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId3", result: "Result 1")]),
792
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId2", result: "Result 2: 42")])
811
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
876
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1"), new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
887
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1"), new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
920
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1"), new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
931
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1"), new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
ChatCompletion\FunctionInvokingChatClientTests.cs (46)
95
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1")]),
97
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
99
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId3", result: "Success: Function completed.")]),
129
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1")]),
131
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
133
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId3", result: "Success: Function completed.")]),
162
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1")]),
164
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
166
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId3", result: "Success: Function completed.")]),
200
new
FunctionResultContent
("callId1", result: "Result 1"),
201
new
FunctionResultContent
("callId2", result: "Result 2: 34"),
202
new
FunctionResultContent
("callId3", result: "Result 2: 56"),
211
new
FunctionResultContent
("callId4", result: "Result 2: 78"),
212
new
FunctionResultContent
("callId5", result: "Result 1")
259
new
FunctionResultContent
("callId1", result: "hellohello"),
260
new
FunctionResultContent
("callId2", result: "worldworld"),
303
new
FunctionResultContent
("callId1", result: "hellohello"),
304
new
FunctionResultContent
("callId2", result: "worldworld"),
331
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1 from delegate")]),
333
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId2", result: "Result 2: 42 from delegate")]),
335
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId3", result: "Success: Function completed.")]),
386
plan.Add(new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
($"callId{i}", result: "Success: Function completed.")]));
531
toolMessage.Contents.Add(new
FunctionResultContent
(callId, result: callShouldThrow ? "Error: Function failed." : "Success"));
554
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId2", result: "Result 1")]),
556
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId2", result: "Result 2: 42")]),
558
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId3", result: "Success: Function completed.")]),
591
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: detailedErrors ? "Error: Function failed. Exception: Oh no!" : "Error: Function failed.")]),
613
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1")]),
670
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1")]),
864
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 41")]),
866
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId2", result: "Result 42")]),
874
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId3", result: "Result 43")]),
1020
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1")]),
1054
new
FunctionResultContent
("callId2", result: "value1"),
1055
new
FunctionResultContent
("callId2", result: "value2")
1106
new
FunctionResultContent
("callId1", result: "Error: Requested function \"UnknownFunc\" not found."),
1107
new
FunctionResultContent
("callId2", result: "Known: 2")
1125
new
FunctionResultContent
("callId1", result: "Error: Requested function \"UnknownFunc\" not found."),
1126
new
FunctionResultContent
("callId2", result: "Known: 2")
1150
new(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Should not be produced")]),
1182
new(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "OK"), new
FunctionResultContent
("callId2", result: "nope")]),
1246
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1")]),
1292
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1")]),
1341
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1")]),
1413
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("callId1", result: "Result 1")]),
ChatCompletion\OpenTelemetryChatClientTests.cs (4)
110
new(ChatRole.Tool, [new
FunctionResultContent
("12345", "John")]),
358
new
FunctionResultContent
("call-123", "72°F and sunny"),
374
yield return new() { Contents = [new
FunctionResultContent
("call-123", "72°F and sunny")] };
400
new(ChatRole.Tool, [new
FunctionResultContent
("call-456", "Found 3 files")]),
ChatReduction\MessageCountingChatReducerTests.cs (3)
129
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("call1", "Sunny, 72°F")]),
224
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("call1", "result")]),
226
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("call2", "result")]),
ChatReduction\SummarizingChatReducerTests.cs (3)
100
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("call1", "Sunny")]),
189
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("call1", "Sunny, 72°F")]),
194
new ChatMessage(ChatRole.Tool, [new
FunctionResultContent
("call2", "Rainy, 65°F")]),
63 references to FunctionResultContent
Microsoft.Extensions.AI (12)
ChatCompletion\FunctionInvokingChatClient.cs (8)
31
/// in <see cref="ChatOptions.Tools"/> (or in <see cref="AdditionalTools"/>), producing a <see cref="
FunctionResultContent
"/>
38
/// to pass back out to the caller. It is then that caller's responsibility to create the appropriate <see cref="
FunctionResultContent
"/>
122
/// the <see cref="
FunctionResultContent
.Exception"/> property.
967
if (added.Any(static m => m.Contents.Any(static c => c is
FunctionResultContent
{ Exception: not null })))
973
.SelectMany(m => m.Contents.OfType<
FunctionResultContent
>())
1084
FunctionResultContent
CreateFunctionResultContent(FunctionInvocationResult result)
1248
/// 3. Genreate failed <see cref="
FunctionResultContent
"/> for any rejected <see cref="FunctionApprovalResponseContent"/>.
1341
case
FunctionResultContent
frc:
ChatCompletion\ImageGeneratingChatClient.cs (1)
341
else if (content is
FunctionResultContent
functionResult &&
ChatCompletion\OpenTelemetryChatClient.cs (1)
269
case
FunctionResultContent
frc:
ChatReduction\MessageCountingChatReducer.cs (1)
56
else if (!message.Contents.Any(m => m is FunctionCallContent or
FunctionResultContent
))
ChatReduction\SummarizingChatReducer.cs (1)
209
or
FunctionResultContent
Microsoft.Extensions.AI.Abstractions (2)
Contents\AIContent.cs (1)
14
[JsonDerivedType(typeof(
FunctionResultContent
), typeDiscriminator: "functionResult")]
Contents\FunctionResultContent.cs (1)
19
/// Initializes a new instance of the <see cref="
FunctionResultContent
"/> class.
Microsoft.Extensions.AI.Abstractions.Tests (14)
AssertExtensions.cs (3)
44
else if (expectedItem is
FunctionResultContent
expectedFunctionResult)
46
var
chatFunctionResult = (
FunctionResultContent
)chatItem;
ChatCompletion\ChatMessageTests.cs (2)
334
var
functionResultContent = deserializedMessage.Contents[5] as
FunctionResultContent
;
Contents\FunctionResultContentTests.cs (9)
15
FunctionResultContent
c = new("callId1", null);
26
FunctionResultContent
c = new("id", "result");
37
FunctionResultContent
c = new("callId1", null);
65
var
sut = new FunctionResultContent("id", "result");
70
var
deserializedSut = JsonSerializer.Deserialize<
FunctionResultContent
>(json, TestJsonSerializerContext.Default.Options);
82
var
sut = new FunctionResultContent("callId1", null) { Exception = new InvalidOperationException("hello") };
86
var
deserializedSut = JsonSerializer.Deserialize<
FunctionResultContent
>(json, TestJsonSerializerContext.Default.Options);
Microsoft.Extensions.AI.Evaluation.Quality (2)
ChatResponseExtensions.cs (2)
31
if (content is FunctionCallContent or
FunctionResultContent
)
34
content is FunctionCallContent ? typeof(FunctionCallContent) : typeof(
FunctionResultContent
);
Microsoft.Extensions.AI.Integration.Tests (1)
PromptBasedFunctionCallingChatClient.cs (1)
69
if (message.Contents[itemIndex] is
FunctionResultContent
frc)
Microsoft.Extensions.AI.OpenAI (9)
OpenAIAssistantsChatClient.cs (7)
79
(RunCreationOptions runOptions, ToolResources? toolResources, List<
FunctionResultContent
>? toolResults) = await CreateRunOptionsAsync(messages, options, cancellationToken).ConfigureAwait(false);
340
private async ValueTask<(RunCreationOptions RunOptions, ToolResources? Resources, List<
FunctionResultContent
>? ToolResults)> CreateRunOptionsAsync(
506
List<
FunctionResultContent
>? functionResults = null;
545
case
FunctionResultContent
result when chatMessage.Role == ChatRole.Tool:
564
/// <summary>Convert <see cref="
FunctionResultContent
"/> instances to <see cref="ToolOutput"/> instances.</summary>
568
private static string? ConvertFunctionResultsToToolOutput(List<
FunctionResultContent
>? toolResults, out List<ToolOutput>? toolOutputs)
574
foreach (
var
frc in toolResults)
OpenAIChatClient.cs (1)
168
if (item is
FunctionResultContent
resultContent)
OpenAIResponsesChatClient.cs (1)
937
case
FunctionResultContent
resultContent:
Microsoft.Extensions.AI.OpenAI.Tests (6)
OpenAIChatClientTests.cs (2)
1795
var
frc = Assert.IsType<
FunctionResultContent
>(Assert.Single(extMessages[0].Contents));
OpenAIConversionTests.cs (1)
867
Assert.Equal("Function output", convertedMessages[3].Contents.OfType<
FunctionResultContent
>().First().Result);
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (3)
44
else if (expectedItem is
FunctionResultContent
expectedFunctionResult)
46
var
chatFunctionResult = (
FunctionResultContent
)chatItem;
Microsoft.Extensions.AI.Tests (17)
ChatCompletion\FunctionInvokingChatClientTests.cs (7)
570
Assert.Contains(content, c => c is FunctionCallContent or
FunctionResultContent
);
789
c => Assert.Equal("Result for Input 1", Assert.IsType<
FunctionResultContent
>(c).Result?.ToString()),
790
c => Assert.Equal("Result for Input 2", Assert.IsType<
FunctionResultContent
>(c).Result?.ToString())),
828
Assert.IsType<
FunctionResultContent
>(Assert.Single(response.Messages[1].Contents));
830
Assert.IsType<
FunctionResultContent
>(Assert.Single(response.Messages[3].Contents));
930
AIContent[] resultContents = existingSearchResult is not null && existingSearchResult.Contents.OfType<
FunctionResultContent
>().ToList() is { } frcs
954
var frcs = lastMessage.Contents.OfType<
FunctionResultContent
>().ToList();
ChatReduction\MessageCountingChatReducerTests.cs (2)
144
Assert.DoesNotContain(m.Contents, c => c is
FunctionResultContent
);
151
Assert.DoesNotContain(m.Contents, c => c is
FunctionResultContent
);
ChatReduction\SummarizingChatReducerTests.cs (5)
107
Assert.DoesNotContain(msgs, m => m.Contents.Any(c => c is FunctionCallContent or
FunctionResultContent
or TestUserInputRequestContent or TestUserInputResponseContent));
125
m => Assert.Contains(m.Contents, c => c is
FunctionResultContent
),
203
Assert.DoesNotContain(msgList, m => m.Contents.Any(c => c is FunctionCallContent or
FunctionResultContent
or TestUserInputRequestContent or TestUserInputResponseContent));
220
Assert.Contains(resultList, m => m.Contents.Any(c => c is
FunctionResultContent
fr && fr.CallId == "call2"));
222
Assert.DoesNotContain(resultList, m => m.Contents.Any(c => c is
FunctionResultContent
fr && fr.CallId == "call1"));
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (3)
44
else if (expectedItem is
FunctionResultContent
expectedFunctionResult)
46
var
chatFunctionResult = (
FunctionResultContent
)chatItem;