86 instantiations of FunctionInvokingChatClient
Microsoft.Extensions.AI (1)
ChatCompletion\FunctionInvokingChatClientBuilderExtensions.cs (1)
36var chatClient = new FunctionInvokingChatClient(innerClient, loggerFactory, services);
Microsoft.Extensions.AI.Integration.Tests (11)
ChatClientIntegrationTests.cs (11)
224using var chatClient = new FunctionInvokingChatClient( 248using var chatClient = new FunctionInvokingChatClient(ChatClient); 263using var chatClient = new FunctionInvokingChatClient(ChatClient); 291using var chatClient = new FunctionInvokingChatClient( 323using var chatClient = new FunctionInvokingChatClient( 355using var chatClient = new FunctionInvokingChatClient( 412using var chatClient = new FunctionInvokingChatClient( 570using var chatClient = new FunctionInvokingChatClient(ChatClient); 603using var chatClient = new FunctionInvokingChatClient(ChatClient); 623using var chatClient = new FunctionInvokingChatClient(ChatClient); 1064using var chatClient = new FunctionInvokingChatClient(ChatClient);
Microsoft.Extensions.AI.OpenAI.Tests (10)
OpenAIResponseClientIntegrationTests.cs (10)
386using var chatClient = new FunctionInvokingChatClient(ChatClient); 480using var chatClient = new FunctionInvokingChatClient(ChatClient); 570using var client = new FunctionInvokingChatClient(ChatClient); 594using var client = new FunctionInvokingChatClient(ChatClient); 618using var client = new FunctionInvokingChatClient(ChatClient); 643using var client = new FunctionInvokingChatClient(ChatClient); 671using var client = new FunctionInvokingChatClient(ChatClient); 861using var client = new FunctionInvokingChatClient(ChatClient); 965using var client = new FunctionInvokingChatClient(ChatClient); 1008using var client = new FunctionInvokingChatClient(ChatClient);
Microsoft.Extensions.AI.Tests (64)
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (10)
911.Use(s => new FunctionInvokingChatClient(s)) 993.Use(s => new FunctionInvokingChatClient(s)) 1435using var service = new FunctionInvokingChatClient(innerClient); 1446using var service = new FunctionInvokingChatClient(innerClient); 1492using var service = new FunctionInvokingChatClient(innerClient); 1503using var service = new FunctionInvokingChatClient(innerClient); 1526Func<ChatClientBuilder, ChatClientBuilder> configurePipeline = b => b.Use(s => new FunctionInvokingChatClient(s)); 1602Func<ChatClientBuilder, ChatClientBuilder> configurePipeline = b => b.Use(s => new FunctionInvokingChatClient(s)); 2016configurePipeline ??= b => b.Use(s => new FunctionInvokingChatClient(s) { AdditionalTools = additionalTools }); 2104configurePipeline ??= b => b.Use(s => new FunctionInvokingChatClient(s) { AdditionalTools = additionalTools });
ChatCompletion\FunctionInvokingChatClientTests.cs (54)
27Assert.Throws<ArgumentNullException>("innerClient", () => new FunctionInvokingChatClient(null!)); 35using FunctionInvokingChatClient client = new(innerClient); 49using FunctionInvokingChatClient client = new(innerClient); 218s => new FunctionInvokingChatClient(s) { AllowConcurrentInvocation = concurrentInvocation }); 266s => new FunctionInvokingChatClient(s) { AllowConcurrentInvocation = true }); 340s => new FunctionInvokingChatClient(s) 402using var client = new FunctionInvokingChatClient(innerClient) 483using var client = new FunctionInvokingChatClient(innerClient) 564using var client = new FunctionInvokingChatClient(innerClient) 673using var client = new FunctionInvokingChatClient(innerClient) 717using var client = new FunctionInvokingChatClient(innerClient) 770using var client = new FunctionInvokingChatClient(innerClient) 809using var client = new FunctionInvokingChatClient(innerClient) 1027s => new FunctionInvokingChatClient(s) { IncludeDetailedErrors = detailedErrors }); 1054b.Use((c, services) => new FunctionInvokingChatClient(c, services.GetRequiredService<ILoggerFactory>())); 1111new FunctionInvokingChatClient(new OpenTelemetryChatClient(c, sourceName: sourceName) { EnableSensitiveData = enableSensitiveData })); 1210using var client = new FunctionInvokingChatClient(innerClient); 1252using var client = new FunctionInvokingChatClient(innerClient); 1373using var chatClient = new FunctionInvokingChatClient(innerChatClient); 1506s => new FunctionInvokingChatClient(s) { AllowConcurrentInvocation = true }); 1538using var client = new FunctionInvokingChatClient(innerClient); 1678s => new FunctionInvokingChatClient(s) { TerminateOnUnknownCalls = terminateOnUnknown }); 1741s => new FunctionInvokingChatClient(s) { TerminateOnUnknownCalls = terminateOnUnknown }); 1772Func<ChatClientBuilder, ChatClientBuilder> configure = b => b.Use(s => new FunctionInvokingChatClient(s) { TerminateOnUnknownCalls = false }); 1777configure = b => b.Use(s => new FunctionInvokingChatClient(s) { TerminateOnUnknownCalls = true }); 1805using var chatClient = new FunctionInvokingChatClient(innerChatClient); 1846new FunctionInvokingChatClient(new OpenTelemetryChatClient(c, sourceName: clientSourceName))); 1901.Use(c => new FunctionInvokingChatClient( 1957new FunctionInvokingChatClient(new OpenTelemetryChatClient(c, sourceName: clientSourceName))); 1999new FunctionInvokingChatClient(new OpenTelemetryChatClient(c, sourceName: clientSourceName))); 2121new FunctionInvokingChatClient(new OpenTelemetryChatClient(c, sourceName: clientSourceName))); 2206using var client = new FunctionInvokingChatClient(innerClient); 2277using var client = new FunctionInvokingChatClient(innerClient); 2324using var client1 = new FunctionInvokingChatClient(innerClient); 2325using var client2 = new FunctionInvokingChatClient(client1); 2582using var client = new FunctionInvokingChatClient(innerClient); 2676using var client = new FunctionInvokingChatClient(innerClient); 2781using var client = new FunctionInvokingChatClient(innerClient); 2883using var client = new FunctionInvokingChatClient(innerClient) 2983using var client = new FunctionInvokingChatClient(innerClient) 3069using var client = new FunctionInvokingChatClient(innerClient); 3161using var client = new FunctionInvokingChatClient(innerClient); 3262using var client = new FunctionInvokingChatClient(innerClient); 3368using var client = new FunctionInvokingChatClient(innerClient); 3417b.Use((c, services) => new FunctionInvokingChatClient(c, services.GetRequiredService<ILoggerFactory>())); 3449b.Use((c, services) => new FunctionInvokingChatClient(c, services.GetRequiredService<ILoggerFactory>())); 3482b.Use((c, services) => new FunctionInvokingChatClient(c, services.GetRequiredService<ILoggerFactory>())); 3514b.Use((c, services) => new FunctionInvokingChatClient(c, services.GetRequiredService<ILoggerFactory>())); 3552b.Use((c, services) => new FunctionInvokingChatClient(c, services.GetRequiredService<ILoggerFactory>())); 3574using var client = new FunctionInvokingChatClient(innerClient, loggerFactory); 3611using var client = new FunctionInvokingChatClient(innerClient, loggerFactory); 3674using var client = new FunctionInvokingChatClient(innerClient); 3751using var client = new FunctionInvokingChatClient(innerClient); 3814using var client = new FunctionInvokingChatClient(innerClient);
113 references to FunctionInvokingChatClient
Microsoft.Extensions.AI (30)
ChatCompletion\FunctionInvocationContext.cs (1)
58/// The initial request to the client that passes along the chat contents provided to the <see cref="FunctionInvokingChatClient"/>
ChatCompletion\FunctionInvokingChatClient.cs (14)
38/// <see cref="FunctionInvokingChatClient"/> will not attempt to invoke it, and instead allow that <see cref="FunctionCallContent"/> 43/// Further, if a requested function is an <see cref="ApprovalRequiredAIFunction"/>, the <see cref="FunctionInvokingChatClient"/> will not 47/// request. The <see cref="FunctionInvokingChatClient"/> will then process that approval response and invoke the function as appropriate. 56/// A <see cref="FunctionInvokingChatClient"/> instance is thread-safe for concurrent use so long as the 72/// <summary>Gets the <see cref="IServiceProvider"/> specified when constructing the <see cref="FunctionInvokingChatClient"/>, if any.</summary> 83/// Initializes a new instance of the <see cref="FunctionInvokingChatClient"/> class. 91_logger = (ILogger?)loggerFactory?.CreateLogger<FunctionInvokingChatClient>() ?? NullLogger.Instance; 172/// Each request to this <see cref="FunctionInvokingChatClient"/> might end up making 206/// When function invocations fail with an exception, the <see cref="FunctionInvokingChatClient"/> 233/// These will not impact the requests sent by the <see cref="FunctionInvokingChatClient"/>, which will pass through the 244/// that isn't available to the <see cref="FunctionInvokingChatClient"/> is received; <see langword="false"/> to create and send a 249/// When <see langword="false"/>, call requests to any tools that aren't available to the <see cref="FunctionInvokingChatClient"/> 255/// that the <see cref="FunctionInvokingChatClient"/> doesn't know about, it will terminate the function calling loop and return 259/// <see cref="AITool"/>s that the <see cref="FunctionInvokingChatClient"/> is aware of (for example, because they're in
ChatCompletion\FunctionInvokingChatClientBuilderExtensions.cs (5)
12/// Provides extension methods for attaching a <see cref="FunctionInvokingChatClient"/> to a chat pipeline. 19/// <remarks>This works by adding an instance of <see cref="FunctionInvokingChatClient"/> with default options.</remarks> 22/// <param name="configure">An optional callback that can be used to configure the <see cref="FunctionInvokingChatClient"/> instance.</param> 28Action<FunctionInvokingChatClient>? configure = null) 36var chatClient = new FunctionInvokingChatClient(innerClient, loggerFactory, services);
ChatCompletion\ImageGeneratingChatClient.cs (3)
373var callId = FunctionInvokingChatClient.CurrentContext?.CallContent.CallId; 408var callId = FunctionInvokingChatClient.CurrentContext?.CallContent.CallId; 426var callId = FunctionInvokingChatClient.CurrentContext?.CallContent.CallId;
Common\FunctionInvocationHelpers.cs (1)
10/// Internal helper methods shared between <see cref="FunctionInvokingChatClient"/> and <see cref="FunctionInvokingRealtimeClientSession"/>.
Common\FunctionInvocationLogger.cs (1)
10/// Internal logger for function invocation operations shared between <see cref="FunctionInvokingChatClient"/> and <see cref="FunctionInvokingRealtimeClientSession"/>.
Common\FunctionInvocationProcessor.cs (3)
12using FunctionInvocationResult = Microsoft.Extensions.AI.FunctionInvokingChatClient.FunctionInvocationResult; 13using FunctionInvocationStatus = Microsoft.Extensions.AI.FunctionInvokingChatClient.FunctionInvocationStatus; 19/// Used by both <see cref="FunctionInvokingChatClient"/> and <see cref="FunctionInvokingRealtimeClientSession"/>.
Realtime\FunctionInvokingRealtimeClientSession.cs (2)
14using FunctionInvocationResult = Microsoft.Extensions.AI.FunctionInvokingChatClient.FunctionInvocationResult; 15using FunctionInvocationStatus = Microsoft.Extensions.AI.FunctionInvokingChatClient.FunctionInvocationStatus;
Microsoft.Extensions.AI.Integration.Tests (11)
ChatClientIntegrationTests.cs (11)
224using var chatClient = new FunctionInvokingChatClient( 248using var chatClient = new FunctionInvokingChatClient(ChatClient); 263using var chatClient = new FunctionInvokingChatClient(ChatClient); 291using var chatClient = new FunctionInvokingChatClient( 323using var chatClient = new FunctionInvokingChatClient( 355using var chatClient = new FunctionInvokingChatClient( 412using var chatClient = new FunctionInvokingChatClient( 570using var chatClient = new FunctionInvokingChatClient(ChatClient); 603using var chatClient = new FunctionInvokingChatClient(ChatClient); 623using var chatClient = new FunctionInvokingChatClient(ChatClient); 1064using var chatClient = new FunctionInvokingChatClient(ChatClient);
Microsoft.Extensions.AI.OpenAI.Tests (16)
OpenAIChatClientTests.cs (4)
72Assert.NotNull(pipeline.GetService<FunctionInvokingChatClient>()); 78Assert.IsType<FunctionInvokingChatClient>(pipeline.GetService<IChatClient>()); 97Assert.NotNull(pipeline.GetService<FunctionInvokingChatClient>()); 103Assert.IsType<FunctionInvokingChatClient>(pipeline.GetService<IChatClient>());
OpenAIResponseClientIntegrationTests.cs (10)
386using var chatClient = new FunctionInvokingChatClient(ChatClient); 480using var chatClient = new FunctionInvokingChatClient(ChatClient); 570using var client = new FunctionInvokingChatClient(ChatClient); 594using var client = new FunctionInvokingChatClient(ChatClient); 618using var client = new FunctionInvokingChatClient(ChatClient); 643using var client = new FunctionInvokingChatClient(ChatClient); 671using var client = new FunctionInvokingChatClient(ChatClient); 861using var client = new FunctionInvokingChatClient(ChatClient); 965using var client = new FunctionInvokingChatClient(ChatClient); 1008using var client = new FunctionInvokingChatClient(ChatClient);
OpenAIResponseClientTests.cs (2)
66Assert.NotNull(pipeline.GetService<FunctionInvokingChatClient>()); 72Assert.IsType<FunctionInvokingChatClient>(pipeline.GetService<IChatClient>());
Microsoft.Extensions.AI.Tests (56)
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (6)
1404FunctionInvokingChatClient.CurrentContext!.Terminate = true; 1435using var service = new FunctionInvokingChatClient(innerClient); 1446using var service = new FunctionInvokingChatClient(innerClient); 1461FunctionInvokingChatClient.CurrentContext!.Terminate = true; 1492using var service = new FunctionInvokingChatClient(innerClient); 1503using var service = new FunctionInvokingChatClient(innerClient);
ChatCompletion\FunctionInvokingChatClientTests.cs (50)
35using FunctionInvokingChatClient client = new(innerClient); 49using FunctionInvokingChatClient client = new(innerClient); 402using var client = new FunctionInvokingChatClient(innerClient) 483using var client = new FunctionInvokingChatClient(innerClient) 564using var client = new FunctionInvokingChatClient(innerClient) 673using var client = new FunctionInvokingChatClient(innerClient) 717using var client = new FunctionInvokingChatClient(innerClient) 770using var client = new FunctionInvokingChatClient(innerClient) 809using var client = new FunctionInvokingChatClient(innerClient) 1210using var client = new FunctionInvokingChatClient(innerClient); 1252using var client = new FunctionInvokingChatClient(innerClient); 1274var context = FunctionInvokingChatClient.CurrentContext!; 1314Assert.Null(FunctionInvokingChatClient.CurrentContext); 1351FunctionInvokingChatClient.CurrentContext!.Terminate = true; 1373using var chatClient = new FunctionInvokingChatClient(innerChatClient); 1403FunctionInvokingChatClient.CurrentContext!.Terminate = true; 1438FunctionInvokingChatClient.CurrentContext!.Terminate = true; 1480FunctionInvokingChatClient.CurrentContext!.Terminate = true; 1523FunctionInvokingChatClient.CurrentContext!.Terminate = true; 1538using var client = new FunctionInvokingChatClient(innerClient); 1544Assert.Null(FunctionInvokingChatClient.CurrentContext); 1805using var chatClient = new FunctionInvokingChatClient(innerChatClient); 2206using var client = new FunctionInvokingChatClient(innerClient); 2277using var client = new FunctionInvokingChatClient(innerClient); 2324using var client1 = new FunctionInvokingChatClient(innerClient); 2325using var client2 = new FunctionInvokingChatClient(client1); 2519var context = FunctionInvokingChatClient.CurrentContext!; 2582using var client = new FunctionInvokingChatClient(innerClient); 2613var context = FunctionInvokingChatClient.CurrentContext!; 2676using var client = new FunctionInvokingChatClient(innerClient); 2715var context = FunctionInvokingChatClient.CurrentContext!; 2781using var client = new FunctionInvokingChatClient(innerClient); 2819var context = FunctionInvokingChatClient.CurrentContext!; 2883using var client = new FunctionInvokingChatClient(innerClient) 2923var context = FunctionInvokingChatClient.CurrentContext!; 2983using var client = new FunctionInvokingChatClient(innerClient) 3069using var client = new FunctionInvokingChatClient(innerClient); 3099var context = FunctionInvokingChatClient.CurrentContext!; 3161using var client = new FunctionInvokingChatClient(innerClient); 3200var context = FunctionInvokingChatClient.CurrentContext!; 3262using var client = new FunctionInvokingChatClient(innerClient); 3303var context = FunctionInvokingChatClient.CurrentContext!; 3368using var client = new FunctionInvokingChatClient(innerClient); 3468var context = FunctionInvokingChatClient.CurrentContext!; 3501FunctionInvokingChatClient.CurrentContext!.Terminate = true; 3574using var client = new FunctionInvokingChatClient(innerClient, loggerFactory); 3611using var client = new FunctionInvokingChatClient(innerClient, loggerFactory); 3674using var client = new FunctionInvokingChatClient(innerClient); 3751using var client = new FunctionInvokingChatClient(innerClient); 3814using var client = new FunctionInvokingChatClient(innerClient);