每当向他人介绍 Semantic Kernel, 会得到的第一个问题就是 Semantic Kernel 类似于LangChain吗,或者是c# 版本的LangChain吗?为了全面而不想重复的回答这个问题,因此我总结这篇文章。

在 ChatGPT 之前,构建 集成AI的应用程序的主要分为两个步骤:

  1. 机器学习工程师/数据科学家创建模型,然后通过 REST API 终结点发布此模型。

  2. 应用程序开发人员通过传递确定性参数来调用 REST API 终结点。

有了GPT以后 构建与 AI 集成的应用程序过去要简单得多,应用程序员开发人员直接访问OpenAI的REST API,将它集成到我们的应用中,但是真正开始集成的时候才发现挑战不仅仅是调用API,例如:

  • 如何将OpenAI与内部知识搜索(内部文档,数据库,SharePoint等)集成

  • 如何将OpenAI与其他系统集成,如SAP,ERP,CRM,HR系统,IT票务系统等。

  • 如何有效地跟踪聊天对话历史记录

  • 如何以可配置的方式将提示实现到代码中(而不是使它们看起来像魔术字符串))

  • 如何最小化使用的Token

  • 如何在服务限制内和围绕服务配额和限制[1]工作 - 更具体地说,围绕最大请求数/分钟

  • 以及更多...

这中间需要有一个业务流程协调程序。该服务编排来自各种依赖项(OpenAI、Azure 搜索、数据库等)的输入和输出,并将其拼接在一起。

  • 这种模式可以从微软最近发布的Copilot服务中看出。请注意,GitHub Copilot、M365 Copilot、D365 Copilot 和Security Copilot的架构之间都有一个“Copilot Service”,用于将应用程序与LLM模型和其他服务链接起来。

  • 另请注意,微软在架构图中提到了的是“LLM”,而不是“GPT-4”。这是因为业务流程协调程序服务同时使用不同的 LLM 来实现其目的。

这就是像Semantic Kernel和LangChain这样的库的用武之地。这些库可帮助开发人员:

  • 管理对话历史记录,这是ChatCompletionAPI 希望开发人员弄清楚的。

  • 根据意图规划方法。

  • 为该方法实现“链接”

  • 管理Memory和服务连接要求(即对话历史记录、外部 API 等)

LangChain目前是“最成熟”(但相当新的)拥有大型开源社区的。第一次提交是在 2022 年10月。

  • 它支持Python和TypeScript,其中Python具有更多功能[2]。

  • 大多数在线文章都使用Jupyter笔记本 演示 LangChain,LangChai也不把自己被称为“SDK”,它是为习惯于使用笔记本的ML工程师构建的。

  • 应用程序开发人员需要弄清楚如何组织代码和使用 LangChain,软件工程方面的组织相对SK 显得差了很多。

  • LangChain由Harrison Chase[3]创立,他的职业是ML工程师,更多是从ML 工程师角度架构应用。

  • LangChain开源社区的贡献非常活跃,目前已经有29k star。

  • 采用MIT开源协议

Semantic Kernel(SK)是相对“较新的”,但它是为开发人员构建的。第一次提交是在 2023 年 2 月。

  • 它主要面向 C# 开发人员,它也支持 Python,(功能另请参阅功能奇偶校验文档[4])。

  • 因为它是为开发人员构建的,所以它被称为轻量级 SDK,可帮助开发人员将代码组织到内置于 Planner 中的技能、记忆和连接器中(在此处内容)。

  • 示例代码中有很多业务流程协调程序 Web 服务的示例。

  • SK由一个以软件开发工程能力超强的组织(微软)创立。开源社区规模也相当活跃,目前已经有5.7k star。

  • 它是由微软创立的,文档方面做的也非常好,它有一个官方的支持页面[5]和LinkedIn学习课程[6]。

  • 由于 SK 在构建时考虑了应用,因此有一个 MS Graph连接器工具包[7],适用于需要与日历、电子邮件、OneDrive 等集成的方案。

  • 微软绝对是接入 OpenAI 最快也是最早的大型公司,他们发布的“Semantic Kernel” 是工程实践的结晶,同时发布了LLM创建软件的九项原则,称之为Schillace Laws of Semantic AI[8]https://learn.microsoft.com/zh-cn/semantic-kernel/howto/schillacelaws

这两个库我们选择使用哪一个,我觉得主要的考虑因素是开发人员的技能,LLM 已经将机器学习的门槛降低到普通开发人员就可以开发AI应用,SK 在帮助应用开发人员开发AI方面的帮助会比LangChain更大,我会选择采用SK来构建AI应用。

相关链接

  • [1] 服务配额和限制: https://learn.microsoft.com/zh-cn/azure/cognitive-services/openai/quotas-limits

  • [2] Langchain特性:https://langchain.com/features.html

  • [3] Harrison Chase:https://github.com/hwchase17

  • [4] SK功能奇偶校验文档:https://github.com/microsoft/semantic-kernel/blob/python-preview-archived-dont-delete/python/FEATURE_PARITY.md

  • [5] SK支持页面:http://aka.ms/sk/support

  • [6] SK LinkedIn学习课程:https://www.linkedin.com/learning/introducing-semantic-kernel-building-ai-based-apps

  • [7] MS Graph连接器工具包:https://learn.microsoft.com/en-us/semantic-kernel/concepts-sk/connectors#whats-the-ms-graph-connector-kit

  • [8] Schillace Laws of Semantic AI:https://learn.microsoft.com/zh-cn/semantic-kernel/howto/schillacelaws

  • [9] LangChain:Model as a Service粘合剂,被ChatGPT插件干掉了吗?: https://mp.weixin.qq.com/s/3coFhAdzr40tozn8f9Dc-w

LangChain vs Semantic Kernel相关推荐

  1. Semantic Kernel 入门系列:Semantic Function

    如果把提示词也算作一种代码的话,那么语义技能所带来的将会是全新编程方式,自然语言编程. 通常情况下一段prompt就可以构成一个Semantic Function,如此这般简单,如果我们提前可以组织好 ...

  2. Semantic Kernel 入门系列

    Semantic Kernel 是一种轻量级应用开发框架,用于快速开发融合 LLM AI的现代应用. Semantic Kernel 的一个核心能力就是实现"目标导向"的AI应用. ...

  3. .NET周报 【4月第4期 2023-04-23】

    国内文章 2023成都.NET线下技术沙龙圆满结束 https://www.cnblogs.com/edisonchou/p/2023_chengdu_dotnet_club_activity_rev ...

  4. ChatGPT的1000+篇文章总结

    ChatGPT的1000+篇文章总结 本文收集和总结了有关ChatGPT的1000+篇文章,由于篇幅有限只能总结近期的内容,想了解更多内容可以访问:http://www.ai2news.com/, 其 ...

  5. 头部大模型公司进京赶考,向量数据库成为应考神器

    日前,由品玩主办的「模型思辨」国内大模型产业生态研讨会在北京举办,Zilliz 与 360 集团.阿里巴巴.昆仑万维等来自大模型产业链的头部公司及投资机构参会,会上 Zilliz 创始人兼首席执行官星 ...

  6. Prompt Engineering 面面观

    作者:紫气东来 项目地址:https://zhuanlan.zhihu.com/p/632369186 一.概述 提示工程(Prompt Engineering),也称为 In-Context Pro ...

  7. 大模型的1000+篇文章总结

    大模型的1000+篇文章总结 本文收集和总结了有关大模型的1000+篇文章,由于篇幅有限只能总结近期的内容,想了解更多内容可以访问:http://www.ai2news.com/, 其分享了有关AI的 ...

  8. 智能化软件开发微访谈·第二十四期 大模型时代的智能化软件生态(讨论汇编)...

    CodeWisdom "智能化软件开发沙龙是由CodeWisdom团队组织的围绕智能化软件开发.数据驱动的软件开发质量与效能分析.云原生与智能化运维等相关话题开展的线上沙龙,通过微信群访谈交 ...

  9. 复杂推理:大型语言模型的“北极星“能力

    (在天体摄影中,当使用长曝光拍摄星轨时,北极星位于星轨的中心,始终指向真正的北方.在古代,它为旅行者指引方向.) 作者 | 符尧 爱丁堡大学博士生 最近,很多关于较小模型的研究取得了令人振奋的对话能力 ...

最新文章

  1. 多激光雷达与相机的外参快速精准标定(arxiv 2021)
  2. CountUp.js – 让数字以非常有趣的动画方式显示
  3. 单链表折半查找c语言,为什么有序的单链表不能进行折半查找
  4. collapse mode 严重_从泛化性到Mode Collapse:关于GAN的一些思考
  5. centos-7.2 node.js免编译安装
  6. python网络爬虫的学习
  7. c++11测试时间封装
  8. 从数据平台到报表开发,我靠这个零代码报表工具,转行后月薪3W
  9. 2019/3/14 软工作业
  10. 螃蟹保存方法保存时间_中秋吃不完的螃蟹如何保存?蟹农:生螃蟹冰箱冷藏,熟螃蟹别隔夜...
  11. 输入字符_你会输入带圈字符吗?
  12. 水下通信方式以及WSN(无线传感器网络
  13. Java使用DES加密解密
  14. 记第一次尝试使用node进行爬虫的经历(使用cheerio模块)
  15. 关于163邮箱,上传附件,本地验证文件大小的问题。
  16. [论文] Feature Squeezing:Detecting Adversarial Examples in Deep Neural Networks
  17. windows系统下Redis下载安装与配置(内附蓝奏云下载地址)
  18. SAP中成本估算取价与价格协议的状态关联测试
  19. git 查看自己秘钥_Git秘钥问题
  20. Typora的崩溃导致文件丢失

热门文章

  1. postek二次开发_博思得RFID标签打印机解析
  2. html2txt noblank.c
  3. DNS协议与请求的C语言实现
  4. Android Studio改变安卓工具栏背景色,内容色和状态栏颜色
  5. 卸载计算机更新程序包,win7系统删除系统更新安装包的详细教程
  6. 谁更亏?刘强东事件让马云损失了56亿,而刘强东仅损失20亿!
  7. python培训 马哥 教室
  8. java 使用JNA连接天敏VC4000采集卡
  9. 数据结构(考研笔记)
  10. mmap和shmget的区别