141 references to AIFunctionFactory
Microsoft.Extensions.AI (1)
ChatCompletion\FunctionInvocationContext.cs (1)
18
private static readonly AIFunction _nopFunction =
AIFunctionFactory
.Create(() => { }, nameof(FunctionInvocationContext));
Microsoft.Extensions.AI.Abstractions (2)
Functions\AIFunctionFactoryOptions.cs (2)
79
/// By default, the return value of invoking the method wrapped into an <see cref="AIFunction"/> by <see cref="
AIFunctionFactory
"/>
89
/// method for <see cref="AIFunction"/> instances produced by <see cref="
AIFunctionFactory
"/> to wrap
Microsoft.Extensions.AI.Abstractions.Tests (14)
ChatCompletion\ChatOptionsTests.cs (4)
66
AIFunctionFactory
.Create(() => 42),
67
AIFunctionFactory
.Create(() => 43),
161
AIFunctionFactory
.Create(() => 42),
162
AIFunctionFactory
.Create(() => 43),
Contents\FunctionCallContentTests..cs (6)
111
AIFunction function =
AIFunctionFactory
.Create((DayOfWeek[] a, double b, Guid c, Dictionary<string, string> d) => b, serializerOptions: TestJsonSerializerContext.Default.Options);
133
AIFunction function =
AIFunctionFactory
.Create((DayOfWeek[] a, double b, Guid c, Dictionary<string, string> d) => b, serializerOptions: TestJsonSerializerContext.Default.Options);
141
var ex = Assert.Throws<NotSupportedException>(() =>
AIFunctionFactory
.Create((CustomType arg) => { }, serializerOptions: TestJsonSerializerContext.Default.Options));
145
ex = Assert.Throws<NotSupportedException>(() =>
AIFunctionFactory
.Create(() => new CustomType(), serializerOptions: TestJsonSerializerContext.Default.Options));
166
AIFunction function =
AIFunctionFactory
.Create((DayOfWeek[] a, double b, Guid c, Dictionary<string, string> d) => b, serializerOptions: TestJsonSerializerContext.Default.Options);
187
AIFunction function =
AIFunctionFactory
.Create((DayOfWeek[] a, double b, Guid c, Dictionary<string, string> d) => b, serializerOptions: TestJsonSerializerContext.Default.Options);
Utilities\AIJsonSchemaTransformCacheTests.cs (1)
51
AIFunction func =
AIFunctionFactory
.Create((int x, int y) => x + y);
Utilities\AIJsonUtilitiesTests.cs (3)
303
AIFunction func =
AIFunctionFactory
.Create((int x, int y) => x + y, serializerOptions: options);
357
AIFunction func =
AIFunctionFactory
.Create((
378
AIFunction func =
AIFunctionFactory
.Create((int a, int? b, long c, short d, float e, double f, decimal g) => { }, serializerOptions: options);
Microsoft.Extensions.AI.AzureAIInference.Tests (6)
AzureAIInferenceChatClientTests.cs (6)
328
AIFunction tool =
AIFunctionFactory
.Create(([Description("The person whose age is being requested")] string personName) => 42, "GetPersonAge", "Gets the age of the specified person.");
412
AIFunction tool =
AIFunctionFactory
.Create(([Description("The person whose age is being requested")] string personName) => 42, "GetPersonAge", "Gets the age of the specified person.");
501
AIFunction tool =
AIFunctionFactory
.Create(([Description("The person whose age is being requested")] string personName) => 42, "GetPersonAge", "Gets the age of the specified person.");
576
AIFunction tool =
AIFunctionFactory
.Create(([Description("The person whose age is being requested")] string personName) => 42, "GetPersonAge", "Gets the age of the specified person.");
1251
Tools = [
AIFunctionFactory
.Create(([Description("The person whose age is being requested")] string personName) => 42, "GetPersonAge", "Gets the age of the specified person.")],
1338
Tools = [
AIFunctionFactory
.Create(([Description("The person whose age is being requested")] string personName) => 42, "GetPersonAge", "Gets the age of the specified person.")],
Microsoft.Extensions.AI.Integration.Tests (31)
ChatClientIntegrationTests.cs (31)
230
Tools = [
AIFunctionFactory
.Create(() => secretNumber, "GetSecretNumber")]
246
Tools = [
AIFunctionFactory
.Create((int a, int b) => a * b, "SecretComputation")]
261
Tools = [
AIFunctionFactory
.Create((int a, int b) => a * b, "SecretComputation")]
295
AIFunction func =
AIFunctionFactory
.Create((string id = "defaultId") => id is "foo" ? secretNumber : -1, "GetSecretNumberById");
327
AIFunction func =
AIFunctionFactory
.Create((PersonRecord person) => person.Name is "John" ? secretNumber + person.Age : -1, "GetSecretNumberByPerson");
374
AIFunctionFactory
.Create((int? i) => i, "Method1"),
375
AIFunctionFactory
.Create((string? s) => s, "Method2"),
376
AIFunctionFactory
.Create((int? i = null) => i, "Method3"),
377
AIFunctionFactory
.Create((bool b) => b, "Method4"),
378
AIFunctionFactory
.Create((double d) => d, "Method5"),
379
AIFunctionFactory
.Create((decimal d) => d, "Method6"),
380
AIFunctionFactory
.Create((float f) => f, "Method7"),
381
AIFunctionFactory
.Create((long l) => l, "Method8"),
382
AIFunctionFactory
.Create((char c) => c, "Method9"),
383
AIFunctionFactory
.Create((DateTime dt) => dt, "Method10"),
384
AIFunctionFactory
.Create((DateTime? dt) => dt, "Method11"),
385
AIFunctionFactory
.Create((Guid guid) => guid, "Method12"),
386
AIFunctionFactory
.Create((List<int> list) => list, "Method13"),
387
AIFunctionFactory
.Create((int[] arr) => arr, "Method14"),
388
AIFunctionFactory
.Create((string p1 = "str", int p2 = 42, BindingFlags p3 = BindingFlags.IgnoreCase, char p4 = 'x') => p1, "Method15"),
389
AIFunctionFactory
.Create((string? p1 = "str", int? p2 = 42, BindingFlags? p3 = BindingFlags.IgnoreCase, char? p4 = 'x') => p1, "Method16"),
414
Tools = [
AIFunctionFactory
.Create((string personName) =>
436
var tool =
AIFunctionFactory
.Create(() =>
459
var getSecretNumberTool =
AIFunctionFactory
.Create(() => 123, "GetSecretNumber");
460
var shieldsUpTool =
AIFunctionFactory
.Create(() => shieldsUp = true, "ShieldsUp");
556
var getTemperature =
AIFunctionFactory
.Create([Description("Gets the current temperature")] () =>
595
var getTemperature =
AIFunctionFactory
.Create([Description("Gets the current temperature")] () =>
637
var getTemperature =
AIFunctionFactory
.Create([Description("Gets the current temperature")] () =>
727
new ChatOptions { Tools = [
AIFunctionFactory
.Create(() => secretNumber, "GetSecretNumber")] });
753
new ChatOptions { Tools = [
AIFunctionFactory
.Create(() => secretNumber, "GetSecretNumber")] }))
907
Tools = [
AIFunctionFactory
.Create((int personId) =>
Microsoft.Extensions.AI.Ollama.Tests (5)
OllamaChatClientIntegrationTests.cs (3)
45
Tools = [
AIFunctionFactory
.Create(() => secretNumber, "GetSecretNumber")],
65
var stockPriceTool =
AIFunctionFactory
.Create([Description("Returns the stock price for a given ticker symbol")] (
75
var irrelevantTool =
AIFunctionFactory
.Create(() => { didCallIrrelevantTool = true; return 123; }, "GetSecretNumber");
OllamaChatClientTests.cs (2)
376
Tools = [
AIFunctionFactory
.Create(([Description("The person whose age is being requested")] string personName) => 42, "GetPersonAge", "Gets the age of the specified person.")],
473
Tools = [
AIFunctionFactory
.Create(([Description("The person whose age is being requested")] string personName) => 42, "GetPersonAge", "Gets the age of the specified person.")],
Microsoft.Extensions.AI.OpenAI.Tests (7)
OpenAIChatClientTests.cs (6)
320
AIFunction tool =
AIFunctionFactory
.Create(([Description("The person whose age is being requested")] string personName) => 42, "GetPersonAge", "Gets the age of the specified person.");
399
AIFunction tool =
AIFunctionFactory
.Create(([Description("The person whose age is being requested")] string personName) => 42, "GetPersonAge", "Gets the age of the specified person.");
484
AIFunction tool =
AIFunctionFactory
.Create(([Description("The person whose age is being requested")] string personName) => 42, "GetPersonAge", "Gets the age of the specified person.");
560
AIFunction tool =
AIFunctionFactory
.Create(([Description("The person whose age is being requested")] string personName) => 42, "GetPersonAge", "Gets the age of the specified person.");
1085
Tools = [
AIFunctionFactory
.Create(([Description("The person whose age is being requested")] string personName) => 42, "GetPersonAge", "Gets the age of the specified person.")],
1269
Tools = [
AIFunctionFactory
.Create(([Description("The person whose age is being requested")] string personName) => 42, "GetPersonAge", "Gets the age of the specified person.")],
OpenAIResponseClientTests.cs (1)
369
AIFunction tool =
AIFunctionFactory
.Create(([Description("The person whose age is being requested")] string personName) => 42, "GetPersonAge", "Gets the age of the specified person.");
Microsoft.Extensions.AI.Tests (75)
ChatCompletion\FunctionInvocationContextTests.cs (1)
51
AIFunction function =
AIFunctionFactory
.Create(() => { }, nameof(Properties_Roundtrip));
ChatCompletion\FunctionInvokingChatClientTests.cs (23)
49
AIFunctionFactory
.Create(() => "Result 1", "Func1"),
50
AIFunctionFactory
.Create((int i) => $"Result 2: {i}", "Func2"),
51
AIFunctionFactory
.Create((int i) => { }, "VoidReturn"),
81
AIFunctionFactory
.Create((int? i = 42) => "Result 1", "Func1"),
82
AIFunctionFactory
.Create((int i) => $"Result 2: {i}", "Func2"),
132
AIFunctionFactory
.Create(async (string arg) =>
179
AIFunctionFactory
.Create(async (string arg) =>
226
AIFunctionFactory
.Create(() => { actualCallCount++; }, "VoidReturn"),
268
AIFunctionFactory
.Create((bool shouldThrow, int callIndex) =>
349
AIFunctionFactory
.Create(() =>
398
AIFunctionFactory
.Create(() => "Result 1", "Func1"),
399
AIFunctionFactory
.Create((int i) => $"Result 2: {i}", "Func2"),
400
AIFunctionFactory
.Create((int i) => { }, "VoidReturn"),
437
AIFunctionFactory
.Create(string () => throw new InvalidOperationException("Oh no!"), "Func1"),
473
Tools = [
AIFunctionFactory
.Create(() => "Result 1", "Func1")]
529
Tools = [
AIFunctionFactory
.Create(() => "Result 1", "Func1")]
577
Tools = [
AIFunctionFactory
.Create((string text) => $"Result for {text}", "Func1")]
635
Tools = [
AIFunctionFactory
.Create(() => "doesn't matter", "Func1")]
674
var function =
AIFunctionFactory
.Create(async (int i) =>
749
var function =
AIFunctionFactory
.Create((string? result = null) =>
804
Tools = [
AIFunctionFactory
.Create(() => "Result 1", "Func1")],
865
Tools = [
AIFunctionFactory
.Create((IServiceProvider actual) =>
898
Tools = [
AIFunctionFactory
.Create(async (string arg, CancellationToken cancellationToken) =>
Functions\AIFunctionFactoryTest.cs (51)
28
Assert.Throws<ArgumentNullException>("method", () =>
AIFunctionFactory
.Create(method: null!));
29
Assert.Throws<ArgumentNullException>("method", () =>
AIFunctionFactory
.Create(method: null!, target: new object()));
30
Assert.Throws<ArgumentNullException>("method", () =>
AIFunctionFactory
.Create(method: null!, target: new object(), name: "myAiFunk"));
31
Assert.Throws<ArgumentNullException>("target", () =>
AIFunctionFactory
.Create(typeof(AIFunctionFactoryTest).GetMethod(nameof(InvalidArguments_Throw))!, (object?)null));
33
AIFunctionFactory
.Create(typeof(AIFunctionFactoryTest).GetMethod(nameof(InvalidArguments_Throw))!, (Func<AIFunctionArguments, object>)null!));
34
Assert.Throws<ArgumentException>("method", () =>
AIFunctionFactory
.Create(typeof(List<>).GetMethod("Add")!, new List<int>()));
42
func =
AIFunctionFactory
.Create((string a) => a + " " + a);
45
func =
AIFunctionFactory
.Create((string a, string b) => b + " " + a);
48
func =
AIFunctionFactory
.Create((int a, long b) => a + b);
55
AIFunction func =
AIFunctionFactory
.Create((string a = "test") => a + " " + a);
65
AIFunctionFactory
.Create((string theParam) => theParam + " " + theParam),
66
AIFunctionFactory
.Create((string? theParam) => theParam + " " + theParam),
67
AIFunctionFactory
.Create((int theParam) => theParam * 2),
68
AIFunctionFactory
.Create((int? theParam) => theParam * 2),
86
AIFunction func =
AIFunctionFactory
.Create((int value1 = 1, string value2 = "2", CancellationToken cancellationToken = default) =>
102
func =
AIFunctionFactory
.Create(Task<string> (string a) => Task.FromResult(a + " " + a));
106
func =
AIFunctionFactory
.Create(ValueTask<string> (string a, string b) => new ValueTask<string>(b + " " + a));
111
func =
AIFunctionFactory
.Create(async Task (int a, long b) => { result = a + b; await Task.Yield(); });
117
func =
AIFunctionFactory
.Create(async ValueTask (int a, long b) => { result = a + b; await Task.Yield(); });
122
func =
AIFunctionFactory
.Create((int count) => SimpleIAsyncEnumerable(count), serializerOptions: JsonContext.Default.Options);
135
func =
AIFunctionFactory
.Create(() => (IAsyncEnumerable<int>)new ThrowingAsyncEnumerable(), serializerOptions: JsonContext.Default.Options);
152
func =
AIFunctionFactory
.Create(dotnetFunc);
158
func =
AIFunctionFactory
.Create(dotnetFunc2);
164
func =
AIFunctionFactory
.Create(dotnetFunc3);
194
AIFunction func =
AIFunctionFactory
.Create(dotnetFunc, options);
218
AIFunction func =
AIFunctionFactory
.Create(
247
AIFunction func =
AIFunctionFactory
.Create((
291
AIFunction func =
AIFunctionFactory
.Create((
323
AIFunction func =
AIFunctionFactory
.Create(
341
AIFunction func =
AIFunctionFactory
.Create(
352
AIFunction func =
AIFunctionFactory
.Create(
363
Assert.Throws<ArgumentException>("method", () =>
AIFunctionFactory
.Create(
371
AIFunction func =
AIFunctionFactory
.Create(
390
AIFunction func =
AIFunctionFactory
.Create(
409
AIFunction func =
AIFunctionFactory
.Create(
436
AIFunction f =
AIFunctionFactory
.Create(([FromKeyedServices("key")] MyService service, int myInteger) => service.Value + myInteger,
459
AIFunction f =
AIFunctionFactory
.Create(([FromKeyedServices(null!)] MyService service, int myInteger) => service.Value + myInteger,
482
AIFunction f =
AIFunctionFactory
.Create(([FromKeyedServices("key")] MyService? service = null, int myInteger = 0) =>
501
AIFunction f =
AIFunctionFactory
.Create(
553
AIFunction f =
AIFunctionFactory
.Create(
570
AIFunction f =
AIFunctionFactory
.Create(
586
AIFunction f =
AIFunctionFactory
.Create(
609
AIFunction f =
AIFunctionFactory
.Create(
632
AIFunction f =
AIFunctionFactory
.Create(
655
AIFunction f =
AIFunctionFactory
.Create(
678
AIFunction f =
AIFunctionFactory
.Create(
701
AIFunction f =
AIFunctionFactory
.Create(
724
AIFunction f =
AIFunctionFactory
.Create(
747
AIFunction f =
AIFunctionFactory
.Create(
771
AIFunction f =
AIFunctionFactory
.Create((Guid g = default, StructWithDefaultCtor s = default) => g.ToString() + "," + s.Value.ToString(), serializerOptions: JsonContext.Default.Options);
780
AIFunction f =
AIFunctionFactory
.Create(Add, serializerOptions: JsonContext.Default.Options);