Semantic Kernel 是一种轻量级应用开发框架,用于快速开发融合 LLM AI的现代应用。
Semantic Kernel 的一个核心能力就是实现“目标导向”的AI应用。我们可以提前准备好所需的Skill,根据设定好的最终目标,通过Planner,可以将目标分解为需要执行的任务列表,并且可以指定好对应的参数传递,然后逐个任务执行,从而实现最终目标。
此系列文章,将会从传统软件开发者的角度,逐步认识Semantic Kernel,并了解其核心概念和基本的使用方法。
LLM降临的时代:对于迎接新时代的软件开发者来说,更加关心的则是如何将LLM融入到我们的软件应用中
彩LLM的魔法:图形视窗改变了计算机的交互,浏览器的发明改变了互联网的交互,如今的LLM的推广必然也会改变人与机器的交互
Kernel 内核和蓼Skills 技能:Kernel 除了组织管理Skill,还兼顾了基础服务的配置, 默认的LLM模型选择等等。另外当涉及到上下文的管理,技能参数的传递时,Kernel也能发挥重要的作用。
Semantic Function:通常情况下一段prompt就可以构成一个Semantic Function,如此这般简单,如果我们提前可以组织好一段段prompt的管理方式,甚至可以不需要写任何的代码,就可以构造出足够多的技能来。
Native Function:语义的归语义,语法的归语法。
陋突破提示词的限制: Embedding可以将文本进行一些转化高维向量,作为向量就有了计算的可能性,就可以的进行相似性和差异性的判断。
陋Memory内存:Semantic Kernel将embedding的功能封装到了Memory中,用来存储上下文信息,就好像电脑的内存一样,而LLM就像是CPU一样,我们所需要做的就是从内存中取出相关的信息交给CPU处理就好了。
Connector连接器:当我们使用Native Function的时候,除了处理一些基本的逻辑操作之外,更多的还是需要进行外部数据源和服务的对接,要么是获取相关的数据,要么是保存输出结果。这一过程在Semantic Kernel中可以被归类为Connector
Planner 规划器:先确定目标,然后在寻找实现目标的方法和步骤。这对于人来说的是很自然的事情,但是对于机器则不然。一大堆的指令和控制逻辑其实都是在完成另外一种产出导向的结果
相关文章:
相关学习资料:
Semantic Kernel Github 仓库
https://github.com/microsoft/semantic-kernel
Semantic Kernel Microsoft Learn 文档
https://learn.microsoft.com/en-us/semantic-kernel/
Semantic Kernel 团队博客
https://devblogs.microsoft.com/semantic-kernel/
John Meada 的SK Recipes
https://github.com/johnmaeda/SK-Recipes