LangChain 宣布推出 LangChain v0.2 版本(译)

LangChain 宣布推出 LangChain v0.2 预发布版本,这个版本提高了 LangChain 的稳定性和安全性,本篇译自官方博客。

我的新书《LangChain编程从入门到实践》 已经开售!推荐正在学习AI应用开发的朋友购买阅读!
LangChain编程从入门到实践

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

这个版本在 v0.1 的基础上进行了改进,并吸纳了社区的反馈意见。现在,我们很高兴地宣布 v0.2 版本带来了以下的更新:

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

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

稳定发展:LangChain 架构的演变

langchain v0.2 版本中最显著的变化之一是将langchainlangchain-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

img

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

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

首先,文档现在将具有版本号。这是社区一直在请求的功能,我们努力使其成为现实。我们将保留现有文档作为 v0.1 版本,并开始构建一个单独的 v0.2 版本。目前,文档将默认为 v0.1 - 但是一旦完整的 0.2 版本发布,我们将开始默认使用新文档。我们的版本化文档应该更好地反映软件包的状态,我们希望从中不断改进。

其次,文档现在更为扁平和简洁。有四个主要部分:教程,操作指南,概念指南和 API 参考。这将使查找文档变得更容易,也可以让我们保持一组最小的一致性指南。这也是社区的建议 - 感谢 Reddit 用户@Zealousideal_Wolf624!

img

Reddit 用户对 LangChain 文档的建议

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

提升能力:LangGraph 代理

自 LangChain 诞生以来,一个最大的反馈点之一是很难定制预先构建的链和代理的内部。去年夏天,我们推出了 LCEL 来解决链的这个问题,使得创建任意可组合序列变得容易。

到目前为止,LangChain 中的代理始终是基于 AgentExecutor,这是一个具有硬编码逻辑用于运行代理的单个类。我们向这个类添加了越来越多的参数来支持日益复杂的代理,但它仍然不是真正可组合的。

几个月前,我们推出了LangGraph,这是 LangChain 的一个扩展,专门用于创建代理工作负载。可以将其视为代理的“LCEL”。它在 LCEL 的基础上增加了两个重要组件:轻松定义循环的能力(对于代理很重要,但对于链并非必需)和内置记忆。

langchain v0.2 中,我们保留了旧的 AgentExecutor - 但 LangGraph 正在成为构建代理的推荐方式。我们添加了一个预构建的 LangGraph 对象,相当于 AgentExecutor - 由于建立在 LangGraph 上,因此更容易定制和修改。请查看这里有关如何迁移的文档。

进化 v0.1.0:改进流式支持,标准化工具调用等

自今年一月发布langchain v0.1.0 以来,我们在以下领域取得了可观的改进:

  • 标准的聊天模型接口: 我们希望尽可能简单地在不同 LLM 之间无缝切换。为此,我们标准化了工具调用支持,并添加了一个结构化输出的标准接口
  • 异步支持: 我们改进了许多核心抽象的异步支持。这里有一个例子或者两个例子。特别感谢@cbornet帮助实现这一点!
  • 流式支持: 对于 LLM 应用程序,流式是至关重要的,我们通过添加一个事件流 API来改进我们的流式支持。
  • 合作伙伴集成包: 为了确保稳定可靠的集成,我们与生态系统合作伙伴密切合作,为 Python 添加了专门的合作伙伴集成包,涵盖了 20 多个供应商,如 MongoDB、Mistral 和 Together AI,而为 JavaScript 添加了 17 个供应商,包括 Google VertexAI、Weaviate 和 Cloudflare 等。

如何升级

v0.2 版本包含了许多改进,我们努力保持向后兼容,并尽量减少破坏性变化的引入。为了解决升级过程中的任何问题,我们还提供了迁移 CLI,并提供了详细的版本变化文档。

请查看我们的 GitHub 讨论主题 了解如何测试 CLI 和安装 v0.2 预发布版本的详细信息。请继续关注,因为在 5 月 20 日那周,我们将发布完整的迁移指南。

为什么稳定性对我们如此重要

我们非常重视 100 多万开发者对 LangChain 的信任。随着 LangChain 的发展,我们致力于提供业内领先的解决方案,同时确保为工程团队提供一个可信赖的基础框架,可以放心地在生产环境中使用。

尽管目前的 langchainlangchain-core 还未达到 1.0 版本,但我们努力减少破坏性变化,并在至少一个完整的破坏性版本发布(3-6 个月)之前弃用类。我们的发布速度也确保定期更新和错误修复,使 LangChain 平台在生产环境中可靠且适用。我们还将继续维护 0.1 版本,并持续 3 个月提供关键错误修复的支持。有关我们的发布和弃用政策,请点击此处

LangChain 宣布推出 LangChain v0.2 版本(译)

https://liduos.com/langchain-0.2release-introduce.html

作者

莫尔索

发布于

2024-05-11

更新于

2024-05-24

许可协议

评论