LlamaIndex 和 LangChain 是两个可助力创建和实施检索增强生成 (RAG) 系统的平台。LlamaIndex 专为简化搜索和检索而构建,而 LangChain 是一个多功能模块化平台,支持众多用例。
LlamaIndex 围绕一组核心关键组件构建,其中包括:
数据摄取和 LlamaHub
数据索引
查询和检索
后处理
回答合成
数据摄取是 LlamaIndex RAG 管道的第一阶段。在 LlamaIndex 中,这一阶段被称为数据加载,使用数据加载器或数据连接器来获取和处理数据。LlamaIndex 涵盖 160 多种数据格式,支持的数据结构包括结构化、半结构化和非结构化数据。
当使用 LlamaIndex 执行单一数据源未涵盖的检索任务时,用户可以转而采用 LlamaHub:一个多功能开源数据加载器池,可满足一系列特定需求。LlamaHub 用户可以将多个数据源(例如 API、SQL数据库甚至 Google Workspace)混合到单个工作流中。一些 LlamaHub 连接器甚至支持音频和视频文件。
查询时,用户的查询也会被转换为嵌入。查询引擎可以识别与查询含义相似的数据点,从而帮助搜索相关信息。对查询进行回答时,LlamaIndex 会按照语义相似度原则,从矢量存储中检索相关性最高的数据。
LlamaIndex 的查询转换功能可以简化复杂的查询,或者将其分解为更易于管理的查询。查询转换是一种优化技术,可提高 RAG 系统找到相关性最高的数据并生成最佳回答的机会。
检索到相关数据后,可以对其组件分段或节点进行重新排序和过滤,以进一步增强即将做出的回答。节点后处理可处理在检索后需要进一步结构化和转换的数据源。
检索到的数据与查询和原始用户提示相结合,并传递给连接的 LLM,然后由 LLM 生成回答。
LangChain 平台围绕一套独特的核心功能套件,旨在简化agentic AI 应用程序(例如聊天机器人和虚拟代理)的原型设计与创建。
模型
提示模板
索引
内存
工具
链
代理
LangSmith 和 LangServe
LangChain 的标准化用户界面简化了与众多 LLM 交互和协作的过程。模型访问权限通常需要通过提供商的 API 获得,可能需要用户支付相关费用,具体取决于提供商。
如果使用基于聊天的模型,LangChain 会通过四种消息分类来阐明与模型的通信。HumanMessage 表示人工创建的消息,AIMessage 表示来自 AI 模型的消息。SystemMessage 是用于模型的指示内容,而 ChatMessage 是比较小众的选项,用于角色设置。
LangChain 提供了一系列提示模板,可简化与 LLM 通信的过程。用户可以根据需要自定义提示,并在不同应用程序之间重复利用它们。LangChain 的提示模板旨在从链中的 LLM 产生上下文感知输出。
和其他 RAG 平台一样,LangChain 可将 LLM 与外部数据源连接起来。它通过创建基于矢量的索引来实现这一目标。LangChain 的文档加载器库可以从外部来源(包括 Google Workspace、Figma 等在线协作工具、YouTube 视频等 Web 内容、数据库等)拉取数据。
LangChain 支持通过超过 25 种嵌入方法将这些数据转换并加载到矢量存储中。用户可以将文档分割成“块”,从而让矢量数据库查询更高效。
LangChain 的突出功能之一是其记忆功能。LangChain 使 LLM 能够参考以前的交互,并将该上下文添加到当前和未来的对话中。在 LangChain 中实施记忆管理时,用户可以选择保留整个对话、总结过去的对话,或是保留选定数量的最新交流。
LangChain 中的工具是一些功能,例如搜索引擎和各种 API,模型可以使用这些功能来履行链中的任务。例如,某个模型需要在其工作流中包含天气预报,该模型可以连接到气象机构提供的服务。
链可以将 LLM 连接到其他工具,并在 LangChain 内实现自主工作流。如果说 LLM 和工具是流程图中的对象,那么链就是将它们连接在一起的箭头和线条。用户可以将多个链组合到一个工作流中,每个链可能包括不同的提示模板、模型、工具和参数。
AI 代理是一类自主模型,可根据当前条件和接收的输入确定行动方案。在与聊天机器人互动的过程中,每个阶段都有人工提示;而代理不同于聊天机器人,可以自主完成整个工作流。用户可以按原样部署 LangChain 的预制代理,也可根据需要进行定制。
LangSmith 是 LangChain 的评估套件,而 LangServe 涵盖了部署。LangSmith 提供了一系列测试和优化功能,帮助用户评估其应用程序。用户可以手动创建测试数据集,根据用户反馈对其进行编译,也可使用 LLM 生成测试数据集。
进行评估后,用户可以通过 LangServe 部署自己的应用程序,从而将链转换为 API。LangSmith 可与 LangServe 结合使用,以提供长期监控,并遵守必不可少的可解释 AI 标准。
LlamaIndex 和 LangChain 都可以构建由 RAG 提供支持的 LLM 应用程序,但提供了两种不同的项目实施方法。虽然 LlamaIndex 在查询数据库以检索相关信息时能够大显身手,但 LangChain 具有更广泛的灵活性,支持的用例种类更丰富,尤其是在将模型和工具链接到复杂工作流中时。
LlamaIndex 非常适合简单的 RAG 应用程序,可减轻开发工作量。它擅长基于语义相关性的高效、精准的数据检索,优势包括:
搜索和检索应用程序:LlamaIndex 可实现高效的数据存储,并专注于基于语义相似性的数据检索,因此成为了简化 RAG 应用程序的明智选择。用例包括内部组织参考系统和知识管理。
速度与精度:LlamaIndex 采用先进的搜索算法,能够提升数据检索的效率和准确性。
充分简化应用程序开发:LlamaIndex 专注于高效的应用程序创建过程。用户可以在最短的时间内将 RAG 应用程序投入使用。
分层文档:LlamaIndex 是包含大量文本的项目的明智选择(例如在企业内部实施知识管理系统时,文档的层次结构至关重要)。
LangChain 专注于多用途、可定制性和多功能性,从而带来了更广泛的用例。用户可以将多个模型和工具链接起来,以满足项目的需求,所有这些都可以通过一个用户界面来完成。
LangChain 的优势包括:
多样化的用例:LangChain 是一个包含 LLM、工具和集成的沙盒,用户可以将它们链接在一起,以满足特定的项目需求。
多模态数据源:LlamaIndex 可支持图像和文本,而 LangChain 支持的媒体类型更为广泛。使用 LangChain 创建的应用程序可以从在线视频、API 以及图像和 PDF 中加载数据。
精细控制:LangChain 采用循序渐进的应用程序创建方法,让用户能够最大限度控制过程中每条链内每一步的功能。
上下文保留:得益于先进的记忆管理功能,使用 LangChain 创建的应用程序可以参考以前的交互,并在持续较长时间的对话中保持准确性。
复杂的查询和数据结构:LlamaIndex 专为语义相似性而构建,而 LangChain 则允许用户结合搜索技术,例如添加关键词搜索。凭借模块化接口、多模态支持和多种整合,它还可能更有效地处理复杂的数据结构。
深入了解 watsonx 组合中基础模型库,从容自信地为您的业务扩展生成式 AI。
借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。
通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。