dotnet SemanticKernel 入门 将技能导入框架
在上一篇博客中和大家简单介绍了 SemanticKernel 里的技能概念,接下来咱准备将 技能 导入到 SemanticKernel 框架里面,进行一个管道式调用
本文属于 SemanticKernel 入门系列博客,更多博客内容请参阅我的 博客导航
别着急,本篇博客还不涉及到任何的 GPT 相关的魔法,仅仅只是在 C# 层面上的框架使用而已
按照上一篇博客中的创建项目的例子,也就是安装 Microsoft.SemanticKernel 库之后,就可以开始本篇的代码
使用 SemanticKernel 框架的第一步就是通过 KernelBuilder 创建器创建出 IKernel 对象。可以在 KernelBuilder 创建器配置各项内容,比如日志或者是配置和 AzureAI 或 OpenAI 进行对接的逻辑,甚至配置与第三方大语言模型进行对接
本文这里将采用最简单的啥都不配置的方式,创建 IKernel 对象
IKernel kernel = new KernelBuilder().Build();
将技能导入 SemanticKernel 框架的方法是调用 IKernel 的 ImportSkill 方法。之所以提供导入技能给到 SemanticKernel 框架是为了可以方便按需导入,避免一口气导入太多的技能,让 GPT 不知道调用哪个。同时也方便咱自己定义和扩展技能
// 加载技能
var text = kernel.ImportSkill(new TextSkill());
加载技能之后,使用 SemanticKernel 框架提供的管道方式调用了,如以下代码,就是先对字符串进行裁剪再修改为大写
SKContext result = await kernel.RunAsync(" i n f i n i t e s p a c e ",
text["TrimStart"],
text["TrimEnd"],
text["Uppercase"]);
Console.WriteLine(result);
运行代码,可以看到输出如下
I N F I N I T E S P A C E
也就是以上代码是按照 text["TrimStart"] text["TrimEnd"] text["Uppercase"] 顺序,分别调用 TextSkill 类型的 TrimStart 和 TrimEnd 和 Uppercase 方法,而且还是将上一个方法的返回值当成下一个方法的输入值
通过 SemanticKernel 框架的这个能力,可以非常方便的提供多个技能进行排列组合,从而完成更加复杂的任务。在下一篇将告诉大家如何自定义技能
可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码
git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin eca54565cd10135ae5acbf6242113ba4e25c2c7c
以上使用的是 gitee 的源,如果 gitee 不能访问,请替换为 github 的源。请在命令行继续输入以下代码
git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin eca54565cd10135ae5acbf6242113ba4e25c2c7c
获取代码之后,进入 SemanticKernelSamples\Example02_Pipeline 文件夹
dotnet SemanticKernel 入门 将技能导入框架的更多相关文章
- dotnet 从入门到放弃的 500 篇文章合集
本文是记录我从入门到放弃写的博客 博客包括 C#.WPF.UWP.dotnet core .git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 从入门到 ...
- Flask 入门一( flask 框架和 flask-script 库)
Flask 入门一( flask 框架 和 flask-script 库) 一.Flask框架: 1.简介 Flask是一个非常小的Python Web框架,被称为微型框架:只提供了一个稳健的核心,其 ...
- Hibernate入门第一讲——Hibernate框架的快速入门
Hibernate框架的概述 什么是框架? 框架指的是软件的半成品,已经完成了部分功能. JavaEE开发的三层架构 了解框架的基本概念之后,我们就来看看Hibernate框架处于JavaEE开发的经 ...
- MyBatis01:框架概述、环境搭建及入门案例、自定义框架
课程介绍 第一天:mybatis的入门 mybatis的概述 mybatis的环境搭建 mybatis入门案例 自定义mybatis框架(目的:了解mybatis的执行细节) 第二天:mybatis基 ...
- Intellij自动下载导入框架包
忽然发现intellij尽然可以自动导入 框架所需的包,而且可以选择jar包版本,瞬间发现Maven,gradle管理jar包还得写配置文件弱爆了. 以Hibernate为例: 1.ProjectSt ...
- HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID
HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID HealthKit开发准备工作 在开发一款HealthKit应用程序时,首先需要讲解HealthKit中有哪些类,在i ...
- Intellij自动下载导入框架包和常用快捷键
忽然发现intellij尽然可以自动导入 框架所需的包,而且可以选择jar包版本,瞬间发现Maven,gradle管理jar包还得写配置文件弱爆了. 以Hibernate为例: 1.ProjectSt ...
- 【转】MMORPG游戏服务器技能系统设计:表格字段与技能程序框架
本文主要从一个程序员的角度阐述一下mmorpg服务器技能系统的程序框架设计,最近在做这个,就当做一个总结吧,其中某些概念可能没有解释清楚,欢迎大家拍砖讨论~ 技能其实是战斗系统的一个组成部分,战斗基本 ...
- 开源一个基于dotnet standard的轻量级的ORM框架-Light.Data
还在dotnet framework 2.0的时代,当时还没有EF,而NHibernate之类的又太复杂,并且自己也有一些特殊需求,如查询结果直接入表.水平分表和新增数据默认值等,就试着折腾个轻量点O ...
- Requests库主要方法解析以及Requests库入门需要掌握的框架
Requests库主要方法解析以及Requests库入门 1.requests.request(method,url,**kwargs) **kwargs:控制访问的参数,均为可选项 params:字 ...
随机推荐
- 三维模型OBJ格式轻量化的纹理压缩和质量关系分析
三维模型OBJ格式轻量化的纹理压缩和质量关系分析 三维模型的OBJ格式通常包含纹理信息,而对纹理进行轻量化压缩可以减小文件大小和提高加载性能.然而,在进行纹理压缩时需要权衡压缩比率和保持质量之间的关系 ...
- window-命令行操作
window命令行操作 调起命令行-win+r输入cmd 网络探活 ping www.baidu.com 快捷启动应用 打开记事本 notepad 打开画图 mspaint 打开计算器 calc 命令 ...
- 灰狼优化算法(MOGWO)
灰狼优化算法(MOGWO) 摘要 固定大小的外部档案用来保存帕累托优化解 在多目标搜索空间中,这个档案被用来定义狼群社会等级和捕猎行为 这个算法在10个多目标测试集进行测试,并与MOEA/D和MOPS ...
- https://codeforces.com/gym/496137
AB略. C:想复杂了. 只要判断最大的那个能不能继续吃即可. D:我的做法是建完全图然后跑生成树. 实际上可以这么考虑:和a[1]不同的直接连,相同的就和上一轮和a[1]不同的店去连可以O(n). ...
- 电影数据集【可供机器学习附爬虫源码】(豆瓣、爱奇艺、IMDB、腾讯视频等)
电影数据集(豆瓣.爱奇艺.IMDB.腾讯视频.搜狐.1905) 爬虫爬取豆瓣.爱奇艺.IMDB.腾讯视频.搜狐.1905网,电影数据. 获取方式:微信搜索关注[靠谱杨阅读人生]回复[电影]. 整理不易 ...
- 2 JavaScript的基础类型
2 JavaScript的基础类型 JS虽然是一个脚本语言. 麻雀虽小, 五脏俱全. 在js中也是可以像其他编程语言一样. 声明变量, 条件判断, 流程控制等等. 我们先看一下JS中的数据类型 在js ...
- 我为OpenHarmony 写代码,战“码”先锋第二期正式开启!
OpenAtom OpenHarmony(以下简称"OpenHarmony")问世以来,两年多时间汇聚了160万+社区用户,全球下载次数高达6300万,5.5万+次代码提交,吸引了 ...
- Python 布尔类型
布尔值表示两个值之一:True(真)或False(假). 布尔值 在编程中,您经常需要知道一个表达式是否为True或False. 您可以在Python中评估任何表达式,并获得两个答案之一:True或F ...
- SQline安装
SQLite 安装 SQLite 的一个重要的特性是零配置的,这意味着不需要复杂的安装或管理.本章将讲解 Windows.Linux 和 Mac OS X 上的安装设置. 在 Windows 上安装 ...
- Qt 排序 QSort
一.对整形排序 // qSort 对整形排序 QList<int> list; list << 1 << 3 << 19 << 0 < ...