了解的运作原理之后,就可以开始使用Semantic Kernel来制作应用了. Semantic Kernel将embedding的功能封装到了Memory中,用来存储上下文信息,就好像电脑的内存一样,而LLM就像是CPU一样,我们所需要做的就是从内存中取出相关的信息交给CPU处理就好了. 内存配置 使用Memory需要注册 embedding模型,目前使用的就是 text-embedding-ada-002.同时需要为Kernel添加MemoryStore,用于存储更多的信息,这里Semant…
当我们使用Native Function的时候,除了处理一些基本的逻辑操作之外,更多的还是需要进行外部数据源和服务的对接,要么是获取相关的数据,要么是保存输出结果.这一过程在Semantic Kernel中可以被归类为Connector. Connector更像是一种设计模式,并不像Function和Memory 一样有强制和明确的规定.所以从官方的接口定义上也没有一个 IConnector类似的东西.不过我们可以从官方示例中了解这一模式的使用方法. 以 [Web Skills 中的 WebSe…
Semantic Kernel 的一个核心能力就是实现"目标导向"的AI应用. 目标导向 "目标导向"听起来是一个比较高大的词,但是却是实际生活中我们处理问题的基本方法和原则. 顾名思义,这种方法的核心就是先确定目标,然后在寻找实现目标的方法和步骤.这对于人来说的是很自然的事情,但是对于机器则不然.一大堆的指令和控制逻辑其实都是在完成另外一种产出导向的结果.所有的流程和过程都需要提前预定义好,然后期待一个结果的产出. 如今,借助 LLM AI 的力量,我们可以轻松的…
原文链接:http://www.99cloud.net/html/2016/jiuzhouyuanchuang_1103/250.html 在开始实践之前我们首先需要了解一些NFV概念和术语. NFV 和NFV MANO架构的概念 NFV(Network Function Virtualization)引用维基百科的定义:Network functions virtualization (NFV) is a network architecture concept that uses the t…
如果把提示词也算作一种代码的话,那么语义技能所带来的将会是全新编程方式,自然语言编程. 通常情况下一段prompt就可以构成一个Semantic Function,如此这般简单,如果我们提前可以组织好一段段prompt的管理方式,甚至可以不需要写任何的代码,就可以构造出足够多的技能来. 使用文件夹管理Semantic Function Semantic Kernel恰好就提供了这样一种组织方式,仅需使用文本文件和文件夹就可以管理Semantic Function.文件夹的大致结构如下: Test…
语义的归语义,语法的归语法. 基础定义 最基本的Native Function定义只需要在方法上添加 SKFunction 的特性即可. using Microsoft.SemanticKernel.SkillDefinition; using Microsoft.SemanticKernel.Orchestration; namespace MySkillsDirectory; public class MyCSharpSkill { [SKFunction("Return the first…
0x00 宏的基本知识 // object-like #define 宏名 替换列表 换行符 //function-like #define 宏名 ([标识符列表]) 替换列表 换行符 替换列表和标识符列表都是将字符串 token 化以后的列表.区别在于标识符列表使用,作为不同参数之间的分割符.每一个参数都是一个 token 化的列表.在宏中空白符只起到分割 token 的作用,空白符的多少对于预处理器是没有意义的. 宏的一些奇技淫巧: https://gaomf.cn/2017/10/06/C…
理解了LLM的作用之后,如何才能构造出与LLM相结合的应用程序呢? 首先我们需要把LLM AI的能力和原生代码的能力区分开来,在Semantic Kernel(以下简称SK),LLM的能力称为 semantic function ,代码的能力称为 native function,两者平等的称之为function(功能),一组功能构成一个技能(skill). SK的基本能力均是由skill构成. 有了一堆skill之后并不能直接执行,需要有一个配置和管理的单元,就像是MVC 需要ASP.NET框架…
无尽的上下文 LLM的语言理解和掌握能力在知识内容的解读和总结方面提供了强大的能力. 但是由于训练数据本身来自于公共领域,也就注定了无法在一些小众或者私有的领域能够足够的好的应答. 因此如何给LLM 提供足够多的信息上下文,就是如今的LLM AI应用可以充分发挥能力的地方了. 我们默认可以想到的是在提示词中提供足够的上下文信息,然而像OpenAI的模型总是有一个Max Tokens 的限制,也就意味着不可能一次性将所有的相关信息都可以放在提示词中,即便是最大的gpt-4-32k,目前也只有32,…
1.Semantic UI中的验证控件,功能挺不错的,中文官网的文档写的都比较详细了,我再这里就不再进行重复了,主要是想说一下它的事件的使用方法,这个可能有部分朋友刚开始接触的时候不太了解 注意看这几个事件:前两个是对于字段验证通过和失败之后的事件的调用,后两个是对整个form是否都验证通过或者失败时调用的事件,于是我们在调用的时候可以这么写 function login() { $(".ui.form").form( { username: { identifier: 'userNa…