Semantic Kernel 入门系列之三: 深入了解插件的概念
链接地址: https://www.bilibili.com/video/BV1v5KPerEMK/
1. 什么是插件(Plugins)?
插件是SK的核心功能之一,它们允许开发者扩展和定制AI模型的能力。简单来说,插件就像是“工具包”,可以告诉模型如何完成特定任务,例如翻译文本、调用API或处理文件。SK主要支持两种插件类型:提示词插件和原生插件,同时还能通过OpenAPI规范导入插件,并提供了丰富的预定义插件库。
2. 插件类型详解
2.1 提示词插件(Prompt Plugin)
功能特点:
- 通过文本模板(提示词)指导模型生成特定输出,减少结果的不确定性。
- 典型应用场景包括翻译、内容摘要、格式转换等。
- 由两个核心文件组成:
skprompt.txt
:包含用于生成输出的文本模板。config.json
:配置模型的生成参数,例如输出长度、随机性等。
关键配置参数:
max_tokens
:控制输出的最大长度(以token为单位)。temperature
:调节输出的随机性(0为最稳定,1为最随机)。top_p
:限定模型选择下一个词的候选范围(例如0.9表示仅考虑概率前90%的词)。presence_penalty
和frequency_penalty
:减少重复内容,提升多样性。
适用场景:
当需要精准控制模型输出时,例如生成固定格式的翻译结果或标准化回复。
2.2 原生插件(Native Plugin)
功能特点:
- 基于代码实现(支持Python、C#、Java等语言),可直接调用本地方法或服务。
- 例如,通过原生插件可以调用天气API获取实时数据,或操作本地文件系统。
- 开发方式:定义一个类,其中包含标记为
KernelFunction
的方法,供模型调用。
适用场景:
当需要扩展模型能力以执行复杂任务(如调用外部API、访问数据库)时,原生插件是最佳选择。
2.3 通过OpenAPI规范导入插件
OpenAPI规范(原Swagger)是一种接口描述语言(YAML/JSON格式),用于定义API的结构。SK支持直接导入OpenAPI文档,将其转换为原生插件。
优势:
- 快速集成现有API,无需重复开发。
- 保证代码简洁性和可维护性。
使用步骤:
- 提供OpenAPI文档的URL或本地路径。
- SK自动将API接口转换为可调用的插件函数。
2.4 预定义插件库
SK提供了开箱即用的预定义插件,安装Microsoft.SemanticKernel.Plugins.Core
包即可使用(目前为预发行版)。以下是核心插件示例:
插件名称 | 功能说明 |
---|---|
ConversationSummaryPlugin |
对话总结、提取行动项和主题识别。 |
FileIOPlugin |
基础文件读写操作。 |
HttpPlugin |
支持GET/POST/PUT/DELETE请求。 |
MathPlugin |
基本数学运算。 |
TextPlugin |
字符串处理(如大小写转换)。 |
TimePlugin |
获取当前时间、日期信息。 |
WaitPlugin |
在执行操作前暂停指定时间。 |
3. 总结
通过本文,我们了解了SK插件的核心类型及其应用场景:
- 提示词插件:适合需要精确控制模型输出的场景。
- 原生插件:适合扩展模型能力以执行复杂任务。
- OpenAPI插件:快速集成现有API。
- 预定义插件:开箱即用,提升开发效率。