103 instantiations of FunctionResultContent
Microsoft.Extensions.AI (2)
ChatCompletion\FunctionInvokingChatClient.cs (2)
1100return new FunctionResultContent(result.CallContent.CallId, functionResult) { Exception = result.Exception }; 1375rejections.ConvertAll(static m => (AIContent)new FunctionResultContent(m.Response.FunctionCall.CallId, "Error: Tool call invocation was rejected by user.")) :
Microsoft.Extensions.AI.Abstractions.Tests (9)
ChatCompletion\ChatMessageTests.cs (2)
152new FunctionResultContent("callId1", "result"), 273new FunctionResultContent("function-id", "function-result"),
ChatCompletion\ChatResponseUpdateTests.cs (1)
97new FunctionResultContent("callId1", "result"),
Contents\FunctionResultContentTests.cs (5)
15FunctionResultContent c = new("callId1", null); 26FunctionResultContent c = new("id", "result"); 37FunctionResultContent c = new("callId1", null); 65var sut = new FunctionResultContent("id", "result"); 82var sut = new FunctionResultContent("callId1", null) { Exception = new InvalidOperationException("hello") };
SpeechToText\SpeechToTextResponseUpdateTests.cs (1)
68new FunctionResultContent("callId1", "result"),
Microsoft.Extensions.AI.AzureAIInference.Tests (1)
AzureAIInferenceChatClientTests.cs (1)
991new(ChatRole.Tool, [new FunctionResultContent("abcd123", "happy")]),
Microsoft.Extensions.AI.OpenAI (2)
MicrosoftExtensionsAIChatExtensions.cs (1)
204resultMessage.Contents.Add(new FunctionResultContent(tcm.ToolCallId, ToToolResult(tcm.Content))
OpenAIResponsesChatClient.cs (1)
182message.Contents.Add(new FunctionResultContent(functionCallOutputItem.CallId, functionCallOutputItem.FunctionOutput) { RawRepresentation = functionCallOutputItem });
Microsoft.Extensions.AI.OpenAI.Tests (5)
OpenAIChatClientTests.cs (2)
1441new FunctionResultContent("12345", "Said hello"), 1442new FunctionResultContent("12346", "Said hi"),
OpenAIConversionTests.cs (3)
101new(ChatRole.Tool, [new FunctionResultContent("callid123", "theresult")]), 167new(ChatRole.Tool, [new FunctionResultContent("callid123", "theresult")]), 1003new(ChatRole.Tool, [new FunctionResultContent("call-456", "The weather is sunny")]),
Microsoft.Extensions.AI.Tests (84)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (1)
203new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callid123", "result")]),
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (36)
169new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 180new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 227new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 239new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 281new FunctionResultContent("callId1", result: "Error: Tool call invocation was rejected by user."), 282new FunctionResultContent("callId2", result: "Error: Tool call invocation was rejected by user.") 296new FunctionResultContent("callId1", result: "Error: Tool call invocation was rejected by user."), 297new FunctionResultContent("callId2", result: "Error: Tool call invocation was rejected by user.") 338new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Error: Tool call invocation was rejected by user.")]), 339new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 350new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Error: Tool call invocation was rejected by user.")]), 351new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 360new FunctionResultContent("callId1", result: "Error: Tool call invocation was rejected by user."), 361new FunctionResultContent("callId2", result: "Result 2: 42") 402new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 413new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 451new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 466new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 468new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 1")]), 479new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 1")]), 544new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 555new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 588new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]), 599new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1"), new FunctionResultContent("callId2", result: "Result 2: 42")]),
ChatCompletion\FunctionInvokingChatClientTests.cs (42)
94new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 96new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 98new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 128new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 130new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 132new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 161new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 163new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 165new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 199new FunctionResultContent("callId1", result: "Result 1"), 200new FunctionResultContent("callId2", result: "Result 2: 34"), 201new FunctionResultContent("callId3", result: "Result 2: 56"), 210new FunctionResultContent("callId4", result: "Result 2: 78"), 211new FunctionResultContent("callId5", result: "Result 1") 258new FunctionResultContent("callId1", result: "hellohello"), 259new FunctionResultContent("callId2", result: "worldworld"), 302new FunctionResultContent("callId1", result: "hellohello"), 303new FunctionResultContent("callId2", result: "worldworld"), 330new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1 from delegate")]), 332new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42 from delegate")]), 334new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 385plan.Add(new ChatMessage(ChatRole.Tool, [new FunctionResultContent($"callId{i}", result: "Success: Function completed.")])); 530toolMessage.Contents.Add(new FunctionResultContent(callId, result: callShouldThrow ? "Error: Function failed." : "Success")); 553new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 1")]), 555new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 2: 42")]), 557new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Success: Function completed.")]), 590new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: detailedErrors ? "Error: Function failed. Exception: Oh no!" : "Error: Function failed.")]), 612new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 668new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 845new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 41")]), 847new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId2", result: "Result 42")]), 855new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId3", result: "Result 43")]), 1001new ChatMessage(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Result 1")]), 1035new FunctionResultContent("callId2", result: "value1"), 1036new FunctionResultContent("callId2", result: "value2") 1087new FunctionResultContent("callId1", result: "Error: Requested function \"UnknownFunc\" not found."), 1088new FunctionResultContent("callId2", result: "Known: 2") 1106new FunctionResultContent("callId1", result: "Error: Requested function \"UnknownFunc\" not found."), 1107new FunctionResultContent("callId2", result: "Known: 2") 1131new(ChatRole.Tool, [new FunctionResultContent("callId1", result: "Should not be produced")]), 1163new(ChatRole.Tool, [new FunctionResultContent("callId1", result: "OK"), new FunctionResultContent("callId2", result: "nope")]),
ChatCompletion\OpenTelemetryChatClientTests.cs (1)
110new(ChatRole.Tool, [new FunctionResultContent("12345", "John")]),
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 (1)
96new ChatMessage(ChatRole.Tool, [new FunctionResultContent("call1", "Sunny, 72°F")]),
60 references to FunctionResultContent
Microsoft.Extensions.AI (11)
ChatCompletion\FunctionInvokingChatClient.cs (8)
38/// in <see cref="ChatOptions.Tools"/> (or in <see cref="AdditionalTools"/>), producing a <see cref="FunctionResultContent"/> 45/// to pass back out to the caller. It is then that caller's responsibility to create the appropriate <see cref="FunctionResultContent"/> 135/// the <see cref="FunctionResultContent.Exception"/> property. 957if (added.Any(static m => m.Contents.Any(static c => c is FunctionResultContent { Exception: not null }))) 963.SelectMany(m => m.Contents.OfType<FunctionResultContent>()) 1074FunctionResultContent CreateFunctionResultContent(FunctionInvocationResult result) 1202/// 3. Genreate failed <see cref="FunctionResultContent"/> for any rejected <see cref="FunctionApprovalResponseContent"/>. 1295case FunctionResultContent frc:
ChatCompletion\OpenTelemetryChatClient.cs (1)
256case FunctionResultContent frc:
ChatReduction\MessageCountingChatReducer.cs (1)
56else if (!message.Contents.Any(m => m is FunctionCallContent or FunctionResultContent))
ChatReduction\SummarizingChatReducer.cs (1)
108else if (!message.Contents.Any(m => m is FunctionCallContent 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)
44else if (expectedItem is FunctionResultContent expectedFunctionResult) 46var chatFunctionResult = (FunctionResultContent)chatItem;
ChatCompletion\ChatMessageTests.cs (2)
335var functionResultContent = deserializedMessage.Contents[5] as FunctionResultContent;
Contents\FunctionResultContentTests.cs (9)
15FunctionResultContent c = new("callId1", null); 26FunctionResultContent c = new("id", "result"); 37FunctionResultContent c = new("callId1", null); 65var sut = new FunctionResultContent("id", "result"); 70var deserializedSut = JsonSerializer.Deserialize<FunctionResultContent>(json, TestJsonSerializerContext.Default.Options); 82var sut = new FunctionResultContent("callId1", null) { Exception = new InvalidOperationException("hello") }; 86var deserializedSut = JsonSerializer.Deserialize<FunctionResultContent>(json, TestJsonSerializerContext.Default.Options);
Microsoft.Extensions.AI.AzureAIInference (1)
AzureAIInferenceChatClient.cs (1)
450if (item is FunctionResultContent resultContent)
Microsoft.Extensions.AI.AzureAIInference.Tests (3)
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (3)
44else if (expectedItem is FunctionResultContent expectedFunctionResult) 46var chatFunctionResult = (FunctionResultContent)chatItem;
Microsoft.Extensions.AI.Evaluation.Quality (2)
ChatResponseExtensions.cs (2)
31if (content is FunctionCallContent or FunctionResultContent) 34content is FunctionCallContent ? typeof(FunctionCallContent) : typeof(FunctionResultContent);
Microsoft.Extensions.AI.Integration.Tests (1)
PromptBasedFunctionCallingChatClient.cs (1)
69if (message.Contents[itemIndex] is FunctionResultContent frc)
Microsoft.Extensions.AI.OpenAI (9)
OpenAIAssistantsChatClient.cs (7)
85(RunCreationOptions runOptions, ToolResources? toolResources, List<FunctionResultContent>? toolResults) = await CreateRunOptionsAsync(messages, options, cancellationToken).ConfigureAwait(false); 298private async ValueTask<(RunCreationOptions RunOptions, ToolResources? Resources, List<FunctionResultContent>? ToolResults)> CreateRunOptionsAsync( 457List<FunctionResultContent>? functionResults = null; 496case FunctionResultContent result: 515/// <summary>Convert <see cref="FunctionResultContent"/> instances to <see cref="ToolOutput"/> instances.</summary> 519private static string? ConvertFunctionResultsToToolOutput(List<FunctionResultContent>? toolResults, out List<ToolOutput>? toolOutputs) 525foreach (var frc in toolResults)
OpenAIChatClient.cs (1)
140if (item is FunctionResultContent resultContent)
OpenAIResponsesChatClient.cs (1)
589case FunctionResultContent resultContent:
Microsoft.Extensions.AI.OpenAI.Tests (4)
OpenAIConversionTests.cs (1)
321Assert.Equal("Function output", convertedMessages[3].Contents.OfType<FunctionResultContent>().First().Result);
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (3)
44else if (expectedItem is FunctionResultContent expectedFunctionResult) 46var chatFunctionResult = (FunctionResultContent)chatItem;
Microsoft.Extensions.AI.Tests (13)
ChatCompletion\FunctionInvokingChatClientTests.cs (7)
569Assert.Contains(content, c => c is FunctionCallContent or FunctionResultContent); 770c => Assert.Equal("Result for Input 1", Assert.IsType<FunctionResultContent>(c).Result?.ToString()), 771c => Assert.Equal("Result for Input 2", Assert.IsType<FunctionResultContent>(c).Result?.ToString())), 809Assert.IsType<FunctionResultContent>(Assert.Single(response.Messages[1].Contents)); 811Assert.IsType<FunctionResultContent>(Assert.Single(response.Messages[3].Contents)); 911AIContent[] resultContents = existingSearchResult is not null && existingSearchResult.Contents.OfType<FunctionResultContent>().ToList() is { } frcs 935var frcs = lastMessage.Contents.OfType<FunctionResultContent>().ToList();
ChatReduction\MessageCountingChatReducerTests.cs (2)
144Assert.DoesNotContain(m.Contents, c => c is FunctionResultContent); 151Assert.DoesNotContain(m.Contents, c => c is FunctionResultContent);
ChatReduction\SummarizingChatReducerTests.cs (1)
107Assert.DoesNotContain(resultList, m => m.Contents.Any(c => c is FunctionResultContent));
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (3)
44else if (expectedItem is FunctionResultContent expectedFunctionResult) 46var chatFunctionResult = (FunctionResultContent)chatItem;