Console.WriteLine($"Function Call Result: {result}"); } } 执行dotnet run,输出结果:Function Call Result: 15 代码执行原理说明 Semantic Kernel提供了插件(Plugins)机制,让大模型可以调用.NET代码中的方法。 [KernelFunction("add_numbers")]让大模型知道
kernel.ImportPluginFromType<TimePlugin>("Time"); kernel.ImportPluginFromType<MathPlugin>("Math"); kernel.ImportPluginFromType<EmailPluginFake>("Email"); kernel.ImportPluginFromType<OrderPlugin>("Order");varsettings=newOpenAIPromptExecutionSettings() {ToolCallBehavior=ToolCallBehavior.AutoInvokeKernelFu...
然后在构建kernel实例时,构建KernelFunction 为SK插件,可以CreateFunctionFromMethod 方法传入MethodInfo,这里也能直接传委托。下文能看到如何调用。 到构建星火大模型客户端的地方,发送请求前从kernel.Plugins.GetFunctionMetadata()方法能获取所有...
然后在构建kernel实例时,构建KernelFunction 为SK插件,可以CreateFunctionFromMethod 方法传入MethodInfo,这里也能直接传委托。下文能看到如何调用。 到构建星火大模型客户端的地方,发送请求前从kernel.Plugins.GetFunctionMetadata方法能获取所有配置的sk function,通过前面导入时的命名,找到我们的本地方法,构建星火sdk的函数参...
Kernel kernel = builder.Build(); kernel.ImportPluginFromFunctions("HelperFunctions", [ kernel.CreateFunctionFromMethod(GetChineseDay, "GetChineseDay", "返回中国的农历") ]); await Call1(); async Task Call1() { Console.WriteLine("---Call1 开始---"); var settings = new OpenAIPromptExecution...
kernel.ImportPluginFromFunctions("WeatherPlugin",new[] { kernel.CreateFunctionFromMethod(GetWeatherForCity,"GetWeatherForCity","获取指定城市的天气") }); 手动调用 function calling 根据上面的描述 手动处理function calling的关键实际上是ToolCallBehavior.EnableKernelFunctions参数。
AzureOpenAIKernelBuilderExtensions AzureOpenAIServiceCollectionExtensions BinaryContent CancelKernelEventArgs ChatMessageContent EchoPromptTemplateFactory FileReferenceContent FromKernelServicesAttribute FunctionCallContent FunctionCallContent Constructors Properties
""");// 开始对话while(true){// 获取用户输入System.Console.Write("User>");chatMessages.AddUserMessage(Console.ReadLine()!);// 获取聊天完成OpenAIPromptExecutionSettings openAIPromptExecutionSettings=new(){FunctionCallBehavior=FunctionCallBehavior.AutoInvokeKernelFunctions};varresult=chatCompletionService....
// Enable planningOpenAIPromptExecutionSettings openAIPromptExecutionSettings = new(){ToolCallBehavior = ToolCallBehavior.AutoInvokeKernelFunctions}; 就可以实现本地函数的调用了,这很酷,也是最吸引我的地方。 但我在实践的过程中,发现直接这样子,只有OpenAI的模型与Moonshot AI可以用,而其他模型的本地函数调用都...
kernel 的核心函数是invoke,用的话就是用kernel.invoke(functions, args),大致逻辑如下: results=[]forfuncinfunctions:whileTrue:# 首先获得一些参数function_invoking_args=self.on_function_invoking(func.metadata,arguments)# 查看 args 中 skip, cancle, update args 等参数是否为 True# 是的话采取对应措施# ...