using System.IO;using Microsoft.SemanticKernel;using Microsoft.SemanticKernel.Skills.Core;using Microsoft.SemanticKernel.Planning;using Microsoft.SemanticKernel.Connectors.AI.HuggingFace;using Microsoft.Extensi
usingSystem.IO;usingSystem.ComponentModel;usingMicrosoft.SemanticKernel.Orchestration;usingMicrosoft.SemanticKernel.SkillDefinition;namespaceGlobant.Plugins;publicsealedclassStatistics{[SKFunction, Description("Genenate statistics for a source code file in a given path")]publicstringGetStatistics([Descripti...
SK本身是支持把符合OpenAPI(这里不是OpenAI)规范的API导入成为SK的插件的,主要借助OpenApiKernelPluginFactory来完成,具体实现如下: usingMicrosoft.Extensions.DependencyInjection;usingMicrosoft.Extensions.Logging;usingMicrosoft.SemanticKernel;usingMicrosoft.SemanticKernel.ChatCompletion;usingMicrosoft.SemanticKernel.Connectors.O...
这一过程在Semantic Kernel中可以被归类为Connector。 Connector更像是一种设计模式,并不像Function和Memory 一样有强制和明确的规定。所以从官方的接口定义上也没有一个 IConnector类似的东西。不过我们可以从官方示例中了解这一模式的使用方法。 以[Web Plugins 中的 WebSearchEnginePlugin] 为例,该插件使用到了一个...
MemoryPlugin 本身提供了近乎完整的Kernel Memory的功能,包括: Save SaveFile SaveWebPage Search Ask Delete WaitForDocumentReadiness 也就意味着如果在Semantic Kernel 中,通过插件功能的编排,可以实现动态的知识库管理。 当然也可以通过 plugin 直接调用其中的方法例如: ...
SK本身是支持把符合OpenAPI(这里不是OpenAI)规范的API导入成为SK的插件的,主要借助OpenApiKernelPluginFactory来完成,具体实现如下: usingMicrosoft.Extensions.DependencyInjection;usingMicrosoft.Extensions.Logging;usingMicrosoft.SemanticKernel;usingMicrosoft.SemanticKernel.ChatCompletion;usingMicrosoft.SemanticKernel.Connectors....
Semantic Kernel:OpenAPI的Plugin SK的插件,能让AI功能如虎添翼。Plugin能让AI与本地功能和数据互动,使AI与应用的结合,并起到了很好的粘合剂作用。 怎么能让Plugin本身和功能分离呢?调用API是一个很好的办法,比如下面是一个查询订单的功能,是一个mini API项目。
使用Kernel.CreateBuilder 扩展方法构造一个 KernelBuilder 在builder 上调用 Add 扩展方法注册会使用到的服务 builder.Build 方法构造真正的 kernel 添加plugin 等 真正的使用 Kernel 执行 prompt 那么我们最傻瓜的办法就是每次需要使用 kernel 的时候就把上面的代码执行一遍。这太傻了。这里我们有 2 个点至少是要考虑...
kernel.Plugins.AddFromType<DateTimePlugin>("DateTimePlugin");varexecutionSettings=newOllamaPromptExecutionSettings(){FunctionChoiceBehavior=FunctionChoiceBehavior.Auto(),}; 代码说明: 添加插件,插件定义见下文 设置插件的执行方式,我们采用自动选择和执行插件 ...
Using plugins within Semantic Kernel is always a three step process: Define your plugin Add the plugin to your kernel And then either invoke the plugin's functions in either a prompt with function calling Below we'll provide a high-level example of how to use a plugin within Semantic Kernel...