跳到主要内容
Open on GitHub

为什么选择 LangChain?

Python 包 langchain 和 LangChain 公司的目标是使开发人员尽可能轻松地构建推理应用程序。虽然 LangChain 最初只是一个开源包,但它已发展成为一家公司和一个完整的生态系统。本页将讨论整个 LangChain 生态系统。LangChain 生态系统中的大多数组件都可以单独使用 - 因此,如果您对某些组件特别感兴趣,而对其他组件不感兴趣,那也完全没问题!选择您最喜欢的组件用于您自己的用例!

特性

LangChain 旨在解决以下几个主要需求

  1. 标准化的组件接口: 人工智能应用程序中 模型相关组件 的数量不断增长,导致开发人员需要学习和使用的各种不同 API。这种多样性使开发人员在构建应用程序时难以在提供商之间切换或组合组件。LangChain 为关键组件公开了一个标准接口,使切换提供商变得容易。

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

  3. 可观察性和评估: 随着应用程序变得越来越复杂,理解应用程序内部发生的事情变得越来越困难。此外,开发速度可能会受到 选择悖论 的限制。例如,开发人员经常想知道如何设计他们的提示,或者哪个 LLM 能够在准确性、延迟和成本之间取得最佳平衡。可观察性 和评估可以帮助开发人员监控他们的应用程序,并快速自信地回答这些类型的问题。

标准化的组件接口

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 内置了对 持久性人工参与内存 和其他功能的支持。它特别适合构建 代理多代理 应用程序。重要的是,单个 LangChain 组件可以用作 LangGraph 节点,但您也可以在使用 LangChain 组件的情况下使用 LangGraph。

延伸阅读

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

可观察性和评估

AI 应用程序开发的步伐通常受到高质量评估的限制,因为存在选择悖论。开发人员经常想知道如何设计他们的提示,或者哪个 LLM 能够在准确性、延迟和成本之间取得最佳平衡。高质量的追踪和评估可以帮助您快速自信地回答这些类型的问题。LangSmith 是我们的平台,支持 AI 应用程序的可观察性和评估。请参阅我们关于 评估追踪 的概念指南,了解更多详细信息。

延伸阅读

请观看我们在 LangSmith 追踪和评估 上的视频播放列表,了解更多详细信息。

结论

LangChain 为许多 AI 应用程序的核心组件提供了标准接口,这提供了一些特定的优势

  • 易于更换提供商: 它允许您更换不同的组件提供商,而无需更改底层代码。
  • 高级功能: 它为更高级的功能(例如 流式传输工具调用)提供了通用方法。

LangGraph 使编排复杂的应用程序(例如 代理)成为可能,并提供包括 持久性人工参与内存 等功能。

LangSmith 通过提供特定于 LLM 的可观察性和用于测试和评估应用程序的框架,使您可以自信地迭代您的应用程序。


此页面是否对您有帮助?