LangChain v0.2: A Leap Towards Stability

LangChain v0.2:迈向稳定的一大步

今天,我们宣布 LangChain v0.2 的预发布,它提高了 LangChain 的稳定性和安全性。

5 分钟阅读

四个月前,我们发布了 LangChain 的第一个稳定版本。今天,我们将跟进宣布 langchain v0.2 的预发布。

此版本建立在 v0.1 中奠定的基础上,并融入了社区反馈。我们很高兴分享 v0.2 带来了:

  • 备受期待的 langchainlangchain-community 的完全分离
  • 新的(和版本化的!)文档
  • 更成熟和可控的 Agent 框架
  • 改进的 LLM 接口标准化,尤其是在工具调用方面
  • 更好的流式传输支持
  • 30 多个新的合作伙伴包。

这只是一个预发布版本,完整 v0.2 版本 将在几周后发布。让我们深入了解 langchain v0.2 将包含的内容。

拥抱稳定性:LangChain 架构的演进

langchain v0.2 中最显著的变化之一是将 langchain 包与 langchain-community 解耦。因此,langchain-community 现在依赖于 langchain-corelangchain。这是 我们从 langchain v0.1.0 开始的工作 的延续,旨在创建一个更健壮和自包含的包。

💡
提醒一下,langchain v0.1.0 将 langchain 包分解为组件包,以提高 LangChain 在生产环境中的可用性。这些组件包包括 langchain-corelangchainlangchain-community 和合作伙伴包。点击此处 了解更多信息。

langchain-community 包含许多第三方集成。这意味着有很多(可选的)依赖项、很多文件,并且由于集成的性质,该包偶尔容易受到 CVE 的攻击。因此,移除 langchainlangchain-community 的依赖,使 langchain 更轻量级、更专注、更安全。

我们尝试以最小的破坏性方式进行这种重组,方法是继续公开预先存在的入口点,这些入口点可以从 langchain.chat_models import ChatOpenAI 访问。在底层,这涉及从 langchain_community 进行条件导入;本质上,它检查是否安装了 langchain-community,如果安装了,则执行导入。这意味着如果您安装了 langchain-community将不会有任何重大更改。

这个想法来自一位社区成员 - 感谢 Jacob

提高可发现性:更好的版本化文档

我们还根据社区反馈改进了文档。这项工作在 一个多月前开始,我们正在通过两种主要方式继续进行。

首先,文档现在将被版本化。这是一直以来社区的要求,我们努力使其成为现实。我们将维护现有文档作为 v0.1 版本,并开始构建单独的 v0.2 版本。目前,文档将默认设置为 v0.1 — 但一旦完整的 0.2 版本发布,我们将开始默认使用新文档。我们的版本化文档应该更好地反映软件包的状态,我们希望在此基础上不断改进。

其次,文档现在更加扁平化和简单化。主要有四个部分:教程、操作指南、概念指南和 API 参考。这应该使查找文档更容易,也方便我们维护一套最少且一致的指南。这也是社区的建议 - 感谢 Reddit 用户 @Zealousideal_Wolf624!

Reddit 上关于 LangChain 文档的建议

我们还在制作一个 “LangChain 随时间推移”文档页面,以更好地突出 LangChain 的变化。我们希望这有助于解释和关联跨版本的概念。

增强功能:LangGraph Agent

自 LangChain 早期以来,最大的反馈之一是难以自定义预构建链和 Agent 的内部结构。我们在去年夏天推出了 LCEL 来解决链的问题,使其易于创建任意可组合的序列。

到目前为止,LangChain 中的 Agent 始终基于 AgentExecutor,这是一个具有硬编码逻辑的单类,用于说明如何运行 Agent。我们为此类添加了越来越多的参数,以支持越来越高级的 Agent,但这仍然不是真正的可组合。

几个月前,我们推出了 LangGraph,它是 LangChain 的扩展,专门用于创建 Agent 工作负载。可以将其视为“Agent 的 LCEL”。它建立在 LCEL 之上,并添加了两个重要组件:轻松定义循环的能力(对 Agent 很重要,但对链来说不是必需的)和内置内存。

langchain v0.2 中,我们保留了旧的 AgentExecutor — 但 LangGraph 正在成为构建 Agent 的推荐方式。我们添加了一个预构建的 LangGraph 对象,它相当于 AgentExecutor — 通过构建在 LangGraph 之上,它更容易自定义和修改。请参阅 此处 获取有关如何迁移的文档。

v0.1.0 的演进:改进的流式传输支持、标准化的工具调用等

自从今年 1 月发布 langchain v0.1.0 以来,我们在以下领域取得了显著改进

  • 标准聊天模型接口:我们希望尽可能轻松地在不同的 LLM 之间无缝切换。为了做到这一点,我们 标准化了工具调用支持,并为 结构化输出 添加了标准化接口。
  • 异步支持:我们改进了许多核心抽象的异步支持。这里有 一个例子两个例子。非常感谢 @cbornet 的帮助,使之成为现实!
  • 流式传输支持:流式传输对于 LLM 应用程序至关重要,我们通过添加 事件流式传输 API 改进了流式传输支持。
  • 合作伙伴包:拥有稳定可靠的集成是我们的首要任务。我们与生态系统合作伙伴紧密合作,为 Python 中的 20 多个提供商(包括 MongoDB、Mistral 和 Together AI)以及 JavaScript 中的 17 个提供商(包括 Google VertexAI、Weaviate 和 Cloudflare)添加了专用包。

如何升级

v0.2 包含许多改进,我们将其设计为与先前版本基本向后兼容,并最大限度地减少了重大更改。我们还致力于添加迁移 CLI 以缓解任何问题,以及突出显示版本之间更改的文档。

请查看我们的 GitHub Discussions 帖子,了解有关如何测试 CLI 和安装 v0.2 预发布版本的详细信息。并请继续关注 5 月 20 日当周的完整迁移指南。

为什么稳定性对我们很重要

我们珍视 100 万以上依赖 LangChain 的开发人员的信任。随着 LangChain 的发展,我们致力于提供行业领先的解决方案,同时确保工程团队可以自信地在生产中使用的基础框架。

虽然 langchainlangchain-core 目前处于 1.0 之前的状态,但我们力求最大限度地减少重大更改,并在至少提前 1 个完整重大版本(3-6 个月)弃用类。我们的发布节奏还确保定期更新和错误修复,使 LangChain 平台保持可靠性和生产就绪状态。我们还将继续维护 0.1 版本,我们将向该版本推送 3 个月的关键错误修复。点击此处 了解有关我们的发布和弃用策略的更多信息。


我们很乐意在 GitHub 上听到您关于 LangChain v2.0 的所有想法。如果您是 LangChain 的新手,请按照我们的 快速入门指南 开始使用。