Skip to main content
Open on GitHub

为什么选择 LangChain?

langchain Python 包和 LangChain 公司的目标是让开发人员尽可能轻松地构建具有推理能力的应用程序。 LangChain 最初作为一个单一的开源包开始,现已发展为一家公司和一个完整的生态系统。 本页面将介绍整个 LangChain 生态系统。 LangChain 生态系统中的大多数组件都可以独立使用——因此,如果您特别倾向于某些组件而非其他组件,这完全没问题!请根据您的具体用例,自由选择您最喜欢的组件!

特性

LangChain 旨在解决的几个主要需求包括:

  1. 标准化的组件接口:用于 AI 应用的 模型相关组件 数量日益增多,导致开发者需要学习和使用多种不同的 API。 这种多样性使得开发人员在构建应用时难以在不同提供商之间切换或组合组件。 LangChain 为关键组件提供了标准接口,使切换提供商变得轻而易举。

  2. 编排: 随着应用程序变得越来越复杂,需要组合多个组件和模型,越来越需要将这些元素高效地连接到控制流中,以便完成多样化的任务编排对于构建此类应用至关重要。

  3. 可观测性与评估:随着应用变得日益复杂,理解其内部运作情况也变得越来越困难。 此外,开发速度可能会受到选择悖论的速率限制。 例如,开发人员常常思考如何设计他们的提示(prompt),或者哪种大语言模型能在准确性、延迟和成本之间取得最佳平衡。 可观测性和评估功能可以帮助开发人员监控其应用,并自信地快速回答这类问题。

标准化组件接口

LangChain 为许多 AI 应用的核心组件提供了通用接口。 例如,所有 聊天模型 都实现了 BaseChatModel 接口。 这提供了一种与聊天模型交互的标准方式,支持重要但通常由提供商特定的功能,如 工具调用结构化输出

示例:聊天模型

许多模型提供商支持工具调用,这是许多应用程序(例如:智能体)的关键功能,允许开发者请求符合特定模式的模型响应。 各提供商的 API 有所不同。 LangChain 的聊天模型接口提供了一种通用方式,将工具绑定到模型以支持工具调用

# Tool creation
tools = [my_tool]
# Tool binding
model_with_tools = model.bind_tools(tools)

同样,让模型生成结构化输出是一个极其常见的使用场景。 各提供商为此支持不同的方法,包括JSON模式或工具调用,并拥有各自的API。 LangChain的聊天模型接口提供了一种通用方式,通过with_structured_output()方法来生成结构化输出:

# Define schema
schema = ...
# Bind schema to model
model_with_structure = model.with_structured_output(schema)

示例:检索器

RAG 和 LLM 应用组件的上下文中,LangChain 的 检索器 接口提供了一种标准方式来连接多种不同类型的数据服务或数据库(例如 向量存储 或数据库)。 检索器的底层实现取决于您连接的数据存储或数据库类型,但所有检索器都实现了 可运行接口,意味着它们可以以统一的方式进行调用。

documents = my_retriever.invoke("What is the meaning of life?")

编排

虽然针对各个组件的标准化很有用,但我们越来越看到开发者希望将组件组合成更复杂的应用程序。 这促使了编排的需求。 LLM 应用程序有几种常见的特性,该编排层应予以支持:

  • 复杂的控制流:该应用程序需要复杂的模式,例如循环(例如,一个在满足条件之前不断重复的循环)。
  • 持久性: 应用程序需要维护短期和/或长期记忆
  • 人机回环: 该应用需要人工交互,例如暂停、审查、编辑或批准某些步骤。

协调复杂应用程序组件的推荐方式是 LangGraph。 LangGraph 是一个库,它通过将应用程序的流程表达为一组节点和边,赋予开发者高度的控制权。 LangGraph 内置支持 持久化人机协作存储 以及其他功能。 它特别适用于构建 智能体(Agents)多智能体(Multi-agent) 应用程序。 重要的是,您可以将各个 LangChain 组件用作 LangGraph 的节点,但您也可以 不依赖 LangChain 组件而单独使用 LangGraph。

进一步阅读

查看我们的免费课程,LangGraph 入门,以了解更多如何使用 LangGraph 构建复杂应用程序。

可观测性与评估

AI 应用程序的开发速度常因高质量评估的缺失而受到限制,这源于“选择悖论”。 开发者常常困惑:如何设计提示词(prompt)?哪款大语言模型(LLM)能在准确性、延迟和成本之间取得最佳平衡? 高质量的追踪与评估功能可帮助您自信地快速解答此类问题。 LangSmith 是我们专为 AI 应用提供的可观测性与评估平台。 如需了解更多详情,请参阅我们关于 评估追踪 的概念指南。

进一步阅读

有关更多详细信息,请查看我们的视频播放列表:LangSmith 追踪与评估

结论

LangChain 为许多 AI 应用的核心组件提供了标准接口,从而带来了一些特定优势:

  • 切换提供商的便捷性:它允许您在不更改底层代码的情况下替换不同的组件提供商。
  • 高级功能:它提供了更高级功能的常用方法,例如流式传输工具调用

LangGraph 使得编排复杂应用(例如,智能体)成为可能,并提供包括 持久化人机协作存储 等功能。

LangSmith 使您能够充满信心地迭代您的应用程序,通过提供针对 LLM 的可观测性以及用于测试和评估您应用程序的框架。