194 instantiations of FunctionCallContent
Microsoft.Extensions.AI.Abstractions (1)
Contents\FunctionCallContent.cs (1)
95
return new
FunctionCallContent
(callId, name, arguments)
Microsoft.Extensions.AI.Abstractions.Tests (23)
ChatCompletion\ChatMessageTests.cs (2)
148
new
FunctionCallContent
("callId1", "fc1"),
271
new
FunctionCallContent
("function-id", "plugin-name-function-name", new Dictionary<string, object?> { ["parameter"] = "argument" }),
ChatCompletion\ChatResponseUpdateTests.cs (2)
94
new
FunctionCallContent
("callId1", "fc1"),
123
new
FunctionCallContent
("callId1", "fc1"),
Contents\AIContentTests.cs (3)
68
new
FunctionCallContent
("call123", "functionName", new Dictionary<string, object?> { { "param1", 123 } }),
73
new FunctionApprovalRequestContent("request123", new
FunctionCallContent
("call123", "functionName", new Dictionary<string, object?> { { "param1", 123 } })),
74
new FunctionApprovalResponseContent("request123", approved: true, new
FunctionCallContent
("call123", "functionName", new Dictionary<string, object?> { { "param1", 123 } })),
Contents\FunctionApprovalRequestContentTests.cs (4)
16
FunctionCallContent functionCall =
new
("FCC1", "TestFunction");
31
FunctionCallContent functionCall =
new
("FCC1", "TestFunction");
45
FunctionCallContent functionCall =
new
("FCC1", "TestFunction");
60
var content = new FunctionApprovalRequestContent("request123", new
FunctionCallContent
("call123", "functionName", new Dictionary<string, object?> { { "param1", 123 } }));
Contents\FunctionApprovalResponseContentTests.cs (3)
15
FunctionCallContent functionCall =
new
("FCC1", "TestFunction");
30
FunctionCallContent functionCall =
new
("FCC1", "TestFunction");
41
var content = new FunctionApprovalResponseContent("request123", true, new
FunctionCallContent
("call123", "functionName"));
Contents\FunctionCallContentTests.cs (4)
21
FunctionCallContent c =
new
("callId1", "name");
38
FunctionCallContent c =
new
("id", "name", args);
51
FunctionCallContent c =
new
("callId1", "name");
81
var sut = new
FunctionCallContent
("callId1", "functionName", new Dictionary<string, object?> { ["key"] = "value" }) { Exception = ex };
Contents\UserInputRequestContentTests.cs (2)
36
UserInputRequestContent content = new FunctionApprovalRequestContent("request123", new
FunctionCallContent
("call123", "functionName", new Dictionary<string, object?> { { "param1", 123 } }));
44
new FunctionApprovalRequestContent("request123", new
FunctionCallContent
("call123", "functionName", new Dictionary<string, object?> { { "param1", 123 } })),
Contents\UserInputResponseContentTests.cs (2)
34
UserInputResponseContent content = new FunctionApprovalResponseContent("request123", true, new
FunctionCallContent
("call123", "functionName"));
42
new FunctionApprovalResponseContent("request123", true, new
FunctionCallContent
("call123", "functionName")),
SpeechToText\SpeechToTextResponseUpdateTests.cs (1)
64
new
FunctionCallContent
("callId1", "fc1"),
Microsoft.Extensions.AI.AzureAIInference.Tests (1)
AzureAIInferenceChatClientTests.cs (1)
990
new(ChatRole.Assistant, [new
FunctionCallContent
("abcd123", "GetMood")]),
Microsoft.Extensions.AI.Integration.Tests (1)
PromptBasedFunctionCallingChatClient.cs (1)
118
message.Contents.Add(new
FunctionCallContent
(id, toolCallParsed.Name!, toolCallParsed.Arguments is { } args ? new ReadOnlyDictionary<string, object?>(args) : null));
Microsoft.Extensions.AI.OpenAI.Tests (12)
OpenAIChatClientTests.cs (2)
1469
new
FunctionCallContent
("12345", "SayHello"),
1470
new
FunctionCallContent
("12346", "SayHi"),
OpenAIConversionTests.cs (10)
443
new
FunctionCallContent
("callid123", "SomeFunction", new Dictionary<string, object?>
512
new
FunctionCallContent
("callid123", "SomeFunction", new Dictionary<string, object?>
752
new
FunctionCallContent
("call123", "TestFunction", new Dictionary<string, object?> { ["param"] = "value" })
857
new
FunctionCallContent
("process_data", "ProcessComplexData", complexArgs)
1040
var functionCallContent = new
FunctionCallContent
("call-123", "GetWeather", new Dictionary<string, object?>
1078
var functionCall1 = new
FunctionCallContent
("call-1", "Function1", new Dictionary<string, object?> { ["param1"] = "value1" });
1079
var functionCall2 = new
FunctionCallContent
("call-2", "Function2", new Dictionary<string, object?> { ["param2"] = "value2" });
1112
new
FunctionCallContent
("call-123", "GetWeather", new Dictionary<string, object?> { ["location"] = "Seattle" }),
1354
new
FunctionCallContent
("call-123", "TestFunction", new Dictionary<string, object?> { ["param"] = "value" })
1389
new
FunctionCallContent
("call-456", "GetWeather", new Dictionary<string, object?> { ["location"] = "Seattle" })
Microsoft.Extensions.AI.Tests (156)
ChatCompletion\ChatClientStructuredOutputExtensionsTests.cs (1)
201
new
FunctionCallContent
("callid123", "get_data"),
ChatCompletion\DistributedCachingChatClientTest.cs (4)
51
Contents = [new
FunctionCallContent
("someCallId", "functionName", new Dictionary<string, object?>
254
new
FunctionCallContent
("someCallId", "someFn", new Dictionary<string, object?> { ["arg1"] = "value1" }),
265
Contents = [new
FunctionCallContent
("someCallId", "someFn", new Dictionary<string, object?> { ["arg1"] = "value1" })],
315
new() { Role = ChatRole.Assistant, Contents = [new
FunctionCallContent
("callId1", "separator")] },
ChatCompletion\FunctionInvocationContextTests.cs (1)
55
FunctionCallContent callContent =
new
(string.Empty, string.Empty, new Dictionary<string, object?>());
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (87)
41
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
48
new FunctionApprovalRequestContent("callId1", new
FunctionCallContent
("callId1", "Func1")),
49
new FunctionApprovalRequestContent("callId2", new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
77
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
84
new FunctionApprovalRequestContent("callId1", new
FunctionCallContent
("callId1", "Func1")),
85
new FunctionApprovalRequestContent("callId2", new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
121
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
128
new FunctionApprovalRequestContent("callId1", new
FunctionCallContent
("callId1", "Func1")),
129
new FunctionApprovalRequestContent("callId2", new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
155
new FunctionApprovalRequestContent("callId1", new
FunctionCallContent
("callId1", "Func1")),
156
new FunctionApprovalRequestContent("callId2", new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
160
new FunctionApprovalResponseContent("callId1", true, new
FunctionCallContent
("callId1", "Func1")),
161
new FunctionApprovalResponseContent("callId2", true, new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
168
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
179
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
206
new FunctionApprovalRequestContent("callId1", new
FunctionCallContent
("callId1", "Func1")),
210
new FunctionApprovalRequestContent("callId2", new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
214
new FunctionApprovalResponseContent("callId1", true, new
FunctionCallContent
("callId1", "Func1")),
218
new FunctionApprovalResponseContent("callId2", true, new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
225
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1")]) { MessageId = "resp1" },
226
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]) { MessageId = "resp2" },
237
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1")]) { MessageId = "resp1" },
238
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]) { MessageId = "resp2" },
265
new FunctionApprovalRequestContent("callId1", new
FunctionCallContent
("callId1", "Func1")),
266
new FunctionApprovalRequestContent("callId2", new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
270
new FunctionApprovalResponseContent("callId1", false, new
FunctionCallContent
("callId1", "Func1")),
271
new FunctionApprovalResponseContent("callId2", false, new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
278
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
293
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
324
new FunctionApprovalRequestContent("callId1", new
FunctionCallContent
("callId1", "Func1")),
325
new FunctionApprovalRequestContent("callId2", new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
329
new FunctionApprovalResponseContent("callId1", false, new
FunctionCallContent
("callId1", "Func1")),
330
new FunctionApprovalResponseContent("callId2", true, new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
337
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
349
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
357
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
388
new FunctionApprovalRequestContent("callId1", new
FunctionCallContent
("callId1", "Func1")),
389
new FunctionApprovalRequestContent("callId2", new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
393
new FunctionApprovalResponseContent("callId1", true, new
FunctionCallContent
("callId1", "Func1")),
394
new FunctionApprovalResponseContent("callId2", true, new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
401
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
407
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 3 } })]),
412
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
416
new FunctionApprovalRequestContent("callId2", new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 3 } }))
442
new FunctionApprovalRequestContent("callId1", new
FunctionCallContent
("callId1", "Func1")),
443
new FunctionApprovalRequestContent("callId2", new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
447
new FunctionApprovalResponseContent("callId1", true, new
FunctionCallContent
("callId1", "Func1")),
448
new FunctionApprovalResponseContent("callId2", true, new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
450
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
454
new FunctionApprovalRequestContent("callId3", new
FunctionCallContent
("callId3", "Func1")),
458
new FunctionApprovalResponseContent("callId3", true, new
FunctionCallContent
("callId3", "Func1")),
465
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
467
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId3", "Func1")]),
478
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId3", "Func1")]),
522
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
531
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
541
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
568
new FunctionApprovalRequestContent("callId1", new
FunctionCallContent
("callId1", "Func1")),
598
new FunctionApprovalResponseContent("callId1", true, new
FunctionCallContent
("callId1", "Func1")),
599
new FunctionApprovalResponseContent("callId2", true, new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
606
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
617
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
644
new FunctionApprovalResponseContent("callId1", true, new
FunctionCallContent
("callId1", "Func1")),
645
new FunctionApprovalResponseContent("callId2", true, new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } }))
661
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1"), new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
706
yield return new ChatResponseUpdate(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1")]) { MessageId = messageId };
712
new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })
783
yield return new ChatResponseUpdate(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1")]) { MessageId = messageId };
788
new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })
792
yield return new ChatResponseUpdate(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func3")]) { MessageId = messageId };
ChatCompletion\FunctionInvokingChatClientTests.cs (51)
93
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1")]),
95
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
97
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]),
127
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1")]),
129
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
131
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]),
160
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1")]),
162
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
164
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]),
193
new
FunctionCallContent
("callId1", "Func1"),
194
new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 34 } }),
195
new
FunctionCallContent
("callId3", "Func2", arguments: new Dictionary<string, object?> { { "i", 56 } }),
205
new
FunctionCallContent
("callId4", "Func2", arguments: new Dictionary<string, object?> { { "i", 78 } }),
206
new
FunctionCallContent
("callId5", "Func1")
253
new
FunctionCallContent
("callId1", "Func", arguments: new Dictionary<string, object?> { { "arg", "hello" } }),
254
new
FunctionCallContent
("callId2", "Func", arguments: new Dictionary<string, object?> { { "arg", "world" } }),
297
new
FunctionCallContent
("callId1", "Func", arguments: new Dictionary<string, object?> { { "arg", "hello" } }),
298
new
FunctionCallContent
("callId2", "Func", arguments: new Dictionary<string, object?> { { "arg", "world" } }),
329
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1")]),
331
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
333
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]),
378
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
($"callId0", "VoidReturn")]),
386
plan.Add(new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
($"callId{(i + 1)}", "VoidReturn")]));
528
assistantMessage.Contents.Add(new
FunctionCallContent
(callId, "Func",
552
new ChatMessage(ChatRole.Assistant, [new TextContent("extra"), new
FunctionCallContent
("callId1", "Func1"), new TextContent("stuff")]),
554
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]),
556
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } }), new TextContent("more")]),
589
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1")]),
611
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]),
668
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]),
760
new() { Contents = [new
FunctionCallContent
("callId1", "Func1", new Dictionary<string, object?> { ["text"] = "Input 1" })] },
761
new() { Contents = [new
FunctionCallContent
("callId2", "Func1", new Dictionary<string, object?> { ["text"] = "Input 2" })] }
813
new(ChatRole.Assistant, [new
FunctionCallContent
($"callId{chatContents.Count()}", "Func1")]) :
862
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1", new Dictionary<string, object?> { ["i"] = 41 })]),
864
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId2", "Func1", new Dictionary<string, object?> { ["i"] = 42 })]),
872
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId3", "Func1", new Dictionary<string, object?> { ["i"] = 43 })]),
932
new
FunctionCallContent
("callId1", "Search"),
933
new
FunctionCallContent
("callId2", "Search", new Dictionary<string, object?> { { "result", "birds" } }),
934
new
FunctionCallContent
("callId3", "Search"),
980
return new ChatResponse(new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId-abc", "Func1")]))
1018
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]),
1048
new
FunctionCallContent
("callId1", "Func1", new Dictionary<string, object?> { ["arg"] = "value1" }),
1049
new
FunctionCallContent
("callId2", "Func1", new Dictionary<string, object?> { ["arg"] = "value2" }),
1101
new
FunctionCallContent
("callId1", "UnknownFunc", new Dictionary<string, object?> { ["i"] = 1 }),
1102
new
FunctionCallContent
("callId2", "KnownFunc", new Dictionary<string, object?> { ["i"] = 2 })
1120
new
FunctionCallContent
("callId1", "UnknownFunc", new Dictionary<string, object?> { ["i"] = 1 }),
1121
new
FunctionCallContent
("callId2", "KnownFunc", new Dictionary<string, object?> { ["i"] = 2 })
1148
new(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "DefOnly")]),
1178
new
FunctionCallContent
("callId1", "Known"),
1179
new
FunctionCallContent
("callId2", "DefOnly")
1213
messages.Add(new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("callId1", "Func1")]));
ChatCompletion\ImageGeneratingChatClientTests.cs (2)
317
[new
FunctionCallContent
(callId, "GenerateImage", new Dictionary<string, object?> { ["prompt"] = "a cat" })]);
360
[new
FunctionCallContent
(callId, "GenerateImage", new Dictionary<string, object?> { ["prompt"] = "a cat" })]);
ChatCompletion\OpenTelemetryChatClientTests.cs (4)
109
new(ChatRole.Assistant, [new
FunctionCallContent
("12345", "GetPersonName")]),
357
new
FunctionCallContent
("call-123", "GetWeather", new Dictionary<string, object?> { ["location"] = "Seattle" }),
373
yield return new() { Contents = [new
FunctionCallContent
("call-123", "GetWeather", new Dictionary<string, object?> { ["location"] = "Seattle" })] };
399
new(ChatRole.Assistant, [new
FunctionCallContent
("call-456", "SearchFiles")]),
ChatReduction\MessageCountingChatReducerTests.cs (3)
128
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("call1", "get_weather", new Dictionary<string, object?> { ["location"] = "Seattle" })]),
223
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("call1", "func", null)]),
225
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("call2", "func", null)]),
ChatReduction\SummarizingChatReducerTests.cs (3)
99
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("call1", "get_weather"), new TestUserInputRequestContent("uir1")]),
188
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("call1", "get_weather", new Dictionary<string, object?> { ["location"] = "Seattle" }), new TestUserInputRequestContent("uir2")]),
193
new ChatMessage(ChatRole.Assistant, [new
FunctionCallContent
("call2", "get_weather", new Dictionary<string, object?> { ["location"] = "New York" })]),
163 references to FunctionCallContent
Microsoft.Extensions.AI (42)
ChatCompletion\FunctionInvocationContext.cs (1)
40
public
FunctionCallContent
CallContent
ChatCompletion\FunctionInvokingChatClient.cs (37)
28
/// When this client receives a <see cref="
FunctionCallContent
"/> in a chat response from its inner
36
/// <see cref="FunctionInvokingChatClient"/> will not attempt to invoke it, and instead allow that <see cref="
FunctionCallContent
"/>
42
/// attempt to invoke it directly. Instead, it will replace that <see cref="
FunctionCallContent
"/> with a <see cref="FunctionApprovalRequestContent"/>
43
/// that wraps the <see cref="
FunctionCallContent
"/> and indicates that the function requires approval before it can be invoked. The caller is then
48
/// Due to the nature of interactions with an underlying <see cref="IChatClient"/>, if any <see cref="
FunctionCallContent
"/> is received
49
/// for a function that requires approval, all received <see cref="
FunctionCallContent
"/> in that same response will also require approval,
283
List<
FunctionCallContent
>? functionCallContents = null; // function call contents that need responding to in the current turn
421
List<
FunctionCallContent
>? functionCallContents = null; // function call contents that need responding to in the current turn
753
/// <summary>Copies any <see cref="
FunctionCallContent
"/> from <paramref name="messages"/> to <paramref name="functionCalls"/>.</summary>
755
IList<ChatMessage> messages, [NotNullWhen(true)] ref List<
FunctionCallContent
>? functionCalls)
767
/// <summary>Copies any <see cref="
FunctionCallContent
"/> from <paramref name="content"/> to <paramref name="functionCalls"/>.</summary>
769
IList<AIContent> content, [NotNullWhen(true)] ref List<
FunctionCallContent
>? functionCalls)
775
if (content[i] is
FunctionCallContent
functionCall)
827
private bool ShouldTerminateLoopBasedOnHandleableFunctions(List<
FunctionCallContent
>? functionCalls, Dictionary<string, AITool>? toolMap)
845
foreach (
var
fcc in functionCalls)
885
Dictionary<string, AITool>? toolMap, List<
FunctionCallContent
> functionCallContents, int iteration, int consecutiveErrorCount,
1013
Dictionary<string, AITool>? toolMap, List<
FunctionCallContent
> callContents,
1016
var
callContent = callContents[functionCallIndex];
1228
/// 2. Recreate <see cref="
FunctionCallContent
"/> for any <see cref="FunctionApprovalResponseContent"/> that haven't been executed yet.
1406
/// Extracts the <see cref="
FunctionCallContent
"/> from the provided <see cref="FunctionApprovalResponseContent"/> to recreate the original function call messages.
1407
/// The output messages tries to mimic the original messages that contained the <see cref="
FunctionCallContent
"/>, e.g. if the <see cref="
FunctionCallContent
"/>
1408
/// had been split into separate messages, this method will recreate similarly split messages, each with their own <see cref="
FunctionCallContent
"/>.
1466
/// Takes the <see cref="
FunctionCallContent
"/> from the <paramref name="resultWithRequestMessage"/> and wraps it in a <see cref="ChatMessage"/>
1467
/// using the same message id that the <see cref="
FunctionCallContent
"/> was originally returned with from the downstream <see cref="IChatClient"/>.
1483
List<
FunctionCallContent
>? functionCallContents,
1499
var
fcc = functionCallContents![lastApprovalCheckedFCCIndex];
1515
/// Replaces all <see cref="
FunctionCallContent
"/> with <see cref="FunctionApprovalRequestContent"/> and ouputs a new list if any of them were replaced.
1517
/// <returns>true if any <see cref="
FunctionCallContent
"/> was replaced, false otherwise.</returns>
1526
if (content[i] is
FunctionCallContent
fcc)
1538
/// Replaces all <see cref="
FunctionCallContent
"/> from <paramref name="messages"/> with <see cref="FunctionApprovalRequestContent"/>
1557
if (content[j] is
FunctionCallContent
functionCall)
1592
var
functionCall = (
FunctionCallContent
)message.Contents[contentIndex];
1611
/// Execute the provided <see cref="FunctionApprovalResponseContent"/> and return the resulting <see cref="
FunctionCallContent
"/>
1666
internal FunctionInvocationResult(bool terminate, FunctionInvocationStatus status,
FunctionCallContent
callContent, object? result, Exception? exception)
1679
public
FunctionCallContent
CallContent { get; }
ChatCompletion\ImageGeneratingChatClient.cs (1)
327
if (content is
FunctionCallContent
functionCall &&
ChatCompletion\OpenTelemetryChatClient.cs (1)
257
case
FunctionCallContent
fcc:
ChatReduction\MessageCountingChatReducer.cs (1)
56
else if (!message.Contents.Any(m => m is
FunctionCallContent
or FunctionResultContent))
ChatReduction\SummarizingChatReducer.cs (1)
208
is
FunctionCallContent
Microsoft.Extensions.AI.Abstractions (11)
Contents\AIContent.cs (1)
13
[JsonDerivedType(typeof(
FunctionCallContent
), typeDiscriminator: "functionCall")]
Contents\FunctionApprovalRequestContent.cs (2)
24
public FunctionApprovalRequestContent(string id,
FunctionCallContent
functionCall)
33
public
FunctionCallContent
FunctionCall { get; }
Contents\FunctionApprovalResponseContent.cs (2)
25
public FunctionApprovalResponseContent(string id, bool approved,
FunctionCallContent
functionCall)
40
public
FunctionCallContent
FunctionCall { get; }
Contents\FunctionCallContent.cs (4)
20
/// Initializes a new instance of the <see cref="
FunctionCallContent
"/> class.
60
/// Creates a new instance of <see cref="
FunctionCallContent
"/> parsing arguments using a specified encoding and parser.
67
/// <returns>A new instance of <see cref="
FunctionCallContent
"/> containing the parse result.</returns>
72
public static
FunctionCallContent
CreateFromParsedArguments<TEncoding>(
Contents\FunctionResultContent.cs (2)
38
/// If this is the result for a <see cref="
FunctionCallContent
"/>, this property should contain the same
39
/// <see cref="
FunctionCallContent
.CallId"/> value.
Microsoft.Extensions.AI.Abstractions.Tests (26)
AssertExtensions.cs (3)
38
if (expectedItem is
FunctionCallContent
expectedFunctionCall)
40
var
chatFunctionCall = (
FunctionCallContent
)chatItem;
ChatCompletion\ChatMessageTests.cs (2)
326
var
functionCallContent = deserializedMessage.Contents[4] as
FunctionCallContent
;
ChatCompletion\ChatResponseUpdateTests.cs (2)
148
Assert.IsType<
FunctionCallContent
>(result.Contents[2]);
149
Assert.Equal("fc1", ((
FunctionCallContent
)result.Contents[2]).Name);
Contents\FunctionApprovalRequestContentTests.cs (3)
16
FunctionCallContent
functionCall = new("FCC1", "TestFunction");
31
FunctionCallContent
functionCall = new("FCC1", "TestFunction");
45
FunctionCallContent
functionCall = new("FCC1", "TestFunction");
Contents\FunctionApprovalResponseContentTests.cs (2)
15
FunctionCallContent
functionCall = new("FCC1", "TestFunction");
30
FunctionCallContent
functionCall = new("FCC1", "TestFunction");
Contents\FunctionCallContentTests.cs (14)
21
FunctionCallContent
c = new("callId1", "name");
38
FunctionCallContent
c = new("id", "name", args);
51
FunctionCallContent
c = new("callId1", "name");
81
var
sut = new FunctionCallContent("callId1", "functionName", new Dictionary<string, object?> { ["key"] = "value" }) { Exception = ex };
85
var
deserializedSut = JsonSerializer.Deserialize<
FunctionCallContent
>(json, TestJsonSerializerContext.Default.Options);
261
var
content =
FunctionCallContent
.CreateFromParsedArguments(
306
var
content =
FunctionCallContent
.CreateFromParsedArguments(exc, "callId", "functionName", ThrowingParser);
320
Assert.Throws<ArgumentNullException>("encodedArguments", () =>
FunctionCallContent
.CreateFromParsedArguments((string)null!, "callId", "functionName", _ => null));
321
Assert.Throws<ArgumentNullException>("callId", () =>
FunctionCallContent
.CreateFromParsedArguments("{}", null!, "functionName", _ => null));
322
Assert.Throws<ArgumentNullException>("name", () =>
FunctionCallContent
.CreateFromParsedArguments("{}", "callId", null!, _ => null));
323
Assert.Throws<ArgumentNullException>("argumentParser", () =>
FunctionCallContent
.CreateFromParsedArguments("{}", "callId", "functionName", null!));
Microsoft.Extensions.AI.AzureAIInference (5)
AzureAIInferenceChatClient.cs (5)
108
FunctionCallContent
callContent = ParseCallContentFromJsonString(ftc.Arguments, toolCall.Id, ftc.Name);
235
FunctionCallContent
callContent = ParseCallContentFromJsonString(
484
if (content is
FunctionCallContent
{ CallId: not null } callRequest)
548
private static
FunctionCallContent
ParseCallContentFromJsonString(string json, string callId, string name) =>
549
FunctionCallContent
.CreateFromParsedArguments(json, callId, name,
Microsoft.Extensions.AI.AzureAIInference.Tests (7)
AzureAIInferenceChatClientTests.cs (4)
1267
FunctionCallContent
fcc = Assert.IsType<
FunctionCallContent
>(response.Messages.Single().Contents[0]);
1358
FunctionCallContent
fcc = Assert.IsType<
FunctionCallContent
>(Assert.Single(updates[updates.Count - 1].Contents));
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (3)
38
if (expectedItem is
FunctionCallContent
expectedFunctionCall)
40
var
chatFunctionCall = (
FunctionCallContent
)chatItem;
Microsoft.Extensions.AI.Evaluation.Quality (13)
ChatResponseExtensions.cs (3)
31
if (content is
FunctionCallContent
or FunctionResultContent)
34
content is
FunctionCallContent
? typeof(
FunctionCallContent
) : typeof(FunctionResultContent);
IntentResolutionEvaluator.cs (2)
120
IEnumerable<
FunctionCallContent
> toolCalls =
121
modelResponse.Messages.SelectMany(m => m.Contents).OfType<
FunctionCallContent
>();
TaskAdherenceEvaluator.cs (2)
119
IEnumerable<
FunctionCallContent
> toolCalls =
120
modelResponse.Messages.SelectMany(m => m.Contents).OfType<
FunctionCallContent
>();
ToolCallAccuracyEvaluator.cs (4)
21
/// (i.e., <see cref="
FunctionCallContent
"/>s) present in the supplied response to assess the relevance of these tool
99
IEnumerable<
FunctionCallContent
> toolCalls =
100
modelResponse.Messages.SelectMany(m => m.Contents).OfType<
FunctionCallContent
>();
105
EvaluationDiagnostic.Error($"The {nameof(modelResponse)} supplied for evaluation did not contain any tool calls (i.e., {nameof(
FunctionCallContent
)}s)."));
ToolCallAccuracyEvaluatorContext.cs (2)
17
/// (i.e., <see cref="
FunctionCallContent
"/>s) present in the supplied response to assess the relevance of these tool
81
/// (i.e., <see cref="
FunctionCallContent
"/>s) present in the supplied response to assess the relevance of these
Microsoft.Extensions.AI.Integration.Tests (1)
PromptBasedFunctionCallingChatClient.cs (1)
74
else if (message.Contents[itemIndex] is
FunctionCallContent
fcc)
Microsoft.Extensions.AI.OpenAI (17)
MicrosoftExtensionsAIChatExtensions.cs (3)
70
.OfType<
FunctionCallContent
>().Select(c => ChatToolCall.CreateFunctionToolCall(c.CallId, c.Name,
150
var toolCallUpdates = update.Contents.OfType<
FunctionCallContent
>().Select((fcc, index) =>
191
var
fcc = OpenAIClientExtensions.ParseCallContent(toolCall.FunctionArguments, toolCall.Id, toolCall.FunctionName);
OpenAIAssistantsChatClient.cs (1)
188
var
fcc = OpenAIClientExtensions.ParseCallContent(
OpenAIChatClient.cs (3)
200
case
FunctionCallContent
fc:
431
var
callContent = OpenAIClientExtensions.ParseCallContent(
497
var
callContent = OpenAIClientExtensions.ParseCallContent(toolCall.FunctionArguments, toolCall.Id, toolCall.FunctionName);
OpenAIClientExtensions.cs (8)
196
/// <summary>Creates a new instance of <see cref="
FunctionCallContent
"/> parsing arguments using a specified encoding and parser.</summary>
200
/// <returns>A new instance of <see cref="
FunctionCallContent
"/> containing the parse result.</returns>
203
internal static
FunctionCallContent
ParseCallContent(string json, string callId, string name) =>
204
FunctionCallContent
.CreateFromParsedArguments(json, callId, name,
207
/// <summary>Creates a new instance of <see cref="
FunctionCallContent
"/> parsing arguments using a specified encoding and parser.</summary>
211
/// <returns>A new instance of <see cref="
FunctionCallContent
"/> containing the parse result.</returns>
214
internal static
FunctionCallContent
ParseCallContent(BinaryData utf8json, string callId, string name) =>
215
FunctionCallContent
.CreateFromParsedArguments(utf8json, callId, name,
OpenAIResponsesChatClient.cs (2)
207
var
fcc = OpenAIClientExtensions.ParseCallContent(functionCall.FunctionArguments, functionCall.CallId, functionCall.FunctionName);
1048
case
FunctionCallContent
callContent:
Microsoft.Extensions.AI.OpenAI.Tests (14)
OpenAIChatClientTests.cs (4)
1166
FunctionCallContent
fcc = Assert.IsType<
FunctionCallContent
>(response.Messages.Single().Contents[0]);
1345
FunctionCallContent
fcc = Assert.IsType<
FunctionCallContent
>(Assert.Single(updates[updates.Count - 1].Contents));
OpenAIConversionTests.cs (7)
622
Assert.Equal("functionName", Assert.IsType<
FunctionCallContent
>(message.Contents[2], exactMatch: false).Name);
653
Assert.Equal("functionName", Assert.IsType<
FunctionCallContent
>(message.Contents[2], exactMatch: false).Name);
765
var
functionCall = message.Contents.OfType<
FunctionCallContent
>().FirstOrDefault();
1040
var
functionCallContent = new FunctionCallContent("call-123", "GetWeather", new Dictionary<string, object?>
1078
var
functionCall1 = new FunctionCallContent("call-1", "Function1", new Dictionary<string, object?> { ["param1"] = "value1" });
1079
var
functionCall2 = new FunctionCallContent("call-2", "Function2", new Dictionary<string, object?> { ["param2"] = "value2" });
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (3)
38
if (expectedItem is
FunctionCallContent
expectedFunctionCall)
40
var
chatFunctionCall = (
FunctionCallContent
)chatItem;
Microsoft.Extensions.AI.Tests (27)
ChatCompletion\DistributedCachingChatClientTest.cs (8)
347
c => Assert.IsType<
FunctionCallContent
>(c),
355
c => Assert.IsType<
FunctionCallContent
>(Assert.Single(c.Contents)),
818
if (expectedItem is
FunctionCallContent
expectedFcc)
820
var
actualFcc = (
FunctionCallContent
)actualItem;
852
if (expectedItemItem is
FunctionCallContent
expectedFcc)
854
var
actualFcc = (
FunctionCallContent
)actualItemItem;
ChatCompletion\FunctionInvocationContextTests.cs (1)
55
FunctionCallContent
callContent = new(string.Empty, string.Empty, new Dictionary<string, object?>());
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (2)
727
var
functionCall = update.Contents.OfType<
FunctionCallContent
>().First();
ChatCompletion\FunctionInvokingChatClientTests.cs (6)
569
Assert.Contains(content, c => c is
FunctionCallContent
or FunctionResultContent);
785
c => Assert.Equal("Input 1", Assert.IsType<
FunctionCallContent
>(c).Arguments!["text"]),
786
c => Assert.Equal("Input 2", Assert.IsType<
FunctionCallContent
>(c).Arguments!["text"])),
826
Assert.IsType<
FunctionCallContent
>(Assert.Single(response.Messages[0].Contents));
828
Assert.IsType<
FunctionCallContent
>(Assert.Single(response.Messages[2].Contents));
1211
if (!chatContents.Any(m => m.Contents.OfType<
FunctionCallContent
>().Any()))
ChatReduction\MessageCountingChatReducerTests.cs (2)
143
Assert.DoesNotContain(m.Contents, c => c is
FunctionCallContent
);
150
Assert.DoesNotContain(m.Contents, c => c is
FunctionCallContent
);
ChatReduction\SummarizingChatReducerTests.cs (5)
107
Assert.DoesNotContain(msgs, m => m.Contents.Any(c => c is
FunctionCallContent
or FunctionResultContent or TestUserInputRequestContent or TestUserInputResponseContent));
122
Assert.Contains(m.Contents, c => c is
FunctionCallContent
);
203
Assert.DoesNotContain(msgList, m => m.Contents.Any(c => c is
FunctionCallContent
or FunctionResultContent or TestUserInputRequestContent or TestUserInputResponseContent));
219
Assert.Contains(resultList, m => m.Contents.Any(c => c is
FunctionCallContent
fc && fc.CallId == "call2"));
221
Assert.DoesNotContain(resultList, m => m.Contents.Any(c => c is
FunctionCallContent
fc && fc.CallId == "call1"));
test\Libraries\Microsoft.Extensions.AI.Abstractions.Tests\AssertExtensions.cs (3)
38
if (expectedItem is
FunctionCallContent
expectedFunctionCall)
40
var
chatFunctionCall = (
FunctionCallContent
)chatItem;