86 instantiations of FunctionInvokingChatClient
Microsoft.Extensions.AI (1)
ChatCompletion\FunctionInvokingChatClientBuilderExtensions.cs (1)
36
var chatClient = new
FunctionInvokingChatClient
(innerClient, loggerFactory, services);
Microsoft.Extensions.AI.Integration.Tests (11)
ChatClientIntegrationTests.cs (11)
224
using var chatClient = new
FunctionInvokingChatClient
(
248
using var chatClient = new
FunctionInvokingChatClient
(ChatClient);
263
using var chatClient = new
FunctionInvokingChatClient
(ChatClient);
291
using var chatClient = new
FunctionInvokingChatClient
(
323
using var chatClient = new
FunctionInvokingChatClient
(
355
using var chatClient = new
FunctionInvokingChatClient
(
412
using var chatClient = new
FunctionInvokingChatClient
(
570
using var chatClient = new
FunctionInvokingChatClient
(ChatClient);
603
using var chatClient = new
FunctionInvokingChatClient
(ChatClient);
623
using var chatClient = new
FunctionInvokingChatClient
(ChatClient);
1064
using var chatClient = new
FunctionInvokingChatClient
(ChatClient);
Microsoft.Extensions.AI.OpenAI.Tests (10)
OpenAIResponseClientIntegrationTests.cs (10)
386
using var chatClient = new
FunctionInvokingChatClient
(ChatClient);
480
using var chatClient = new
FunctionInvokingChatClient
(ChatClient);
570
using var client = new
FunctionInvokingChatClient
(ChatClient);
594
using var client = new
FunctionInvokingChatClient
(ChatClient);
618
using var client = new
FunctionInvokingChatClient
(ChatClient);
643
using var client = new
FunctionInvokingChatClient
(ChatClient);
671
using var client = new
FunctionInvokingChatClient
(ChatClient);
861
using var client = new
FunctionInvokingChatClient
(ChatClient);
965
using var client = new
FunctionInvokingChatClient
(ChatClient);
1008
using 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))
1435
using var service = new
FunctionInvokingChatClient
(innerClient);
1446
using var service = new
FunctionInvokingChatClient
(innerClient);
1492
using var service = new
FunctionInvokingChatClient
(innerClient);
1503
using var service = new
FunctionInvokingChatClient
(innerClient);
1526
Func<ChatClientBuilder, ChatClientBuilder> configurePipeline = b => b.Use(s => new
FunctionInvokingChatClient
(s));
1602
Func<ChatClientBuilder, ChatClientBuilder> configurePipeline = b => b.Use(s => new
FunctionInvokingChatClient
(s));
2016
configurePipeline ??= b => b.Use(s => new
FunctionInvokingChatClient
(s) { AdditionalTools = additionalTools });
2104
configurePipeline ??= b => b.Use(s => new
FunctionInvokingChatClient
(s) { AdditionalTools = additionalTools });
ChatCompletion\FunctionInvokingChatClientTests.cs (54)
27
Assert.Throws<ArgumentNullException>("innerClient", () => new
FunctionInvokingChatClient
(null!));
35
using FunctionInvokingChatClient client =
new
(innerClient);
49
using FunctionInvokingChatClient client =
new
(innerClient);
218
s => new
FunctionInvokingChatClient
(s) { AllowConcurrentInvocation = concurrentInvocation });
266
s => new
FunctionInvokingChatClient
(s) { AllowConcurrentInvocation = true });
340
s => new
FunctionInvokingChatClient
(s)
402
using var client = new
FunctionInvokingChatClient
(innerClient)
483
using var client = new
FunctionInvokingChatClient
(innerClient)
564
using var client = new
FunctionInvokingChatClient
(innerClient)
673
using var client = new
FunctionInvokingChatClient
(innerClient)
717
using var client = new
FunctionInvokingChatClient
(innerClient)
770
using var client = new
FunctionInvokingChatClient
(innerClient)
809
using var client = new
FunctionInvokingChatClient
(innerClient)
1027
s => new
FunctionInvokingChatClient
(s) { IncludeDetailedErrors = detailedErrors });
1054
b.Use((c, services) => new
FunctionInvokingChatClient
(c, services.GetRequiredService<ILoggerFactory>()));
1111
new
FunctionInvokingChatClient
(new OpenTelemetryChatClient(c, sourceName: sourceName) { EnableSensitiveData = enableSensitiveData }));
1210
using var client = new
FunctionInvokingChatClient
(innerClient);
1252
using var client = new
FunctionInvokingChatClient
(innerClient);
1373
using var chatClient = new
FunctionInvokingChatClient
(innerChatClient);
1506
s => new
FunctionInvokingChatClient
(s) { AllowConcurrentInvocation = true });
1538
using var client = new
FunctionInvokingChatClient
(innerClient);
1678
s => new
FunctionInvokingChatClient
(s) { TerminateOnUnknownCalls = terminateOnUnknown });
1741
s => new
FunctionInvokingChatClient
(s) { TerminateOnUnknownCalls = terminateOnUnknown });
1772
Func<ChatClientBuilder, ChatClientBuilder> configure = b => b.Use(s => new
FunctionInvokingChatClient
(s) { TerminateOnUnknownCalls = false });
1777
configure = b => b.Use(s => new
FunctionInvokingChatClient
(s) { TerminateOnUnknownCalls = true });
1805
using var chatClient = new
FunctionInvokingChatClient
(innerChatClient);
1846
new
FunctionInvokingChatClient
(new OpenTelemetryChatClient(c, sourceName: clientSourceName)));
1901
.Use(c => new
FunctionInvokingChatClient
(
1957
new
FunctionInvokingChatClient
(new OpenTelemetryChatClient(c, sourceName: clientSourceName)));
1999
new
FunctionInvokingChatClient
(new OpenTelemetryChatClient(c, sourceName: clientSourceName)));
2121
new
FunctionInvokingChatClient
(new OpenTelemetryChatClient(c, sourceName: clientSourceName)));
2206
using var client = new
FunctionInvokingChatClient
(innerClient);
2277
using var client = new
FunctionInvokingChatClient
(innerClient);
2324
using var client1 = new
FunctionInvokingChatClient
(innerClient);
2325
using var client2 = new
FunctionInvokingChatClient
(client1);
2582
using var client = new
FunctionInvokingChatClient
(innerClient);
2676
using var client = new
FunctionInvokingChatClient
(innerClient);
2781
using var client = new
FunctionInvokingChatClient
(innerClient);
2883
using var client = new
FunctionInvokingChatClient
(innerClient)
2983
using var client = new
FunctionInvokingChatClient
(innerClient)
3069
using var client = new
FunctionInvokingChatClient
(innerClient);
3161
using var client = new
FunctionInvokingChatClient
(innerClient);
3262
using var client = new
FunctionInvokingChatClient
(innerClient);
3368
using var client = new
FunctionInvokingChatClient
(innerClient);
3417
b.Use((c, services) => new
FunctionInvokingChatClient
(c, services.GetRequiredService<ILoggerFactory>()));
3449
b.Use((c, services) => new
FunctionInvokingChatClient
(c, services.GetRequiredService<ILoggerFactory>()));
3482
b.Use((c, services) => new
FunctionInvokingChatClient
(c, services.GetRequiredService<ILoggerFactory>()));
3514
b.Use((c, services) => new
FunctionInvokingChatClient
(c, services.GetRequiredService<ILoggerFactory>()));
3552
b.Use((c, services) => new
FunctionInvokingChatClient
(c, services.GetRequiredService<ILoggerFactory>()));
3574
using var client = new
FunctionInvokingChatClient
(innerClient, loggerFactory);
3611
using var client = new
FunctionInvokingChatClient
(innerClient, loggerFactory);
3674
using var client = new
FunctionInvokingChatClient
(innerClient);
3751
using var client = new
FunctionInvokingChatClient
(innerClient);
3814
using 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>
28
Action<
FunctionInvokingChatClient
>? configure = null)
36
var
chatClient = new FunctionInvokingChatClient(innerClient, loggerFactory, services);
ChatCompletion\ImageGeneratingChatClient.cs (3)
373
var callId =
FunctionInvokingChatClient
.CurrentContext?.CallContent.CallId;
408
var callId =
FunctionInvokingChatClient
.CurrentContext?.CallContent.CallId;
426
var 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)
12
using FunctionInvocationResult = Microsoft.Extensions.AI.
FunctionInvokingChatClient
.FunctionInvocationResult;
13
using FunctionInvocationStatus = Microsoft.Extensions.AI.
FunctionInvokingChatClient
.FunctionInvocationStatus;
19
/// Used by both <see cref="
FunctionInvokingChatClient
"/> and <see cref="FunctionInvokingRealtimeClientSession"/>.
Realtime\FunctionInvokingRealtimeClientSession.cs (2)
14
using FunctionInvocationResult = Microsoft.Extensions.AI.
FunctionInvokingChatClient
.FunctionInvocationResult;
15
using FunctionInvocationStatus = Microsoft.Extensions.AI.
FunctionInvokingChatClient
.FunctionInvocationStatus;
Microsoft.Extensions.AI.Integration.Tests (11)
ChatClientIntegrationTests.cs (11)
224
using
var
chatClient = new FunctionInvokingChatClient(
248
using
var
chatClient = new FunctionInvokingChatClient(ChatClient);
263
using
var
chatClient = new FunctionInvokingChatClient(ChatClient);
291
using
var
chatClient = new FunctionInvokingChatClient(
323
using
var
chatClient = new FunctionInvokingChatClient(
355
using
var
chatClient = new FunctionInvokingChatClient(
412
using
var
chatClient = new FunctionInvokingChatClient(
570
using
var
chatClient = new FunctionInvokingChatClient(ChatClient);
603
using
var
chatClient = new FunctionInvokingChatClient(ChatClient);
623
using
var
chatClient = new FunctionInvokingChatClient(ChatClient);
1064
using
var
chatClient = new FunctionInvokingChatClient(ChatClient);
Microsoft.Extensions.AI.OpenAI.Tests (16)
OpenAIChatClientTests.cs (4)
72
Assert.NotNull(pipeline.GetService<
FunctionInvokingChatClient
>());
78
Assert.IsType<
FunctionInvokingChatClient
>(pipeline.GetService<IChatClient>());
97
Assert.NotNull(pipeline.GetService<
FunctionInvokingChatClient
>());
103
Assert.IsType<
FunctionInvokingChatClient
>(pipeline.GetService<IChatClient>());
OpenAIResponseClientIntegrationTests.cs (10)
386
using
var
chatClient = new FunctionInvokingChatClient(ChatClient);
480
using
var
chatClient = new FunctionInvokingChatClient(ChatClient);
570
using
var
client = new FunctionInvokingChatClient(ChatClient);
594
using
var
client = new FunctionInvokingChatClient(ChatClient);
618
using
var
client = new FunctionInvokingChatClient(ChatClient);
643
using
var
client = new FunctionInvokingChatClient(ChatClient);
671
using
var
client = new FunctionInvokingChatClient(ChatClient);
861
using
var
client = new FunctionInvokingChatClient(ChatClient);
965
using
var
client = new FunctionInvokingChatClient(ChatClient);
1008
using
var
client = new FunctionInvokingChatClient(ChatClient);
OpenAIResponseClientTests.cs (2)
66
Assert.NotNull(pipeline.GetService<
FunctionInvokingChatClient
>());
72
Assert.IsType<
FunctionInvokingChatClient
>(pipeline.GetService<IChatClient>());
Microsoft.Extensions.AI.Tests (56)
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (6)
1404
FunctionInvokingChatClient
.CurrentContext!.Terminate = true;
1435
using
var
service = new FunctionInvokingChatClient(innerClient);
1446
using
var
service = new FunctionInvokingChatClient(innerClient);
1461
FunctionInvokingChatClient
.CurrentContext!.Terminate = true;
1492
using
var
service = new FunctionInvokingChatClient(innerClient);
1503
using
var
service = new FunctionInvokingChatClient(innerClient);
ChatCompletion\FunctionInvokingChatClientTests.cs (50)
35
using
FunctionInvokingChatClient
client = new(innerClient);
49
using
FunctionInvokingChatClient
client = new(innerClient);
402
using
var
client = new FunctionInvokingChatClient(innerClient)
483
using
var
client = new FunctionInvokingChatClient(innerClient)
564
using
var
client = new FunctionInvokingChatClient(innerClient)
673
using
var
client = new FunctionInvokingChatClient(innerClient)
717
using
var
client = new FunctionInvokingChatClient(innerClient)
770
using
var
client = new FunctionInvokingChatClient(innerClient)
809
using
var
client = new FunctionInvokingChatClient(innerClient)
1210
using
var
client = new FunctionInvokingChatClient(innerClient);
1252
using
var
client = new FunctionInvokingChatClient(innerClient);
1274
var context =
FunctionInvokingChatClient
.CurrentContext!;
1314
Assert.Null(
FunctionInvokingChatClient
.CurrentContext);
1351
FunctionInvokingChatClient
.CurrentContext!.Terminate = true;
1373
using
var
chatClient = new FunctionInvokingChatClient(innerChatClient);
1403
FunctionInvokingChatClient
.CurrentContext!.Terminate = true;
1438
FunctionInvokingChatClient
.CurrentContext!.Terminate = true;
1480
FunctionInvokingChatClient
.CurrentContext!.Terminate = true;
1523
FunctionInvokingChatClient
.CurrentContext!.Terminate = true;
1538
using
var
client = new FunctionInvokingChatClient(innerClient);
1544
Assert.Null(
FunctionInvokingChatClient
.CurrentContext);
1805
using
var
chatClient = new FunctionInvokingChatClient(innerChatClient);
2206
using
var
client = new FunctionInvokingChatClient(innerClient);
2277
using
var
client = new FunctionInvokingChatClient(innerClient);
2324
using
var
client1 = new FunctionInvokingChatClient(innerClient);
2325
using
var
client2 = new FunctionInvokingChatClient(client1);
2519
var context =
FunctionInvokingChatClient
.CurrentContext!;
2582
using
var
client = new FunctionInvokingChatClient(innerClient);
2613
var context =
FunctionInvokingChatClient
.CurrentContext!;
2676
using
var
client = new FunctionInvokingChatClient(innerClient);
2715
var context =
FunctionInvokingChatClient
.CurrentContext!;
2781
using
var
client = new FunctionInvokingChatClient(innerClient);
2819
var context =
FunctionInvokingChatClient
.CurrentContext!;
2883
using
var
client = new FunctionInvokingChatClient(innerClient)
2923
var context =
FunctionInvokingChatClient
.CurrentContext!;
2983
using
var
client = new FunctionInvokingChatClient(innerClient)
3069
using
var
client = new FunctionInvokingChatClient(innerClient);
3099
var context =
FunctionInvokingChatClient
.CurrentContext!;
3161
using
var
client = new FunctionInvokingChatClient(innerClient);
3200
var context =
FunctionInvokingChatClient
.CurrentContext!;
3262
using
var
client = new FunctionInvokingChatClient(innerClient);
3303
var context =
FunctionInvokingChatClient
.CurrentContext!;
3368
using
var
client = new FunctionInvokingChatClient(innerClient);
3468
var context =
FunctionInvokingChatClient
.CurrentContext!;
3501
FunctionInvokingChatClient
.CurrentContext!.Terminate = true;
3574
using
var
client = new FunctionInvokingChatClient(innerClient, loggerFactory);
3611
using
var
client = new FunctionInvokingChatClient(innerClient, loggerFactory);
3674
using
var
client = new FunctionInvokingChatClient(innerClient);
3751
using
var
client = new FunctionInvokingChatClient(innerClient);
3814
using
var
client = new FunctionInvokingChatClient(innerClient);