.NET面向AI编程——SK框架(SemanticKernel)的简易入门实践

简介: 随着ChatGPT开始在各个领域遍地开花,有关的应用也开始层出不穷。随着微软开源SK框架,无疑是给.NET开发者带来面向AI应用的新机遇。以下内容,通过创建一个简单的prompt开始,开发一个使用SK框架进行开发的入门教程,供参考。

首先,创建一个webapi项目。当然,此处也可以创建其他任意类型的项目,只是个人喜欢用webapi来做实践,比较方便。

接着,通过nuget安装SK框架nuget包: Microsoft.SemanticKernel

由于截止到目前(2023年5月28日),该框架包还是预览版,所以需要勾选预览版选项,才能搜索的到。

再然后,创建连接远程机器人模型的配置文件,例如文件名称就叫 gpt.json。该配置文件可自定义,也可以写到默认的appsettings.json里面都可以。

在配置文件里面,需要配置自己的服务类型。例如走的是azure还是openai,以及模型类型,例如gpt-3.5-turbo模型,还有自己的key,和组织id等信息。

接着在主目录下,新建三级目录,包括Skills、二级目录自定义名称例如DM、以及三级目录名称例如Test。一级目录Skills是默认写法,当然也可以用其他命名,为了统一建议写成Skills。这里面要存放我们的prompt文件,用来给机器人做限定使用。

在最后一级目录下,新建一个config.json文件。该文件用来配置机器人的基础设置,这部分应该大家比较熟悉了,就不详细介绍了。默认情况下,可以使用默认空的配置即可,例如{} ;如果需要自定义配置,就可以使用以下配置项进行优化或调整。

在config同级别路径下,新增一个skprompt文本文件,内容是给机器人做个设定,也就是传说中的prompt(将来也许会有Prompt工程师也说不定)。例如我设定机器人叫叼毛,Wesky是他的主人等关键信息。

接着需要定制一个类,包括基本配置属性,以及配置加载方法等。

编写从文件里面加载配置文件内容验证的方法,如果文件不存在或者加载失败,就直接抛出异常。

新增一个拓展类,用来根据配置的服务,选择进入不同的服务商。也可以再根据配置的模型不同,进入不同的服务调用入口,此处为了简单,就先写死了,并提供了一个走azure openai的通道,供大家备用。

接下来是如何使用。此处我新建一个api控制器,用来做测试使用。然后新增一个初始化的webapi接口,用来配置加载配置文件和连接初始化等动作。

再新建一个webapi接口,提供可输入文本内容的参数,并获取远程模型返回的内容,用来测试。

最后,运行程序,默认打开swagger页面,先调用执行初始化接口(BuildChat)

初始化接口执行成功,再进行Test接口调用。例如询问机器人,你是哪个,机器人就可以根据prompt文件内容信息,进行自己设定身份,回复了他叫叼毛。

例如问,你的主人是谁?机器人也可以根据预设的prompt进行针对性回答。

最后,再来个常规的咨询,例如如何在.NET里面使用SK框架?机器人也可以正常回答出有关大概步骤。

以上就是该文章的全部内容。如需该文章配套源码,可在微公众号【Dotnet Dancer】后台回复【SKSK】即可获取。

目录
相关文章
|
19天前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
1月前
|
人工智能 JSON 前端开发
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
|
29天前
|
机器学习/深度学习 人工智能 运维
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(二)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
59 1
|
29天前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(一)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
73 1
|
1天前
|
人工智能 移动开发 小程序
uniapp框架——vue3+uniFilePicker+fastapi实现文件上传(搭建ai项目第二步)
uniapp框架——vue3+uniFilePicker+fastapi实现文件上传(搭建ai项目第二步)
12 2
|
1天前
|
人工智能 小程序 前端开发
uniapp框架——初始化vue3项目(搭建ai项目第一步)
uniapp框架——初始化vue3项目(搭建ai项目第一步)
11 1
|
4天前
|
人工智能 决策智能 C++
【AI Agent系列】【阿里AgentScope框架】5. Pipeline模块的组合使用及Pipeline模块总结
【AI Agent系列】【阿里AgentScope框架】5. Pipeline模块的组合使用及Pipeline模块总结
18 1
|
4天前
|
人工智能 搜索推荐 决策智能
【AI Agent系列】【阿里AgentScope框架】1. 深入源码:详细解读AgentScope中的智能体定义以及模型配置的流程
【AI Agent系列】【阿里AgentScope框架】1. 深入源码:详细解读AgentScope中的智能体定义以及模型配置的流程
35 0
|
4天前
|
存储 人工智能 开发框架
【AI Agent系列】【阿里AgentScope框架】0. 快速上手:AgentScope框架简介与你的第一个AgentScope程序
【AI Agent系列】【阿里AgentScope框架】0. 快速上手:AgentScope框架简介与你的第一个AgentScope程序
24 0
|
4天前
|
数据采集 人工智能 算法
你要牢记的四个常用AI提示词框架:ICIO、CRISPE、BROKE、RASCEF,有助于获取更加稳定和高质量的内容
你要牢记的四个常用AI提示词框架:ICIO、CRISPE、BROKE、RASCEF,有助于获取更加稳定和高质量的内容