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