Replica Set在国内叫做副本集,简单来说就是一份数据在多个地方存储.         1.为什么要用副本集,什么时候使用副本集?   有人说一份数据在多个地方存储占用了大量的额外空间,是一种浪费. 这个说法不能说对也不能说不对,要从不同的角度考虑.如果公司的业务量很少,数据不多,一台服务器就可以搞定,那就不需要将一份数据存储在多个地方.随着公司的发展壮大,业务量越来越多,数据也越来越多,这时就需要考虑使用分布式集群的方式来解决了,将数据分散在不同的服务器中.此时仍可以不使用副本,通过将数…
引言 在ChatGPT 火热的当下, 即使没有上手亲自体验,想必也对ChatGPT的强大略有耳闻.当一些人在对ChatGPT犹犹豫豫之时,一些敏锐的企业主和开发者们已经急不可耐的开展基于ChatGPT模型AI应用的落地探索. 因此,可以明确预见的是,AI 能力的集成将会是很多应用都将面临的第一事项,而拥有相关性技能的人才屈指可数.而这,正是机会所在,而机会是留给有准备之人,因此,有幸看到本文的开发者们,开始考虑面向AI编程吧. 即使当下的公司没有相关的机会,也可以着手一些相关的知识储备,比如学习…
mysql connector c++ 1.1 API初步体验 1,常用的头文件 #include <mysql_connection.h> #include <mysql_driver.h> #include <cppconn/driver.h> #include <cppconn/statement.h> #include <cppconn/prepared_statement.h> #include <cppconn/resultse…
不论你是否关心,不可否认,AGI的时代即将到来了. 在这个突如其来的时代中,OpenAI的ChatGPT无疑处于浪潮之巅.而在ChatGPT背后,我们不能忽视的是LLM(Large Language Model)大型语言模型. 一夜之间所有的大厂商都在搞LLM,虽然很难有谁能和OpenAI相匹敌,但是随着AI领域的新摩尔定律的发功,很快啊,如今的智障都会在不久的将来成为智神,只能说留给人类嘲笑的时间不多了. 如果了解LLM的训练成本的话,注定了这必然不是人人都可从零创造ChatGPT的时代,也注…
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,…
了解的运作原理之后,就可以开始使用Semantic Kernel来制作应用了. Semantic Kernel将embedding的功能封装到了Memory中,用来存储上下文信息,就好像电脑的内存一样,而LLM就像是CPU一样,我们所需要做的就是从内存中取出相关的信息交给CPU处理就好了. 内存配置 使用Memory需要注册 embedding模型,目前使用的就是 text-embedding-ada-002.同时需要为Kernel添加MemoryStore,用于存储更多的信息,这里Semant…