AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


戏说AI Agent三雄LangChain AutoGen LlamaIndex
发布日期:2024-07-19 07:57:07 浏览次数: 2244


一、前言

LangChain功能大而全,做了很多封装和抽象,由此也带来了限制;AutoGen具备LLM的基本功能,同时有支持Multi-Agent的特长;LlamaIndex就是一个纯粹的数据交互框架。

二、LangChain

LangChain 是一个基于大型语言模型(LLM)开发应用程序的框架。

LangChain 简化了LLM应用程序生命周期的每个阶段:

  • 开发:使用 LangChain 的开源构建模块和组件构建应用程序。使用第三方集成(opens in a new tab)和模板(opens in a new tab)快速上手。
  • 生产化:使用LangSmith检查、监控和评估你的链条,以便你可以持续优化和自信地部署。
  • 部署:使用LangServe(opens in a new tab)将任何链条转变为 API。

//图图图

具体而言,该框架由以下开源库组成:

  • langchain-core:基本抽象和 LangChain 表达式语言。
  • langchain-community:第三方集成。 合作伙伴包(例如 langchain-openai,langchain-anthropic 等):某些集成已进一步拆分为仅依赖于 langchain-core 的轻量级包。
  • langchain:构成应用程序认知架构的链条、代理和检索策略。
  • langgraph(opens in a new tab):通过将步骤建模为图中的边缘和节点,使用LLMs构建强大且有状态的多角色应用程序。
  • langserve(opens in a new tab):将 LangChain 链条部署为 REST API。

2.1 LangChain的优点和限制

LangChain 引入了三个新的抽象:

  1. 提示模板:为 LLM 提供提示
  2. 输出解析器:处理 LLM 的输出
  3. Chains:LangChain 的“LCEL 语法”覆盖了 Python 的 | 运算符 这三点,既是强大的功能,也是巨大的限制。 一句话总结:受益于 LangChain 也受限于  LangChain,还是根据自己的场景谨慎使用!

三、AutoGen

AutoGen 是一个框架,它支持使用多个可以相互交流以解决任务的代理来开发 LLM 应用程序。AutoGen 代理可自定义、可通信,并可无缝允许人类参与。它们可以采用多种模式运行,这些模式结合了 LLM、人类输入和工具。

//图图图

  • AutoGen能够以最小的努力构建基于多代理对话的下一代 LLM 应用程序。它简化了复杂 LLM 工作流程的编排、自动化和优化。它最大限度地提高了 LLM 模型的性能并克服了它们的弱点。
  • 它支持复杂工作流的多种对话模式。借助可自定义且可对话的代理,开发人员可以使用 AutoGen 构建有关对话自主性、代理数量和代理对话拓扑的各种对话模式。
  • 它提供了一系列复杂程度不同的工作系统。这些系统涵盖了来自不同领域和复杂程度的广泛应用。这展示了 AutoGen 如何轻松支持多种对话模式。
  • AutoGen 提供增强的 LLM 推理。它提供 API 统一和缓存等实用程序,以及错误处理、多配置推理、上下文编程等高级使用模式。

3.1 多代理对话框架

Autogen 为下一代 LLM 应用程序提供了通用的多代理对话框架。它提供可定制且可对话的代理,将 LLM、工具和人员集成在一起。通过自动在多个有能力的代理之间进行聊天,可以轻松地让他们集体自主执行任务或在人工反馈下执行任务,包括需要通过代码使用工具的任务。

此用例的特点包括:

  • 多代理对话:AutoGen 代理可以相互通信以解决任务。与单个 LLM 相比,这可以实现更复杂、更精密的应用程序。
  • 定制:AutoGen 代理可以定制以满足应用程序的特定需求。这包括选择要使用的 LLM、允许的人工输入类型以及要使用的工具。
  • 人工参与:AutoGen 无缝允许人工参与。这意味着人类可以根据需要向代理提供输入和反馈。

四、llama_index

LlamaIndex 是 LLM 应用程序的数据框架。使用 LlamaIndex 进行构建通常涉及使用 LlamaIndex 核心和一组选定的集成(或插件)。 有两种方法可以开始使用 Python 中的 LlamaIndex 进行构建:

  • Starter:llama-index(https://pypi.org/project/llama-index/)。入门级 Python 包,包括核心 LlamaIndex 以及一系列集成。

  • Customized:llama-index-core(https://pypi.org/project/llama-index-core/)。安装核心 LlamaIndex 并在LlamaHub上添加您选择 的应用程序所需的 LlamaIndex 集成包。有超过 300 个 LlamaIndex 集成包可与核心无缝协作,让您可以使用您喜欢的 LLM、嵌入和向量存储提供程序进行构建。

LlamaIndex Python 库具有命名空间,因此包含 import 语句core意味着正在使用核心包。相反,不包含 import 语句core意味着正在使用集成包。

# typical pattern
from llama_index.core.xxx import ClassABC  # core submodule xxx
from llama_index.xxx.yyy import (
    SubclassABC,
)  # integration yyy for submodule xxx

# concrete example
from llama_index.core.llms import LLM
from llama_index.llms.openai import OpenAI

4.1 最佳实践

这就是LlamaIndex 的作用所在。LlamaIndex 是一个“数据框架”,可帮助您构建 LLM 应用程序。它提供以下工具:

  • 提供数据连接器来获取您现有的数据源和数据格式(API、PDF、文档、SQL 等)。
  • 提供构建数据(索引、图表)的方法,以便这些数据可以轻松地与 LLM 一起使用。
  • 为您的数据提供高级检索/查询接口:输入任何 LLM 输入提示,获取检索到的上下文和知识增强输出。
  • 允许轻松与外部应用程序框架集成(例如 LangChain、Flask、Docker、ChatGPT 等)。

-LlamaIndex 为初学者和高级用户提供了工具。我们的高级 API 允许初学者使用 LlamaIndex 以 5 行代码提取和查询他们的数据。我们的低级 API 允许高级用户自定义和扩展任何模块(数据连接器、索引、检索器、查询引擎、重新排名模块),以满足他们的需求。

五、总结

尽管,将LangChain、AutoGen、LlamaIndex列为了Ai Agent三雄,实际上它们还是有非常大的区别。

  1. LangChain可以看作是一个大而全的框架,而且提供了开发、部署、上线生产的全流程的解决方案,封装的程度更深。更像一个封闭的Web框架。
  2. AutoGen作为微软引领的LLM开发框架,除了一些Ai Agent基本功能之外,主打的就是多Agent的交互,如果项目中有这类需求,则非常合适。
  3. LlamaIndex仅仅是一个数据框架,用来与各种模型数据库打交道,功能还是非常的单一的。它更像一个ORM框架。

一句话,如果是开发比较标准的Ai Agent用LangChain可以大幅提高开发效率,但是如果要开发交互流程独特或需求特别的Agent,LangChain就成啦一种限制。还是那句话,适合自己业务场景的方案才是最好的方案。

如果本文对您有帮助的话,欢迎 点赞&在看&分享,这对我继续分享和创作优质内容是莫大的鼓励,再次感谢?



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询