70 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)
234
using var chatClient = new
FunctionInvokingChatClient
(
258
using var chatClient = new
FunctionInvokingChatClient
(ChatClient);
273
using var chatClient = new
FunctionInvokingChatClient
(ChatClient);
301
using var chatClient = new
FunctionInvokingChatClient
(
333
using var chatClient = new
FunctionInvokingChatClient
(
365
using var chatClient = new
FunctionInvokingChatClient
(
422
using var chatClient = new
FunctionInvokingChatClient
(
579
using var chatClient = new
FunctionInvokingChatClient
(ChatClient);
612
using var chatClient = new
FunctionInvokingChatClient
(ChatClient);
632
using var chatClient = new
FunctionInvokingChatClient
(ChatClient);
1073
using var chatClient = new
FunctionInvokingChatClient
(ChatClient);
Microsoft.Extensions.AI.OpenAI.Tests (7)
OpenAIResponseClientIntegrationTests.cs (7)
257
using var chatClient = new
FunctionInvokingChatClient
(ChatClient);
351
using var chatClient = new
FunctionInvokingChatClient
(ChatClient);
439
using var client = new
FunctionInvokingChatClient
(ChatClient);
463
using var client = new
FunctionInvokingChatClient
(ChatClient);
487
using var client = new
FunctionInvokingChatClient
(ChatClient);
512
using var client = new
FunctionInvokingChatClient
(ChatClient);
540
using var client = new
FunctionInvokingChatClient
(ChatClient);
Microsoft.Extensions.AI.Tests (51)
ChatCompletion\FunctionInvokingChatClientApprovalsTests.cs (4)
962
Func<ChatClientBuilder, ChatClientBuilder> configurePipeline = b => b.Use(s => new
FunctionInvokingChatClient
(s));
1035
Func<ChatClientBuilder, ChatClientBuilder> configurePipeline = b => b.Use(s => new
FunctionInvokingChatClient
(s));
1236
configurePipeline ??= b => b.Use(s => new
FunctionInvokingChatClient
(s) { AdditionalTools = additionalTools });
1324
configurePipeline ??= b => b.Use(s => new
FunctionInvokingChatClient
(s) { AdditionalTools = additionalTools });
ChatCompletion\FunctionInvokingChatClientTests.cs (47)
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);
1525
s => new
FunctionInvokingChatClient
(s) { TerminateOnUnknownCalls = terminateOnUnknown });
1588
s => new
FunctionInvokingChatClient
(s) { TerminateOnUnknownCalls = terminateOnUnknown });
1619
Func<ChatClientBuilder, ChatClientBuilder> configure = b => b.Use(s => new
FunctionInvokingChatClient
(s) { TerminateOnUnknownCalls = false });
1624
configure = b => b.Use(s => new
FunctionInvokingChatClient
(s) { TerminateOnUnknownCalls = true });
1652
using var chatClient = new
FunctionInvokingChatClient
(innerChatClient);
1690
new
FunctionInvokingChatClient
(new OpenTelemetryChatClient(c, sourceName: clientSourceName)));
1739
new
FunctionInvokingChatClient
(new OpenTelemetryChatClient(c, sourceName: clientSourceName)));
1779
new
FunctionInvokingChatClient
(new OpenTelemetryChatClient(c, sourceName: clientSourceName)));
1900
new
FunctionInvokingChatClient
(new OpenTelemetryChatClient(c, sourceName: clientSourceName)));
1985
using var client = new
FunctionInvokingChatClient
(innerClient);
2056
using var client = new
FunctionInvokingChatClient
(innerClient);
2103
using var client1 = new
FunctionInvokingChatClient
(innerClient);
2104
using var client2 = new
FunctionInvokingChatClient
(client1);
2361
using var client = new
FunctionInvokingChatClient
(innerClient);
2455
using var client = new
FunctionInvokingChatClient
(innerClient);
2560
using var client = new
FunctionInvokingChatClient
(innerClient);
2662
using var client = new
FunctionInvokingChatClient
(innerClient)
2762
using var client = new
FunctionInvokingChatClient
(innerClient)
2848
using var client = new
FunctionInvokingChatClient
(innerClient);
2940
using var client = new
FunctionInvokingChatClient
(innerClient);
3041
using var client = new
FunctionInvokingChatClient
(innerClient);
3147
using var client = new
FunctionInvokingChatClient
(innerClient);
3196
b.Use((c, services) => new
FunctionInvokingChatClient
(c, services.GetRequiredService<ILoggerFactory>()));
3228
b.Use((c, services) => new
FunctionInvokingChatClient
(c, services.GetRequiredService<ILoggerFactory>()));
3261
b.Use((c, services) => new
FunctionInvokingChatClient
(c, services.GetRequiredService<ILoggerFactory>()));
3299
b.Use((c, services) => new
FunctionInvokingChatClient
(c, services.GetRequiredService<ILoggerFactory>()));
3321
using var client = new
FunctionInvokingChatClient
(innerClient, loggerFactory);
3358
using var client = new
FunctionInvokingChatClient
(innerClient, loggerFactory);
90 references to FunctionInvokingChatClient
Aspire.Azure.AI.OpenAI.Tests (1)
AspireConfigurableOpenAIExtensionsTests.cs (1)
247
Assert.IsType<
FunctionInvokingChatClient
>(chatClient);
Microsoft.Extensions.AI (23)
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;
162
/// Each request to this <see cref="
FunctionInvokingChatClient
"/> might end up making
196
/// When function invocations fail with an exception, the <see cref="
FunctionInvokingChatClient
"/>
223
/// These will not impact the requests sent by the <see cref="
FunctionInvokingChatClient
"/>, which will pass through the
234
/// that isn't available to the <see cref="
FunctionInvokingChatClient
"/> is received; <see langword="false"/> to create and send a
239
/// When <see langword="false"/>, call requests to any tools that aren't available to the <see cref="
FunctionInvokingChatClient
"/>
245
/// that the <see cref="
FunctionInvokingChatClient
"/> doesn't know about, it will terminate the function calling loop and return
249
/// <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)
376
var callId =
FunctionInvokingChatClient
.CurrentContext?.CallContent.CallId;
411
var callId =
FunctionInvokingChatClient
.CurrentContext?.CallContent.CallId;
429
var callId =
FunctionInvokingChatClient
.CurrentContext?.CallContent.CallId;
Microsoft.Extensions.AI.Integration.Tests (11)
ChatClientIntegrationTests.cs (11)
234
using
var
chatClient = new FunctionInvokingChatClient(
258
using
var
chatClient = new FunctionInvokingChatClient(ChatClient);
273
using
var
chatClient = new FunctionInvokingChatClient(ChatClient);
301
using
var
chatClient = new FunctionInvokingChatClient(
333
using
var
chatClient = new FunctionInvokingChatClient(
365
using
var
chatClient = new FunctionInvokingChatClient(
422
using
var
chatClient = new FunctionInvokingChatClient(
579
using
var
chatClient = new FunctionInvokingChatClient(ChatClient);
612
using
var
chatClient = new FunctionInvokingChatClient(ChatClient);
632
using
var
chatClient = new FunctionInvokingChatClient(ChatClient);
1073
using
var
chatClient = new FunctionInvokingChatClient(ChatClient);
Microsoft.Extensions.AI.OpenAI.Tests (15)
OpenAIAssistantChatClientTests.cs (2)
64
Assert.NotNull(pipeline.GetService<
FunctionInvokingChatClient
>());
70
Assert.IsType<
FunctionInvokingChatClient
>(pipeline.GetService<IChatClient>());
OpenAIChatClientTests.cs (4)
70
Assert.NotNull(pipeline.GetService<
FunctionInvokingChatClient
>());
76
Assert.IsType<
FunctionInvokingChatClient
>(pipeline.GetService<IChatClient>());
95
Assert.NotNull(pipeline.GetService<
FunctionInvokingChatClient
>());
101
Assert.IsType<
FunctionInvokingChatClient
>(pipeline.GetService<IChatClient>());
OpenAIResponseClientIntegrationTests.cs (7)
257
using
var
chatClient = new FunctionInvokingChatClient(ChatClient);
351
using
var
chatClient = new FunctionInvokingChatClient(ChatClient);
439
using
var
client = new FunctionInvokingChatClient(ChatClient);
463
using
var
client = new FunctionInvokingChatClient(ChatClient);
487
using
var
client = new FunctionInvokingChatClient(ChatClient);
512
using
var
client = new FunctionInvokingChatClient(ChatClient);
540
using
var
client = new FunctionInvokingChatClient(ChatClient);
OpenAIResponseClientTests.cs (2)
64
Assert.NotNull(pipeline.GetService<
FunctionInvokingChatClient
>());
70
Assert.IsType<
FunctionInvokingChatClient
>(pipeline.GetService<IChatClient>());
Microsoft.Extensions.AI.Tests (40)
ChatCompletion\FunctionInvokingChatClientTests.cs (40)
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);
1652
using
var
chatClient = new FunctionInvokingChatClient(innerChatClient);
1985
using
var
client = new FunctionInvokingChatClient(innerClient);
2056
using
var
client = new FunctionInvokingChatClient(innerClient);
2103
using
var
client1 = new FunctionInvokingChatClient(innerClient);
2104
using
var
client2 = new FunctionInvokingChatClient(client1);
2298
var context =
FunctionInvokingChatClient
.CurrentContext!;
2361
using
var
client = new FunctionInvokingChatClient(innerClient);
2392
var context =
FunctionInvokingChatClient
.CurrentContext!;
2455
using
var
client = new FunctionInvokingChatClient(innerClient);
2494
var context =
FunctionInvokingChatClient
.CurrentContext!;
2560
using
var
client = new FunctionInvokingChatClient(innerClient);
2598
var context =
FunctionInvokingChatClient
.CurrentContext!;
2662
using
var
client = new FunctionInvokingChatClient(innerClient)
2702
var context =
FunctionInvokingChatClient
.CurrentContext!;
2762
using
var
client = new FunctionInvokingChatClient(innerClient)
2848
using
var
client = new FunctionInvokingChatClient(innerClient);
2878
var context =
FunctionInvokingChatClient
.CurrentContext!;
2940
using
var
client = new FunctionInvokingChatClient(innerClient);
2979
var context =
FunctionInvokingChatClient
.CurrentContext!;
3041
using
var
client = new FunctionInvokingChatClient(innerClient);
3082
var context =
FunctionInvokingChatClient
.CurrentContext!;
3147
using
var
client = new FunctionInvokingChatClient(innerClient);
3247
var context =
FunctionInvokingChatClient
.CurrentContext!;
3321
using
var
client = new FunctionInvokingChatClient(innerClient, loggerFactory);
3358
using
var
client = new FunctionInvokingChatClient(innerClient, loggerFactory);