45 instantiations of FunctionCallContent
Microsoft.Extensions.AI.Abstractions (1)
Contents\FunctionCallContent.cs (1)
93return new FunctionCallContent(callId, name, arguments)
Microsoft.Extensions.AI.Abstractions.Tests (11)
ChatCompletion\ChatCompletionTests.cs (1)
251new FunctionCallContent("call123", "name"),
ChatCompletion\ChatMessageTests.cs (3)
129new FunctionCallContent("callId1", "fc1"), 168new FunctionCallContent("callId1", "fc1"), 288new FunctionCallContent("function-id", "plugin-name-function-name", new Dictionary<string, object?> { ["parameter"] = "argument" }),
ChatCompletion\StreamingChatCompletionUpdateTests.cs (3)
96new FunctionCallContent("callId1", "fc1"), 141new FunctionCallContent("callId1", "fc1"), 173new FunctionCallContent("callId1", "fc1"),
Contents\FunctionCallContentTests..cs (4)
21FunctionCallContent c = new("callId1", "name"); 38FunctionCallContent c = new("id", "name", args); 51FunctionCallContent c = new("callId1", "name"); 83var sut = new FunctionCallContent("callId1", "functionName", new Dictionary<string, object?> { ["key"] = "value" }) { Exception = ex };
Microsoft.Extensions.AI.Integration.Tests (1)
PromptBasedFunctionCallingChatClient.cs (1)
113message.Contents.Add(new FunctionCallContent(id, toolCallParsed.Name!, toolCallParsed.Arguments is { } args ? new ReadOnlyDictionary<string, object?>(args) : null));
Microsoft.Extensions.AI.Ollama (1)
OllamaChatClient.cs (1)
242contents.Add(new FunctionCallContent(id, function.Name, function.Arguments));
Microsoft.Extensions.AI.Ollama.Tests (1)
OllamaChatClientTests.cs (1)
460new(ChatRole.Assistant, [new FunctionCallContent("abcd1234", "GetPersonAge", new Dictionary<string, object?> { ["personName"] = "Alice" })]),
Microsoft.Extensions.AI.OpenAI.Tests (2)
OpenAIChatClientTests.cs (2)
892new FunctionCallContent("12345", "SayHello"), 893new FunctionCallContent("12346", "SayHi"),
Microsoft.Extensions.AI.Tests (28)
ChatCompletion\DistributedCachingChatClientTest.cs (1)
46Contents = [new FunctionCallContent("someCallId", "functionName", new Dictionary<string, object?>
ChatCompletion\FunctionInvokingChatClientTests.cs (26)
58new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 60new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 62new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]), 91new FunctionCallContent("callId1", "Func1"), 92new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 34 } }), 93new FunctionCallContent("callId3", "Func2", arguments: new Dictionary<string, object?> { { "i", 56 } }), 103new FunctionCallContent("callId4", "Func2", arguments: new Dictionary<string, object?> { { "i", 78 } }), 104new FunctionCallContent("callId5", "Func1") 143new FunctionCallContent("callId1", "Func", arguments: new Dictionary<string, object?> { { "arg", "hello" } }), 144new FunctionCallContent("callId2", "Func", arguments: new Dictionary<string, object?> { { "arg", "world" } }), 186new FunctionCallContent("callId1", "Func", arguments: new Dictionary<string, object?> { { "arg", "hello" } }), 187new FunctionCallContent("callId2", "Func", arguments: new Dictionary<string, object?> { { "arg", "world" } }), 220new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 222new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 224new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]), 272new ChatMessage(ChatRole.Assistant, [new TextContent("extra"), new FunctionCallContent("callId1", "Func1"), new TextContent("stuff")]), 274new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 276new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } }), new TextContent("more")]), 295new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 297new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId2", "Func2", arguments: new Dictionary<string, object?> { { "i", 42 } })]), 299new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId3", "VoidReturn", arguments: new Dictionary<string, object?> { { "i", 43 } })]), 338new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1")]), 358new(ChatRole.Assistant, [new FunctionCallContent("callId1", func1.Metadata.Name)]), 359new(ChatRole.Assistant, [new FunctionCallContent("callId2", func2.Metadata.Name)]), 397new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]), 453new ChatMessage(ChatRole.Assistant, [new FunctionCallContent("callId1", "Func1", new Dictionary<string, object?> { ["arg1"] = "value1" })]),
ChatCompletion\OpenTelemetryChatClientTests.cs (1)
102new(ChatRole.Assistant, [new FunctionCallContent("12345", "GetPersonName")]),
76 references to FunctionCallContent
Microsoft.Extensions.AI (14)
ChatCompletion\FunctionInvokingChatClient.cs (13)
25/// When this client receives a <see cref="FunctionCallContent"/> in a chat completion, it responds 138/// When the inner <see cref="IChatClient"/> returns <see cref="FunctionCallContent"/> to the 225FunctionCallContent[] functionCallContents = response.Message.Contents.OfType<FunctionCallContent>().ToArray(); 304List<FunctionCallContent> functionCallContents = []; 323functionCallContents.AddRange(update.Contents.OfType<FunctionCallContent>()); 331[] : update.Contents.Where(c => c is not FunctionCallContent).ToList(); 459IList<ChatMessage> chatMessages, ChatOptions options, IReadOnlyList<FunctionCallContent> functionCallContents, int iteration, CancellationToken cancellationToken) 519IList<ChatMessage> chatMessages, ChatOptions options, FunctionCallContent functionCallContent, 723FunctionCallContent functionCallContent, 735public FunctionCallContent CallContent { get; set; } 774internal FunctionInvocationResult(ContinueMode continueMode, FunctionStatus status, FunctionCallContent callContent, object? result, Exception? exception) 787public FunctionCallContent CallContent { get; }
ChatCompletion\OpenTelemetryChatClient.cs (1)
482var toolCalls = message.Contents.OfType<FunctionCallContent>().Select(fc => new ToolCall
Microsoft.Extensions.AI.Abstractions (7)
Contents\AIContent.cs (1)
12[JsonDerivedType(typeof(FunctionCallContent), typeDiscriminator: "functionCall")]
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> 68public static FunctionCallContent CreateFromParsedArguments<TEncoding>(
Contents\FunctionResultContent.cs (2)
40/// If this is the result for a <see cref="FunctionCallContent"/>, this property should contain the same 41/// <see cref="FunctionCallContent.CallId"/> value.
Microsoft.Extensions.AI.Abstractions.Tests (19)
ChatCompletion\ChatCompletionTests.cs (1)
288Assert.IsType<FunctionCallContent>(update1.Contents[0]);
ChatCompletion\ChatMessageTests.cs (2)
358var functionCallContent = deserializedMessage.Contents[6] as FunctionCallContent;
ChatCompletion\StreamingChatCompletionUpdateTests.cs (2)
198Assert.IsType<FunctionCallContent>(result.Contents[2]); 199Assert.Equal("fc1", ((FunctionCallContent)result.Contents[2]).Name);
Contents\FunctionCallContentTests..cs (14)
21FunctionCallContent c = new("callId1", "name"); 38FunctionCallContent c = new("id", "name", args); 51FunctionCallContent c = new("callId1", "name"); 83var sut = new FunctionCallContent("callId1", "functionName", new Dictionary<string, object?> { ["key"] = "value" }) { Exception = ex }; 87var deserializedSut = JsonSerializer.Deserialize<FunctionCallContent>(json, TestJsonSerializerContext.Default.Options); 275var content = FunctionCallContent.CreateFromParsedArguments( 320var content = FunctionCallContent.CreateFromParsedArguments(exc, "callId", "functionName", ThrowingParser); 334Assert.Throws<ArgumentNullException>("encodedArguments", () => FunctionCallContent.CreateFromParsedArguments((string)null!, "callId", "functionName", _ => null)); 335Assert.Throws<ArgumentNullException>("callId", () => FunctionCallContent.CreateFromParsedArguments("{}", null!, "functionName", _ => null)); 336Assert.Throws<ArgumentNullException>("name", () => FunctionCallContent.CreateFromParsedArguments("{}", "callId", null!, _ => null)); 337Assert.Throws<ArgumentNullException>("argumentParser", () => FunctionCallContent.CreateFromParsedArguments("{}", "callId", "functionName", null!));
Microsoft.Extensions.AI.AzureAIInference (5)
AzureAIInferenceChatClient.cs (5)
111FunctionCallContent callContent = ParseCallContentFromJsonString(ftc.Arguments, toolCall.Id, ftc.Name); 245FunctionCallContent callContent = ParseCallContentFromJsonString( 454if (content is FunctionCallContent { CallId: not null } callRequest) 499private static FunctionCallContent ParseCallContentFromJsonString(string json, string callId, string name) => 500FunctionCallContent.CreateFromParsedArguments(json, callId, name,
Microsoft.Extensions.AI.AzureAIInference.Tests (4)
AzureAIInferenceChatClientTests.cs (4)
528FunctionCallContent fcc = Assert.IsType<FunctionCallContent>(response.Message.Contents[0]); 623FunctionCallContent fcc = Assert.IsType<FunctionCallContent>(Assert.Single(updates[updates.Count - 1].Contents));
Microsoft.Extensions.AI.Integration.Tests (1)
PromptBasedFunctionCallingChatClient.cs (1)
70else if (message.Contents[itemIndex] is FunctionCallContent fcc)
Microsoft.Extensions.AI.Ollama (1)
OllamaChatClient.cs (1)
396case FunctionCallContent fcc:
Microsoft.Extensions.AI.Ollama.Tests (2)
OllamaChatClientTests.cs (2)
383FunctionCallContent fcc = Assert.IsType<FunctionCallContent>(response.Message.Contents[0]);
Microsoft.Extensions.AI.OpenAI (9)
OpenAIChatClient.cs (7)
142var callContent = ParseCallContentFromBinaryData(toolCall.FunctionArguments, toolCall.Id, toolCall.FunctionName); 334var callContent = ParseCallContentFromJsonString( 623if (content is FunctionCallContent { CallId: not null } callRequest) 675private static FunctionCallContent ParseCallContentFromJsonString(string json, string callId, string name) => 676FunctionCallContent.CreateFromParsedArguments(json, callId, name, 680private static FunctionCallContent ParseCallContentFromBinaryData(BinaryData ut8Json, string callId, string name) => 681FunctionCallContent.CreateFromParsedArguments(ut8Json, callId, name,
OpenAIRealtimeExtensions.cs (2)
119var functionCallContent = FunctionCallContent.CreateFromParsedArguments(
Microsoft.Extensions.AI.OpenAI.Tests (4)
OpenAIChatClientTests.cs (4)
676FunctionCallContent fcc = Assert.IsType<FunctionCallContent>(response.Message.Contents[0]); 776FunctionCallContent fcc = Assert.IsType<FunctionCallContent>(Assert.Single(updates[updates.Count - 1].Contents));
Microsoft.Extensions.AI.Tests (10)
ChatCompletion\FunctionInvokingChatClientTests.cs (10)
245Assert.Contains(content, c => c is FunctionCallContent or FunctionResultContent); 249Assert.All(content, c => Assert.False(c is FunctionCallContent or FunctionResultContent)); 313Assert.Contains(content, c => c is FunctionCallContent or FunctionResultContent); 317Assert.All(content, c => Assert.False(c is FunctionCallContent or FunctionResultContent)); 549if (expectedItem is FunctionCallContent expectedFunctionCall) 551var chatFunctionCall = (FunctionCallContent)chatItem; 616if (expectedItem is FunctionCallContent expectedFunctionCall) 618var chatFunctionCall = (FunctionCallContent)chatItem;