Skip to main content
Open on GitHub

为什么选择 LangChain?

langchain Python 包和 LangChain 公司旨在让开发人员尽可能轻松地构建可以进行推理的应用程序。 虽然 LangChain 最初是一个开源包,但它已发展成为一家公司和一个完整的生态系统。 本页面将全面介绍 LangChain 生态系统。 LangChain 生态系统中的大多数组件都可以独立使用,所以如果您特别喜欢某些组件而不喜欢其他组件,那完全没问题!根据您的用例选择最适合您的组件!

特性​

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

  1. 标准化的组件接口: 随着 AI 应用程序的模型和相关组件越来越多,开发人员需要学习和使用各种不同的 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 特定的可观测性以及用于测试和评估应用程序的框架,使您能够自信地迭代您的应用程序。