不论你是否关心,不可否认,AGI的时代即将到来了. 在这个突如其来的时代中,OpenAI的ChatGPT无疑处于浪潮之巅.而在ChatGPT背后,我们不能忽视的是LLM(Large Language Model)大型语言模型. 一夜之间所有的大厂商都在搞LLM,虽然很难有谁能和OpenAI相匹敌,但是随着AI领域的新摩尔定律的发功,很快啊,如今的智障都会在不久的将来成为智神,只能说留给人类嘲笑的时间不多了. 如果了解LLM的训练成本的话,注定了这必然不是人人都可从零创造ChatGPT的时代,也注…
了解的运作原理之后,就可以开始使用Semantic Kernel来制作应用了. Semantic Kernel将embedding的功能封装到了Memory中,用来存储上下文信息,就好像电脑的内存一样,而LLM就像是CPU一样,我们所需要做的就是从内存中取出相关的信息交给CPU处理就好了. 内存配置 使用Memory需要注册 embedding模型,目前使用的就是 text-embedding-ada-002.同时需要为Kernel添加MemoryStore,用于存储更多的信息,这里Semant…
每当向他人介绍 Semantic Kernel, 会得到的第一个问题就是 Semantic Kernel 类似于LangChain吗,或者是c# 版本的LangChain吗? 为了全面而不想重复的回答这个问题,因此我写下这篇文章. 在 ChatGPT 之前,构建 集成AI的应用程序的主要分为两个步骤: 机器学习工程师/数据科学家创建模型,然后通过 REST API 终结点发布此模型. 应用程序开发人员通过传递确定性参数来调用 REST API 终结点. 有了GPT以后 构建与 AI 集成的应用程…
ChatGPT 只是LLM 的小试牛刀,让人类能够看到的是机器智能对于语言系统的理解和掌握. 如果只是用来闲聊,而且只不过是将OpenAI的接口封装一下,那么市面上所有的ChatGPT的换皮应用都差不多.这就像是买了个徕卡镜头的手机,却只用来扫二维码一样. 由于微软的财大气粗,在OpenAI取得进展之后,微软开始了对其产品的一轮AI化改造,从Github Copilot,到Bing Copilot ,再到Microsoft 365 Copilot,从名称定义也看得出来,LLM带来的最大生产力提升…
理解了LLM的作用之后,如何才能构造出与LLM相结合的应用程序呢? 首先我们需要把LLM AI的能力和原生代码的能力区分开来,在Semantic Kernel(以下简称SK),LLM的能力称为 semantic function ,代码的能力称为 native function,两者平等的称之为function(功能),一组功能构成一个技能(skill). SK的基本能力均是由skill构成. 有了一堆skill之后并不能直接执行,需要有一个配置和管理的单元,就像是MVC 需要ASP.NET框架…
如果把提示词也算作一种代码的话,那么语义技能所带来的将会是全新编程方式,自然语言编程. 通常情况下一段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…
无尽的上下文 LLM的语言理解和掌握能力在知识内容的解读和总结方面提供了强大的能力. 但是由于训练数据本身来自于公共领域,也就注定了无法在一些小众或者私有的领域能够足够的好的应答. 因此如何给LLM 提供足够多的信息上下文,就是如今的LLM AI应用可以充分发挥能力的地方了. 我们默认可以想到的是在提示词中提供足够的上下文信息,然而像OpenAI的模型总是有一个Max Tokens 的限制,也就意味着不可能一次性将所有的相关信息都可以放在提示词中,即便是最大的gpt-4-32k,目前也只有32,…
概述 上一篇我们介绍了如何使用vue resource处理HTTP请求,结合服务端的REST API,就能够很容易地构建一个增删查改应用.这个应用始终遗留了一个问题,Web App在访问REST API时,没有经过任何认证,这使得服务端的REST API是不安全的,只要有人知道api地址,就可以调用API对服务端的资源进行修改和删除.今天我们就来探讨一下如何结合Web API来限制资源的访问. 本文的主要内容如下: 介绍传统的Web应用和基于REST服务的Web应用 介绍OAuth认证流程和密码…
信鸽推送 .NET  服务端 SDK rest api 调用库-介绍 该版本是基于信鸽推送v2版本的时候封装的,先拿出来与大家分享,封装还还凑合,不依赖其他http调用件,唯一依赖json序列化dll. 网上有一些封装的调用库,但是都不是自己喜欢的调用方式和封装风格,官方更没有封装.NET的版本,只有python.java.php版本,您让.NET情何以堪啊, 故咱们也来封装一个. 温馨提示:该版本是2014-8月份左右封装的,现在信鸽加了很多功能,但是存在的功能是不影响的,只需要下载源码,实体…