微软企业级 AI 框架 Semantic Kernel 详解,LangChain 最强替代

阅读原文
人工智能 (AI) 正迅速改变我们的世界,从智能助手到自动驾驶汽车,AI 的应用无处不在。对开发者而言,快速构建功能强大的 AI 应用是一个挑战。LangChain 作为一款流行的 AI 开发框架,虽然因其丰富的预制组件而广受欢迎,但由于其抽象再抽象、封装再封装,灵活性非常低,且框架的学习、理解及复杂业务逻辑调试的成本很高,使其难以大规模应用于企业业务线上部署。随着 AI 领域的快速发展,微软开源的 Semantic Kernel 框架应运而生,其独特的优势和强大功能可能使其成为 LangChain 的强力替代品。

经过笔者亲子踩坑,将在本文探讨 Semantic Kernel 的核心特点和优势,提供快速入门实践指导,并与 LangChain 的局限性进行比较,旨在帮助开发者选择并入门这个企业级 AI 应用开发框架。

1、什么是 Semantic Kernel

Semantic kernel是微软开源的一个轻量级的开源开发套件,它让你可以轻松构建 AI Agent,并将最新的 AI 模型集成到您的 C#、Python 或 Java 代码库中;它提供了一个简单易用的 API,可以连接到各种 AI 服务,例如 OpenAI、Azure OpenAI 和 Hugging Face 等;并且它作为业高效的中间件,能够快速交付企级解决方案。

semantic_kernel

1.1、核心特性:

  • Kernel:依赖管理容器,管理所有运行AI 应用所需的服务(Services)和插件(Plugins)。
  • Agent:提供了构建任何类型的 Agent(ChatBot、Copilot、Autonomous)的能力。
  • AI Service:支持主流 AI 服务 OpenAI、Azure OpenAI 和 Hugging Face 等便捷接入。
  • Plugin:一类工具的集合。可便捷实现复杂功能,包括本地代码插件、OpenAPI接口插件等。
  • Planning:将函数调用作为规划(plan)和执行(execute)任务的主要方式。
  • Persona:通设置 System Prompt 实现设定的,而且实现方式也非常的方便。

插件(Plugin)是 Semantic Kernel 的一大特色

1.2、优势

  1. 企业级:Semantic Kernel 为微软及其他500强公司提供了灵活、模块化的 AI 解决方案。并且可以轻松扩展以支持语音和视频等其他模式;在安全与可观察性方面,该框架具备先进的安全性增强功能,包括遥测支持、钩子和过滤器,确保您可以安全地部署大规模的AI解决方案。
  2. 自动化业务流程:Semantic Kernel 可以将A I Prompts 与现有API结合,自动执行业务操作。它作为中间件,将AI模型的请求转换为函数调用(Function Call),并处理其结果。
  3. 高度可扩展:你可以通过添加现有代码作为插件,利用一系列现成的连接器来集成AI服务。它还使用OpenAPI规范,便于与团队中的其他开发人员共享和扩展。
  4. 多语言支持:兼容 C#、Python 和 Java,适合各种技术背景的开发者。
  5. 面向未来设计:Semantic Kernel 设计前瞻,能够随着技术进步轻松连接最新的AI模型。新模型推出时,可以简单地进行替换,无需重写整个代码库。

2、Semantic Kernel 的核心特性

2.1、Kernel is All You Need

Kernel 是 Semantic Kernel 的核心组件。简单来说,Kernel是一个依赖管理容器,管理那些运行你的 AI 应用所需的所有服务(Services)和插件(Plugins)。你需要将 AI 应用所有依赖的服务和插件提供给Kernel,在必要的时候 AI 应用会自动使用它们。

组件 说明
服务 包括所需的 AI 服务(OpenAI)和其他服务(例如日志记录、HTTP 服务等),因此可以支持跨所有语言的服务依赖项引入。
插件 是一类工具函数的集合,被 AI 服务用来执行,例如,搜索插件可以包含google搜索、bing搜索等工具

kernel

由于 Kernel 管理着所有服务和插件,因此 Semantic Kernel 的每个组件都基于它来驱动你的 AI 应用。这非常的 Amazing,因为意味着你作为开发者,有个统一的地方可以配置来管理和监控你的 AI 应用。 比如,当你从 Kernel 调用一个 Prompt 时,Kernel会做如下事情:

  1. 选择最佳的 AI 服务来运行 Prompt。
  2. 使用提供的 Prompt 模板构建 Prompt。
  3. 将 Prompt 发送到 AI 服务。
  4. 接收并解析响应结果。
  5. 最后将来自LLM的响应结果返回给你的应用程序。

在这整个过程中,你可以在上述任何步骤中间执行诸如日志记录、向用户提供更新等任何操作,因为这整个过程都在一个地方(Kernel)完成,名副其实的 Kernel is All You Need

在 Semantic Kernel 中定义Kernel十分方便:

# Initialize the kernel
kernel = Kernel()

2.2、支持任何类型 Agent 构建

Agent 是基于软件的实体,利用 AI 模型为你完成工作。它们被构建用来执行广泛的任务,并根据它们的工作性质有不同的称呼:

  • ChatBot:一个被构建用来回答问题的 Agent 称为“ChatBot”,因为它提供了聊天的体验,这些Agent通常依托于自己的数据,比如公司的文档。
  • Copilot: 一个被构建来协助你完成工作的 Agent 通常被称为“Copilot”。这些 Agent 通过提供建议帮助你完成任务,如编写电子邮件或创建其他办公文档,你可以选择接受或拒绝这些建议。
  • Autonomous:一个被构建来处理重复任务的 Agent 通常被称为“Autonomous”。它可以在不需要干预的情况下响应你的请求并执行操作,它是代替你工作,而不是与你一起工作。

Semantic Kernel 提供了构建任何类型的 Agent 的能力,不需要你是 AI 专家。

在 Semantic Kernel 中,一个 Agent 主要由三个核心构建模块组成:插件(Plugin)、规划器(Planner)和角色(Persona)。
build blocks

2.3、轻松接入 AI 服务

AI 服务是指基于大模型等能力提供的一系列服务,比如ChatGPT等。

Semantic Kernel 的主要功能之一是其能够将不同的AI服务(Services)添加到 Kernel 中,包括 OpenAI、Azure OpenAI 和 Hugging Face 等。这使你可以轻松地替换不同的AI服务,以比较它们的性能,并利用最适合你需求的服务。

比如在接入Azure的GPT-4 Chat服务并添加到 Kernel 的代码如下,是不是非常便捷

# Add Azure OpenAI chat completion
kernel.add_service(
    AzureChatCompletion(
      deployment_name="your_models_deployment_name",
      api_key="your_api_key",
      base_url="your_base_url",
    )
)

在Semantic Kernel中,有目前最主流的 AI 服务的接口。下表是在不同语言上的支持情况。

服务 C# Python Java
Chat completion
Text generation
Embedding generation (Experimental)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值