用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
容器及微服务
›
容器及微服务
›
dotnet SemanticKernel 入门 调用原生本机技能 ...
dotnet SemanticKernel 入门 调用原生本机技能
tsx81429
论坛元老
|
2023-9-3 18:22:41
|
显示全部楼层
|
阅读模式
楼主
主题
1638
|
帖子
1638
|
积分
4914
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
本文将告诉大家如何在 SemanticKernel 里面调用原生本机技能,所谓原生本机技能就是使用 C# 代码编写的原生本地逻辑技能,这里的技能可讲的可不是游戏角色里面的技能哈,指的是实现某个功能的技能,这是构成 AI 强大能力的基础
本文属于 SemanticKernel 入门系列博客,更多博客内容请参阅我的
博客导航
众所周知 GPT 是一个大语言模型,能够参与的输入和输出是文本内容。而想要让 GPT 完成各项功能,则需要对接现有的编程世界。为了能够更好的复用这几十年的编程世界积累的知识和搭建的基础设施,微软推出 SemanticKernel 框架,通过 SemanticKernel 框架可以让传统的编程语言和 GPT 等 AI 更好的协作,赋予 AI 强大的能力
举个例子来说,当你和 GPT 说,请关灯的时候。此时你期望的也许不是 GPT 长篇大论的帮你关灯,而是更多的期望是 GPT 真的识别到你的意图,通过和你沟通的上下文,帮你将灯给关掉。然而只靠 GPT 本身,则是力不从心的,因为 GPT 本身没有关灯的能力。有关灯能力的是传统 IOT 能力。而通过 SemanticKernel 框架,则可以非常方便在打通 GPT 和关灯 IOT 编程之间的连接。只需要在 SemanticKernel 框架里面加入一个关灯技能,然后告诉 AI 有这个技能,这样 AI 就可以使用这个技能实现关灯的能力
在 SemanticKernel 框架里面定义的技能,都是一个基础的 C# 实现逻辑,比如说本文的例子就是 TextSkill 技能,这个 TextSkill 包含了基础的文本字符串处理功能,比如大小写转换,裁剪文本前后空白,获取字符串长度等等
熟悉 GPT 功能的伙伴大概也不陌生,对于 GPT 来说,所有的输出都是凭 "感觉" 的。而 Skill 技能则可以很好补足这个缺点,让一些确定性的基础逻辑交给传统编程语言编写,如此即可利用传统编程的输入输出稳定性保证输出的可靠性
本文将尝试创建一个项目,在这个项目里面使用 TextSkill 技能作为例子,只使用技能类而还不需要接触 SemanticKernel 框架
先新建一个 dotnet 7 的控制台项目,接着编辑 csproj 项目文件,修改为如下代码用来快速安装 Microsoft.SemanticKernel 库
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.SemanticKernel" Version="0.20.230821.4-preview" />
</ItemGroup>
</Project>
复制代码
也可以通过右击项目,点击管理 NuGet 程序包,搜 Microsoft.SemanticKernel 然后进行安装
值得一提的是,当前的 Microsoft.SemanticKernel 还是一个预览版本,有可能在正式发布的时候变更了 API 导致本文的代码在正式版本跑不起来
先按照传统的 C# 编程方法,创建出 TextSkill 对象,如下面代码
using Microsoft.SemanticKernel.Skills.Core;
// 创建技能
var text = new TextSkill();
复制代码
接着即可和之前的 C# 代码调用一样,调用 TextSkill 里面提供的方法,比如修改字符串大小写
// 直接调用技能里的方法
var result = text.Uppercase("ciao");
复制代码
试试输出结果,自然是很符合预期的所有字符都大写
Console.WriteLine(result);
复制代码
所有的代码如下
using Microsoft.SemanticKernel.Skills.Core;
// 创建技能
var text = new TextSkill();// 直接调用技能里的方法
var result = text.Uppercase("ciao");Console.WriteLine(result);
复制代码
可以看到在没有使用到 SemanticKernel 框架的前提下,这是丝毫没有魔法的。这样的设计可以让咱非常方便进行技能的调试,因为这时候的技能类型就和其他的类型没有什么不相同的。在
下一篇
将告诉大家如何将技能导入框架
本文的代码放在
github
和
gitee
欢迎访问
可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码
git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin eef729b3a5ff8017161fdae58a786812ad2a7df0
复制代码
以上使用的是 gitee 的源,如果 gitee 不能访问,请替换为 github 的源。请在命令行继续输入以下代码
git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin eef729b3a5ff8017161fdae58a786812ad2a7df0
复制代码
获取代码之后,进入 SemanticKernelSamples\Example01_NativeFunctions 文件夹
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
继续阅读请点击广告
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
tsx81429
论坛元老
这个人很懒什么都没写!
楼主热帖
MySQL 主从复制数据不一致,怎么办? ...
什么是 SSL、TLS 和 HTTPS?
Android修行手册 - SeekBar
Kali Linux三种网络攻击方法总结(DDoS ...
微信小程序项目实例——体质计算器 ...
轻量级CI/CD发布部署环境搭建及使用_07 ...
面了个拿 30K 出来的测试,见识到了什 ...
相较国外代码托管平台gitlab,咱们中国 ...
美团大脑百亿级知识图谱的构建及应用进 ...
2流高手速成记(之五):Springboot整 ...
标签云
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
Mysql
快速回复
返回顶部
返回列表